
/** Geminiが自動生成した概要 **/
「SOY Shop」の拡張機能として、商品の規格ごとに在庫数と価格を設定できるプラグインを紹介。このプラグインにより、サイズや色などの規格を登録し、それぞれに在庫と価格を割り当てることができる。規格の選択によって、商品詳細ページにセレクトボックスが表示され、選択内容に応じた商品がカートに追加される。これにより、商品バリエーションを柔軟に管理し、顧客の利便性を向上させることが可能となる。

/** Geminiが自動生成した概要 **/
「SOY Shop」の拡張機能として、商品の規格ごとに在庫数と価格を設定できるプラグインを紹介。このプラグインにより、サイズや色などの規格を登録し、それぞれに在庫と価格を割り当てることができる。規格の選択によって、商品詳細ページにセレクトボックスが表示され、選択内容に応じた商品がカートに追加される。これにより、商品バリエーションを柔軟に管理し、顧客の利便性を向上させることが可能となる。

/** Geminiが自動生成した概要 **/
SOY Inquiryを使ってレスポンシブデザインのお問い合わせフォームを作成する方法を紹介しています。レスポンシブデザインとは、PCとスマートフォンでそれぞれ見やすい表示になるよう自動調整されるWebデザイン手法です。設定は、フォーム設定で「responsive」を選び、スタイルシートを読み込むをチェックするだけ。HTML5のrequired属性にも対応し、必須項目の未入力時に警告を表示できます。設定はカラム設定で「required属性を利用する」をチェックするだけ。pattern属性も利用可能で、入力パターンの指定ができます。フォームの属性にpattern="正規表現"を追加するだけで設定できます。ただし、住所検索機能とは競合するため注意が必要です。ダウンロードやフォーラムへのリンクも記載されています。以前の記事「スマホ対応のお問い合わせフォームを作ってみた」の内容を元に、更に機能が追加されています。

/** Geminiが自動生成した概要 **/
さくらレンタルサーバでSOY Shopをバージョンアップ後、画面が真っ白になる場合、PHPのバージョンが古いためです。コントロールパネルの「PHPのバージョン設定」で推奨バージョン以上に変更、「PHP設定の編集」で`php.ini`に`cgi.fix_pathinfo = 1`と`date.timezone = "Asia/Tokyo"`を追加すれば解決します。

/** Geminiが自動生成した概要 **/
SOY Shopで売れるネットショップ構築を目指す中で、ステップメール機能を追加。ステップメールとは、登録されたメールアドレスに、設定した順番と送信日で複数メールを自動配信する仕組み。高額商品や定期購入など、購入前に段階的な情報提供が必要な場合に有効。ブログ記事やメルマガでは難しい、順序立てた情報提供と継続的な顧客接点を可能にする。オフライン閲覧、サイトへの継続アクセス促進といったメリットも。SOY ShopではSOY Mail連携でステップメール後のメルマガ配信も可能。古典的な手法ながら、アプリ連携で強力な販促ツールとなる。

/** Geminiが自動生成した概要 **/
SOY Shopの商品レビュープラグインに、スパム対策としてCAPTCHA機能が追加されました。GDライブラリを利用した画像認証タイプで、GDが利用できない環境ではキーワード入力方式に切り替え可能です。 この機能はSOY CMSフォーラムからダウンロードできます。スパム投稿に悩まされているユーザーは導入を検討すると良いでしょう。
/** Geminiが自動生成した概要 **/
SOY CMSで複数のブログ記事をまとめて検索する機能を作成。従来のスクリプトモジュールブロックでは、記事取得後にブログ判別ができず適切なURLを出力できなかったため、cms:moduleを利用。SQLでラベルIDを指定して2つのブログから記事を取得し、取得結果からラベルIDに応じてURLを生成、出力することで複数ブログ検索を実現。モジュールではSQL実行結果を直接利用できるため、Entryオブジェクトへの変換が不要で、柔軟なURL生成が可能となった。

/** Geminiが自動生成した概要 **/
SOY Shopのセール期間設定忘れによる販売ミスを防ぐプラグインが開発されました。従来はセール設定のチェックボックスのみで管理していたため、終了後もチェックを外し忘れると意図せずセール価格で販売してしまう問題がありました。このプラグインは、チェックボックスに加えてセール期間を指定する日付フォームを追加。カート投入時に期間設定に基づきセール価格を計算することで、期間外のセール適用を防ぎます。ダウンロードはSOY CMSフォーラムから可能です。

/** Geminiが自動生成した概要 **/
SOY Shopの販売終了商品の管理画面操作忘れを防止するため、販売期間設定機能が追加された。商品は登録画面でカレンダーから販売開始・終了日時を設定可能になり、期間外は注文エラーとなる。 従来のカート非表示プラグインは手動操作が必要だったが、この機能により自動で販売制御が行える。販売期間開始前も同様に注文が制御される。ダウンロードはSOY CMSフォーラムから可能。
/** Geminiが自動生成した概要 **/
SOY CMSのブログ記事作成中に、回線落ちなどで書きかけの記事が消えることを防ぐため、自動保存機能が追加された。記事投稿画面を開いて30秒後に自動でバックアップが作成され、画面上部に通知が表示される。バックアップファイルはサイトIDとログインIDに紐づけて保存されるため、他サイトや別アカウントでは復元されない。記事保存または更新ボタンを押すとバックアップファイルは削除される。この機能により、誤操作による以前のバックアップの復元を防ぐ。ダウンロードはSOY CMSフォーラムから可能。

/** Geminiが自動生成した概要 **/
SOY CMSで検索機能を実装する方法を解説。`/site(サイトID)/script/soycms_search.php`に検索スクリプトを記述。SQLで記事タイトル、本文、追記フィールドを検索し、公開期間内の記事を抽出。結果はEntryオブジェクトに変換後、配列`$soycms_search_result`に格納。テンプレートには`<form method="get" action="/search">`で検索フォームを設置し、クエリパラメータ`q`で検索文字列を受け取るようにする。`$dao->getObject($row)`で検索結果をEntryオブジェクトに変換することで、テンプレートに記述した`<!-- block:id="result" -->`で表示可能になる。

/** Geminiが自動生成した概要 **/
記事「検索フォームと検索結果ページを作ってみた3」では、検索結果ページに記事一覧を表示する具体的な実装方法を解説しています。前記事で準備した`entry_search`関数に検索ロジックを記述します。まず、`soycms_search.php`にデータベースへの接続設定を追加し、クエリ文字列から検索キーワードを取得します。取得したキーワードを元にデータベースを検索し、結果を配列に格納します。記事一覧の表示には、取得した配列をループ処理で展開し、各記事のタイトルとURLを表示します。記事タイトルはリンクとして設定し、クリックすると詳細ページへ遷移するようにします。また、検索結果が0件の場合には「該当する記事は見つかりませんでした」と表示する処理も追加します。これらの処理により、ユーザーが入力したキーワードに合致する記事一覧が検索結果ページに表示されるようになります。
/** Geminiが自動生成した概要 **/
スクリプトモジュールブロックを使用して記事検索機能をSOY CMSに追加する方法について説明しています。まず、user.config.phpでスクリプトモジュールを許可し、次にブロックタイプリストにScriptModuleBlockComponentを追加します。記事中の特定の文字列を検索したり、記事をグループ化したりできるようになります。このモジュールを使用することにより、ブログに検索機能を追加し、ユーザーが記事をより簡単に検索できるようにすることができます。

/** Geminiが自動生成した概要 **/
SOY Inquiryでスマホ対応のレスポンシブなお問い合わせフォームを作成する方法を紹介。標準のフォームはスマホで表示が崩れるため、新しいテンプレートを作成し、HTMLを`<dl>`タグに変更することで解決。`/cmsインストールディレクトリ/app/webapp/inquiry/src/template/`以下にresponsiveディレクトリを作成し、サンプルファイルをコピー。form.phpのテーブル表示を`<dl>`に変更。設定画面でデザインをresponsiveに変更することで、PC・スマホ両対応のフォームが完成。確認画面(confirm.php)と完了画面(complete.php)も同様に`<dl>`タグを用いて修正することで、一貫したデザインを実現。

/** Geminiが自動生成した概要 **/
SEO対策のカノニカルタグを、ページ毎に挿入する手間を省くため、パーツモジュールで自動生成する仕組みを作成した。 ブログページとそれ以外のページで処理を分け、ブログページでは記事、カテゴリ、月別アーカイブそれぞれのモードに応じてURLを生成。HTMLテンプレートに`<link rel="canonical" href="生成したURL">`を出力することで、どのページでも正しいカノニカルタグが自動で挿入されるようになった。 実際にカテゴリページで確認した結果、期待通りのURLが出力され、今後の作業効率化に繋がることが期待される。

/** Geminiが自動生成した概要 **/
SOY CMSのPHPモジュールを使用して、ブログページのサイドバーコンテンツを他のページでも表示できるようになった。最新の投稿、カテゴリー一覧、月別アーカイブを取得するロジックを実装し、表示を整形した。これにより、ブログページと同様のコンテンツを非ブログページでも表示できるようになった。また、使用したSOY2DAOFactoryとSOY2Logicはデータベース操作やロジック処理を行うために使用された。