ブログ内検索

micro:bitページ
とにかく速いブログサイトを目指す
検索キーワード:「SOY Shop」
 

SOY CMSで静的テンプレートプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSの静的テンプレートプラグインは、HTMLファイルから直接テンプレートを読み込むことで、同じデザインの複数ページ管理を簡素化します。従来、URL構造の違い(例:/soycms/soycms/tutorial/1 と /soycms/soyshop/tutorial/1)により、同じデザインでも別ページとして管理が必要でした。このプラグインは静的テンプレートを利用することでこの問題を解決し、管理の手間を削減します。SOY Shopでは標準機能ですが、SOY CMSではプラグインとして提供されます。ダウンロードはsaitodev.co/soycms/ から可能です。

 

SOY Shopでカートページスキッププラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のカートページスキッププラグインが開発されました。このプラグインは、顧客情報入力や支払い・配送方法選択など、任意のカートページをスキップし、同時にスキップしたページの項目を事前に指定できます。ダウンロード販売やライセンス継続課金サイトで、支払い方法が一択の場合などに便利です。カートのカスタマイズを避けつつ、購入手続きを簡略化することでカゴ落ち率の減少が期待できます。プラグインは、SOY Shopの最新パッケージに含まれており、saitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY ShopのPAY.JPクレジットカード支払モジュールでEMV3Dセキュアに対応しました

/** Geminiが自動生成した概要 **/
SOY ShopのPAY.JPクレジットカード支払モジュールがEMV 3Dセキュア(3Dセキュア2.0)に対応しました。2025年3月末の導入義務化に伴う対応です。PAY.JPクレジットカード支払モジュールと定期課金モジュール利用者はSOY Shopのバージョンアップが必要です。定期課金モジュールのリダイレクト型は未対応のため、必要な場合は問い合わせを。最新パッケージはサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能です。

 

SOY CMSとSOY ShopでPHP8.4系に対応しています

/** Geminiが自動生成した概要 **/
SOY CMSとSOY Shopは、2024年11月末に公開されたPHP8.4に対応済みです。SOY CMSはPHP8.3対応以降、廃止された機能を使用していなかったため、PHP8.4への対応に伴う大規模な改修は不要でした。PHP8.4対応版はsaitodev.co/soycms/からダウンロードできます。

 

SOY Shopの顧客管理で属性値の項目名を変更できるようにしました

/** Geminiが自動生成した概要 **/
SOY Shopの顧客管理機能強化として、属性1〜3の項目名を自由に設定できるようになりました。これにより、顧客の詳細検索だけでなく、顧客一覧ページの簡易検索でも活用できます。 従来は「属性1」のような固定名称でしたが、例えば「郵便番号」「誕生日」「紹介者」など、自由に名称を設定できます。この変更により、顧客情報の管理と検索がより便利になります。 また、SOY2フレームワークではSOY Shopの顧客管理と連携できるライブラリを提供しており、ログイン機能などを簡単に実装できます。

 

SOY Shopでモジュール版ブログ記事表示プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のモジュール版ブログ記事表示プラグインがリリースされました。このプラグインを使用すると、SOY Shopサイト内の任意のページに、SOY CMSで運営するブログの記事一覧を表示できます。 従来のブログ記事表示プラグインは、表示設定をしていないページでも処理が実行され、サイト全体のパフォーマンスに影響を与える可能性がありました。今回のアップデートでは、ブロックタグが記述されたページのみプラグインの処理が実行されるようになり、表示速度の改善が期待できます。 プラグインは下記URLからダウンロード可能です。 https://saitodev.co/soycms/soyshop/

 

SOY CMSとSOY Shopで多言語サイトの構築を見直しました

/** Geminiが自動生成した概要 **/
SOY CMSとSOY Shopの多言語サイト構築方法を大幅に改修しました。 従来はテンプレート数増加による管理コスト増大が課題でしたが、今回は以下の改善を行いました。 * 日本語ページと英語ページで同じテンプレートを使用可能に * 画像ファイル名に言語キーを付与することで自動切り替え * 記事とラベルを他言語のものと紐付け可能に これらの改善により、管理画面の簡素化、多言語サイト構築の効率化を実現しました。 新パッケージはサイトからダウンロード可能です。

 

SOY Inquiryの個人情報の取り扱いについて

/** Geminiが自動生成した概要 **/
SOY Inquiryで、削除したはずの問い合わせ内容が管理画面から検索できてしまうという個人情報保護の観点からの指摘に対し、以下の改善策を講じた。 1. 論理削除後30日でデータベースから完全に削除される「自動削除機能」を追加 2. 過去の問い合わせを一括で論理削除しやすくするため、「問い合わせ一覧の件数指定」機能を追加 3. 誤って削除した場合も復元できるよう、「論理削除したレコードの確認・解除機能」を追加 これらの機能はSOY Inquiry 2.8以降で利用可能。SOY Shopでも同様の要望があれば、問い合わせページから連絡を。

 

SOY CMSとSOY ShopでPHP8.3系に対応しています

/** Geminiが自動生成した概要 **/
SOY CMSとSOY Shopが最新のPHP 8.3に対応しました!2023年11月末に公開されたPHP 8.3の廃止機能は使用していないため、PHP 8.2対応版からの大きな変更はありません。PHP 8.3対応版は、下記URLからダウンロードできます。 https://saitodev.co/soycms/

 

NGINXでSOY CMSを動かす手順を作成しました

/** Geminiが自動生成した概要 **/
NGINX 1.25 で実験的に HTTP/3 がサポートされたことを受け、SOY CMS を NGINX で動かす手順が公開されました。手順は「NGINX 管理画面側の準備 - SOY CMSを使ってみよう」に記載されています。 SOY CMS 3.13.0 および SOY Shop 2.9.0 以降では、NGINX で SOY CMS を動かす際に必要な Apache 特有の環境変数を補完する機能が追加されました。これにより、NGINX 環境でも SOY CMS をスムーズに利用できるようになります。

 

SOY Shopの予約カレンダーのスマホ版で表示する日付カラムの設定等を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの予約カレンダー機能がアップデートされ、スマホ版での表示が改善されました。 主な変更点は以下の通りです。 * ○ヶ月先以降のカレンダー非表示設定の追加 * スマホ表示時の日付カラム数設定とページャ設定の追加 * 予約可能期間が2週間から2ヶ月に延長 これらのアップデートにより、スマホユーザーはより使いやすく、長期的な予約もしやすくなりました。パッケージはサイトからダウンロード可能です。

 

SOY CMSでAVIF変換プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS用のAVIF変換プラグインがリリースされました。このプラグインは、PHPのimageavif関数を利用し、ページ内のJPG/PNG画像をAVIF形式に変換、HTMLを書き換えます。AVIFは次世代の画像フォーマットで、高画質・低容量を実現します。プラグインはimageavif関数が使用可能なPHPバージョンで動作します。ダウンロードは公式サイトからどうぞ。なお、SOY Shopでは類似機能が「画像フォーマット変換プラグイン」に搭載済みです。

 

SOY CMSでWebP変換プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS用WebP変換プラグインが登場!ページ内のJPG/PNG画像をWebPに変換し、HTMLを書き換えます。WebPは次世代画像フォーマットで、ファイルサイズを小さくしながら画質を維持します。PHPのimagewebp関数が使用可能な環境が必要です。ダウンロードは公式サイトからどうぞ。なお、SOY Shopには同様の機能を持つ「画像フォーマット変換プラグイン」が存在します。

 

SOY CMSのすすめの紹介とSOY CMSの開発状況について

/** Geminiが自動生成した概要 **/
SOY CMSは、開発当初、レンタルサーバーサービスの付加価値として開発されました。しかし、ユーザーが求める機能が多岐に渡り、開発が難航。そこで、ユーザー自身でカスタマイズしやすいように、PHPで開発し、オープンソースとして公開しました。これにより、ユーザーが自由に機能を追加できるようになり、SOY CMSはブログやポータルサイトなど、様々な用途に利用されるようになりました。現在も、開発は継続しており、ユーザーの声を反映しながら、より使いやすいCMSを目指しています。

 

SOY CMSとSOY ShopでPHP8.2系に対応しています

/** Geminiが自動生成した概要 **/
SOY CMSとSOY Shopは近日リリース予定のPHP8.2に対応します。主な修正点は、文字列中の変数展開における `${var}` の非推奨化と、未定義プロパティへの動的アクセスに関するものです。前者は `"sample_".$hoge` のように文字列を分割、後者はプロパティを事前に定義することで対応できます。これらの修正はPHP7系でも有効です。PHP8.2対応版は公式サイトからダウンロード可能です。PHP7系をご利用の方は、そのままでも動作に問題ありません。

 

SOY ShopのPAY.JPクレジットカード支払モジュールでv2に対応しました

/** Geminiが自動生成した概要 **/
SOY ShopのPAY.JPクレジットカード支払モジュールがv2に対応しました。 従来のv1は2022年9月30日で廃止されるため、PAY.JPクレジットカード支払モジュールと定期課金モジュールを利用している方は、SOY Shopのアップグレードが必要です。 今回のアップデートではUIが簡易的なため、モジュール詳細画面にUI改修方法の説明を記載しています。使いやすくなるようUIの変更をお願いします。 変更後、良いUIが出来上がりましたら、お問い合わせフォームからご連絡いただき、HTMLファイルを共有いただけると幸いです。 SOY ShopのアップグレードにはPHPのバージョンにご注意ください。PHP7.3以前のバージョンはサポートが終了しているため、PHPのアップグレードも合わせて行ってください。 最新のパッケージはサイトからダウンロードできます。

 

SOY CMSでプラグインの状態チェックを最適化して表示速度を改善

/** Geminiが自動生成した概要 **/
SOY CMSの表示速度改善についての記事です。 今回はプラグインの有効・無効の判定処理を最適化しました。従来は全プラグインの状態を都度ファイルシステムから読み込んでいましたが、キャッシュ化して参照するように変更。これにより、ファイルシステムへのアクセス回数を減らし、不要なプラグインのクラスファイル読み込みを削減することで表示速度を向上させています。 同様の速度改善は、設定情報のデータベース参照回数を減らしたSOY Shopでも行われています。

 

SOY Shopで設定周りのデータベース参照回数を減らし表示速度を改善

/** Geminiが自動生成した概要 **/
SOY Shopの表示速度改善のために、データベース参照回数を減らす対策を行いました。 従来は各種設定状況やプラグインの有効状態確認の度にデータベースを参照していましたが、これを改善し、必要な設定を事前に取得・保持するように変更しました。具体的には、よく参照する設定はメモリ上に保持し、プラグインの有効状態は配列で管理することで、データベースへのアクセス回数を減らしています。 この結果、ページ表示の度に発生していたデータベースへのアクセスが減少し、表示速度の向上が期待できます。

 

SOY Shopでお届け先の項目の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで、注文手続き画面のお届け先情報の項目設定ができるようになりました。運営上、お客様情報とお届け先情報で、氏名と電話番号を同じにしたいという要望に対応し、これらの項目は初期設定で非表示&必須入力ではなくなりました。 管理画面では、各項目の表示/非表示、必須/任意を設定できます。管理画面からの注文時は、入力の手間を減らすため、お客様情報からコピーするボタンも設置しました。 今回のアップデートにより、ショップ運営者はより柔軟にお届け先情報の入力フォームをカスタマイズできるようになりました。

 

SOY Shopで住所項目設定プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの顧客情報入力画面で、番地を必須入力項目にするためのプラグインを作成しました。 従来は「町番地」項目が一体だったため、番地無しでも入力が完了してしまう問題がありました。 このプラグインでは、住所項目を「町名」と「番地」に分離し、それぞれを必須項目に設定できます。 これにより、番地入力を徹底し、住所情報の精度向上を実現します。 プラグインは下記URLからダウンロード可能です。 https://saitodev.co/soycms/soyshop/

 

SOY Shopから自動で送信されるメールの件名が文字化けだった時の対応

/** Geminiが自動生成した概要 **/
SOY Shopの自動送信メールで、ドコモやau、Gmail宛ての件名が文字化けする問題が発生。原因は不明だが、標準文字コードをISO-2022-JPからUTF-8に変更し、個別指定の文字コードもUTF-8に修正することで解消した。sendmailのアップデートが関係している可能性もあるが、詳細は不明。

 

SOY CMSのMIMEタイプの制限設定でページ毎の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのファイルアップロード制限をページごとに設定できるようになりました。記事投稿画面とファイルマネージャで許可するMIMEタイプを分けたいという要望に応え、設定ファイルにELFINDER_MODEという定数を追加。これにより、例えば記事投稿画面では画像ファイルのみ、ファイルマネージャではCSSやJSファイルのみ許可するといった設定が可能になりました。設定は /CMSインストールディレクトリ/common/config/upload.config.php 内でELFINDER_MODEの条件分岐を用いて$mimetypes配列を定義することで行います。最新のパッケージは公式サイトからダウンロードできます。

 

ツワブキを見て、キクイモの栽培を思い出した

/** Geminiが自動生成した概要 **/
この記事は、ツワブキの強い生命力を見て、キクイモ栽培の経験から、キクイモが畑作に不向きな理由を考察しています。 筆者は、キクイモが「養分食い」であることから、土中のミネラルを大量に吸収すると考えました。川に近い場所では、上流から絶えずミネラルが供給されるため、キクイモのような植物も育つことができます。しかし、畑ではミネラルの供給が限られるため、キクイモ栽培後には土壌が疲弊し、次の作物が育ちにくくなると推測しています。 さらに、キクイモがミネラル豊富であると言われるのは、川に近い環境で育つ性質と関連があると結論付けています。

 

SOY CMSとSOY ShopでPHP8.1系に対応しています

/** Geminiが自動生成した概要 **/
SOY CMSとSOY ShopがPHP8.1に対応しました。PHP8.1ではstrlen関数にnullを渡すとエラーになるなど、型の扱いが厳格化されました。そこでSOY CMSも内部のデータ型チェックを強化し対応しました。PHP7系でも動作しますが、不安な方はPHPのバージョンを据え置いてください。今回の修正によりPHP7系でも動作は高速化する可能性があります。 さらに高速化を狙う場合は、OPCacheの更新チェックの頻度を下げる設定が有効です。PHPファイルの更新頻度に合わせて、opcache.revalidate_freqの値を調整することで、無駄なチェックを減らしパフォーマンスを向上できます。

 

SOY Shopで無料相談用の予約カレンダーの開発を行いました

/** Geminiが自動生成した概要 **/
SOY Shopで無料相談用の予約カレンダーを開発しました。従来の予約システムと異なり、相談日と相談時間の選択を別ページに分けています。これにより、予約可能日時の視認性が向上しました。開発事例として、スパーク運動療育西京極スタジオ様、予防接種予約アプリなどを参照いただけます。動作確認は新潟県司法書士会のサイトで可能です。この日付と時間帯を分離する機能はSOY Shopに標準搭載されていますが、今回のカレンダー機能自体は標準機能ではありません。

 

SOY Shopのタグクラウドプラグインでカテゴリ分けの機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのタグクラウドプラグインに、タグ候補のカテゴリ分け機能が追加されました。タグ数増加に伴うユーザビリティ向上のため、候補をカテゴリで絞り込めるようになりました。アップデート版パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。以前公開されたタグクラウドプラグイン(記事ID:4008)の機能拡張となります。

 

SOY Shopの商品名検索でオートコンプリートを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品検索にオートコンプリート機能を追加するプラグインがリリースされました。商品ごとに読み方を登録することで、ひらがな・カタカナでの検索や、漢字・ひらがな・カタカナの部分一致検索が可能になります。 プラグインはJSライブラリを自動で読み込みますが、HTMLの記述によってはうまくいかない場合もあるため、その際は掲示板への連絡を推奨しています。最新版はサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能です。

 

SOY Shopの標準配送モジュールの配送料無料設定で例外の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの標準配送モジュールに、特定商品を含む場合に配送料を無料にする例外設定機能が追加されました。 設定方法は、指定商品がすべてカートにある場合(AND)、いずれか1つでもあれば(OR)、指定商品のみカートにある場合(MATCH) の3種類。複数設定も可能です。 例えば、AとB商品を指定しAND条件なら、AとB両方カートにあると送料無料。OR条件ならAかBどちらかあれば送料無料。MATCH条件ならAとBのみカートにある場合のみ送料無料となります。 新機能は最新パッケージ(https://saitodev.co/soycms/soyshop/)から利用可能です。

 

SOY CMS / SOY ShopでライブラリをCDN経由にする設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMS/Shopの管理画面で利用するjQueryやBootstrapをCDN経由で読み込む設定が追加されました。これにより、管理画面で読み込むファイル数を減らし、サーバー負荷を軽減します。設定方法は、`/CMSインストールディレクトリ/common/config/user.config.php`を作成し、`define("SOYCMS_READ_LIBRARY_VIA_CDN", true);`を有効にするだけです。リンク色の変更など、一部表示に影響が出る可能性がありますが、順次修正予定です。最新のパッケージはサイト(saitodev.co/soycms/)からダウンロードできます。

 

SOY ShopのSign In With Googleプラグインでボタンをカスタマイズする

/** Geminiが自動生成した概要 **/
SOY ShopのSign In With Googleプラグインのボタンカスタマイズ方法について解説。Googleが提供するジェネレータを使用し、クライアントID、Data Context、ID token nonce、Callback functionを設定。Nextボタンをクリック後、Enable Sign in with Google buttonをチェックし、ボタンデザインを設定後、Get codeボタンを押下。生成されたHTMLをプラグイン詳細画面に貼り付けて更新することでカスタマイズ完了。

 

SOY ShopのGoogle Sign-In for WebsitesプラグインをSign In With Googleに変更しました

/** Geminiが自動生成した概要 **/
SOY ShopのGoogleログインプラグインが、Google Sign-In for WebsitesからSign In With Googleにアップデートされました。変更に伴い、HTMLタグやスクリプトを修正する必要があります。 以前は`googleUser.getBasicProfile()`でユーザー情報が取得できていましたが、現在はJWTが返却されるため、Base64デコードが必要です。`parseJwt`関数でJWTをデコードし、`json.email`でメールアドレスを取得します。 詳細はプラグイン詳細画面とサイト(saitodev.co/soycms/soyshop/)を参照してください。

 

SOY Shop版タグクラウドプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のタグクラウドプラグインが新たに開発されました。カスタムサーチフィールドや関連商品プラグインと組み合わせることで、商品検索の利便性向上に貢献します。以前はカスタムサーチフィールドで代替可能でしたが、要望増加に伴いプラグイン化されました。ダウンロードはsaitodev.co/soycms/soyshop/ から可能です。このプラグインにより、ユーザーは視覚的にタグを選択し、関連商品を容易に見つけることができるようになります。

 

SOY CMSのモジュールで公開期限付きのcms:ignoreのようなものを作成してみる

/** Geminiが自動生成した概要 **/
SOY CMSで公開期限付きcms:ignoreを実現するモジュールの作成方法を解説。指定期間内のみコンテンツを表示する機能で、`/ドキュメントルート/サイトID/.module/parts/ignore.php`にPHPコードを記述する。コードでは`mktime`と`time`関数で期間を指定し、`addModel`で表示条件を設定。テンプレートには`<!-- cms:module="parts.ignore" -->`等を記述して使用する。SOY Shopでは`soycms_ignore`を`soyshop_ignore`に、`cms:module`を`shop:module`に変更すれば利用可能。

 

SOY Shopで注文検索の条件の自動入力で教育コストと人的ミスを減らす

/** Geminiが自動生成した概要 **/
SOY Shopの注文検索に、配送条件を自動入力するボタンを追加することで、配送漏れなどの人的ミスを削減する拡張機能を開発しました。従来、複数の検索条件を手動入力する必要があり、ミスが発生しやすい状況でした。この拡張機能により、ボタン一つで必要な条件が自動入力されるため、操作手順が簡略化され、教育コストと人的ミスが大幅に削減されます。繁忙期のアルバイト教育も効率化され、クレーム対応の減少も見込めます。この機能は標準搭載ではなく、個別の相談に応じて実装します。

 

SOY Shopでアクセス制限プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopのアクセス制限プラグインが開発され、標準機能として同梱されました。このプラグインは、特定のブラウザからのみアクセス可能なページを作成し、IPアドレスと紐づけた固有の鍵をクッキーで管理することで実現しています。管理画面でブラウザを登録すると鍵が生成され、クッキーに保存。SOY Shop側は鍵とIPアドレスをデータベースに格納し、有効期限を設定します。これにより、鍵の偽装や不正アクセスを防ぎ、セキュリティを高めています。このプラグインは、タブレット等で特定機能を利用する際の利便性向上に役立ちます。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY CMS / SOY ShopでファイルのアップロードをMIMEタイプで制限できる設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMS/SOY Shopで、ファイルアップロード時のMIMEタイプ制限設定が追加されました。ユーザー要望に応え、記事作成、テンプレート、elFinderからのアップロード時に、JavaScriptファイルの許可やPDFの禁止等が可能になります。従来のバージョンアップでカスタマイズが消える問題も解消。設定は、`/CMSインストールディレクトリ/common/config/upload.config.php.sample`を`upload.config.php`にリネームし、許可するMIMEタイプを`$mimetypes`配列に追加するだけです。最新パッケージはサイト(https://saitodev.co/soycms/)からダウンロード可能です。

 

SOY Shopで子商品の検索回数の設定で高速化

/** Geminiが自動生成した概要 **/
SOY Shopリリース10年を経て、一部ショップで商品データ増加による表示速度低下が見られた。高速化のため、商品一覧・詳細ページで子商品データ取得設定を追加。これにより、表示件数分のSQL実行を伴う`child_item_list`処理を省略可能に。商品数と表示件数によってはDBアクセス数が膨れ上がるため、今回の対応でパフォーマンス改善を見込む。最新版はサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能。

 

SOY Shopで概要欄設置プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopユーザーからの要望を受け、管理画面に概要欄を設置するプラグインを開発しました。ユーザーは2名で、ほぼ同時期に要望がありました。管理画面左下に、簡易編集可能な概要欄を追加することで、ショップ運営に関する情報を手軽に共有できます。 以前開発したメモウィジェットではテキストリンクの自動クリックに対応できないため、今回のプラグインではリンクテキストを自動でアンカータグに変換する機能を追加しました。これにより、例えば新人研修用の資料へのリンクを概要欄に記載し、参照を促すことで教育コスト削減に繋がります。 プラグインはサイト(/soycms/soyshop/)でダウンロード可能なパッケージに含まれており、有効化することで利用可能です。UIは現状改善の余地がありますが、ご容赦ください。

 

【重要】SOY Shopでクレジットカード支払いが正常に終了しなかった注文を通知する機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで、クレジットカード決済は完了したのに注文が未完了となる問題が発生。原因はスマホのWiFiとセッションの喪失によるもので、決済モジュールのリダイレクト処理中に発生すると注文受付処理が失敗する。この問題に対処するため、決済成功&注文未完了の状態(仮登録&支払確認済)の注文を管理画面の新着ページにエラー通知として表示する機能を追加。通知機能は「新着注文一覧表示プラグイン」の一部として実装。この対応で、注文の見落としを防ぎ、問題発生時の早期発見を目指す。ただし、注文数の少ないサイトでは有効性低いため、更なる改善が必要。

 

SOY ShopのB2CSVプラグインの送り状種類の項目で送料で分ける方法

/** Geminiが自動生成した概要 **/
SOY ShopのB2CSVプラグインで、送料ごとに送り状種類を自動で変更する隠し機能が追加されました。送料800円なら発払い(0)、200円ならネコポス(7)のように設定可能です。`/soyshop/webapp/src/module/plugins/b2_order_csv/form/B2ExportFormPage.html`を`_B2ExportFormPage.html`にリネームし、`<input type="hidden" name="Pattern[金額]" value="送り状種類">`をHTMLに追加することでカスタマイズできます。金額と送り状種類の対応を複数指定可能です。最新版のSOY Shopへのアップデート推奨。

 

SOY CMSのサイトマッププラグインでカノニカルURL挿入プラグインの設定を加味するようにしてみた

/** Geminiが自動生成した概要 **/
SOY CMSのサイトマップがSearch Consoleで重複URLとして除外される問題が発生。原因は、Googleがクロール時にカノニカルURL挿入プラグイン適用後のURLを正規URLとして認識していたため。サイトマップはプラグイン適用前のURLを出力していたため、両者に差異が生じ、重複と判断された。 この問題を解決するため、サイトマッププラグインがカノニカルURL挿入プラグインの設定を反映するように改修。修正版はサイトオーナー向けパッケージ(https://saitodev.co/soycms/)で提供。SOY Shopにも同様の対応済み。

 

SOY Shopのクーポン自由設定プラグインでクーポン検索を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのクーポン自由設定プラグインに、クーポン検索機能が追加されました。これは、期限切れクーポンが増え、管理画面の一覧が見づらくなったというユーザーからの要望に応えたものです。 従来、プラグインの詳細画面には検索フォームがなかったため、今回新たに実装されました。このアップデートにより、多数のクーポンの中から目的のクーポンを素早く見絞ることが可能になります。SOY Shopはリリースから10年以上が経過し、今後もユーザーの利便性向上のための改善が続けられます。最新版はsaitodev.co/soycms/soyshop/からダウンロードできます。

 

SOY Shopの管理画面からの注文の商品検索の高速化に挑戦

/** Geminiが自動生成した概要 **/
SOY Shop管理画面の注文機能で、商品点数増加に伴う検索速度低下を改善するプラグインが開発された。商品名・コードのAND/OR検索切り替えに加え、検索対象から子商品を除外する設定を追加。特に子商品除外は、複雑なSQLクエリを簡略化することで劇的な効果を発揮し、10秒かかっていた検索が1秒以内に完了するようになった。商品グループ機能を活用し、商品数が1000件を超える店舗で効果を発揮。電話注文時の業務効率化に貢献する。ダウンロードはsaitodev.co/soycms/soyshop/から。

 

SOY Shopで管理画面からの注文で0円商品の追加の設定を設けました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面からの注文機能が強化され、未登録商品を0円かつ0個で追加できるようになりました。これは、購入商品に付随するサービス品を納品書に含めるニーズに応えるための改修です。 従来、カートには0円商品は追加できましたが、在庫管理ができない点が課題でした。今回のアップデートで、サービス品も商品登録することで在庫管理が可能になります。管理画面の注文時に商品ごとの価格設定を確認する機能と合わせて、より柔軟な注文処理を実現します。最新版は公式サイトからダウンロード可能です。

 

SOY Shopで顧客情報引継ぎプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop向けプラグインを開発。予約注文型ネットショップで来店人数を制限するため、ネットショップと予約カレンダーを連携させる。一つ目のショップサイトで注文後、リンク経由で予約カレンダーを持つ二つ目のサイトへ遷移。この際、開発したプラグインにより顧客情報を一つ目のサイトから取得し、二つ目のサイトでシームレスに手続きを継続できる。設定は各サイトに「別サイト顧客情報引継ぎ用リンク設置プラグイン」「別サイト顧客情報引継ぎプラグイン」をインストールし、指示に従う。パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能。

 

SOY Shopのパスワード自動生成プラグインで管理画面で追加した顧客も自動生成の対象にする設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのパスワード自動生成プラグインがアップデートされ、管理画面で新規顧客を追加する際にもパスワード自動生成に対応しました。以前は顧客自身での登録時のみ自動生成でしたが、今回のアップデートで管理者による顧客追加時にも自動生成が可能となり、設定によりログイン方法の通知メールも自動送信されます。この機能追加により、管理者の手間を削減し、顧客へのスムーズなアカウント提供を実現します。アップデート版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY CMS / SOY ShopのクッキーやセッションでSameSiteの設定を行う

/** Geminiが自動生成した概要 **/
SOY CMS/SOY ShopでクッキーとセッションのSameSite属性を変更する方法について解説されています。標準ではLaxに設定されていますが、Strictに変更したり、SameSite=None; Secure=true;にすることができます。設定は /CMSインストールディレクトリ/common/config/session.config.php 内の $sessCnf["samesite"] の値を編集することで行います。例えば、Strictに変更する場合は "Strict" を設定します。この変更はSOY CMSとSOY Shop全体に反映されます。変更後のパッケージはsaitodev.co/soycms/からダウンロード可能です。

 

Android版のChromeでアクセスした時にPHPのセッションが突然切れる症状で苦戦した

/** Geminiが自動生成した概要 **/
SOY Shopのカートで、Android Chrome利用時にセッションが突然切れ、カートの中身が消える問題が発生した。原因はCSRF対策で毎回`session_regenerate_id()`を実行していたこと。モバイルネットワークは不安定なため、`session_regenerate_id()`実行でセッション消失が起こる可能性があることがPHPマニュアルに記載されていた。対処として、スマホからのアクセス時は`session_regenerate_id()`を実行しないように変更した。 関連記事「SOY CMSでSameSite cookiesの対応を追加しました」では、SameSite属性を設定することで、クロスサイトリクエストフォージェリ(CSRF)攻撃への対策を強化している。具体的には、CookieにSameSite=Lax属性を設定することで、クロスサイトでのCookie送信を制限し、セキュリティを向上させている。これにより、SOY CMSを利用するサイトのセキュリティが強化され、ユーザーの情報がより安全に保護される。

 

SOY CMSの記事のCSVインポート・エクスポートでプラグインの項目を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSの記事CSVインポート・エクスポート機能が拡張され、カスタムフィールドアドバンスドとカスタムサーチフィールドプラグインの項目が追加されました。これにより、記事データだけでなく、プラグインで追加した項目もCSVで一括管理できるようになりました。要望に応え、SOY Shopの商品CSV機能と同様に拡張ポイントが設けられました。カスタムフィールドプラグインには非対応です。他のプラグインへの対応は要望ベースで検討されます。最新版はsaitodev.co/soycms/からダウンロード可能です。

 

SOY CMSとSOY ShopにAceコードエディタを設置しました

/** Geminiが自動生成した概要 **/
SOY CMSとSOY ShopにJavaScript製のコードエディタ「Ace」が導入されました。導入箇所は両CMSのテンプレート、HTMLモジュール、PHPモジュールの編集画面です。以前の色付きエディタはブラウザの進化への対応と動作の不安定さを理由に廃止されましたが、block:idタグの視認性向上のため、Aceが採用されました。現在はHTML/PHPモードのみですが、今後便利な機能の有効化を検討中です。最新版はsaitodev.co/soycms/からダウンロード可能です。

 

SOY CMSでSameSite cookiesの対応を追加しました

/** Geminiが自動生成した概要 **/
Android版ChromeでPHPセッションが突然切れる問題への対応についての記事を要約します。問題は、特定のAndroid版ChromeのバージョンでSameSite属性のないcookieがアクセス拒否されることに起因していました。解決策として、PHPで`session_set_cookie_params`関数を使用し、`SameSite=None`と`Secure`属性をcookieに設定することで、HTTPS通信時にのみcookieが送信されるようにしました。この変更により、Android版Chromeでのセッション維持が可能になりました。さらに、データベーススキーマの見直しやマイページの処理最適化を行い、表示速度の向上も実現しました。関連情報として、Webブラウザセキュリティに関する書籍の紹介や、cookie属性の詳細を解説するMDNのドキュメントへのリンクが掲載されています。

 

SOY Shopで簡易ショッピングモール運営プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用の簡易ショッピングモール運営プラグインが開発されました。従来、複数ショップでは顧客ポイントの共有化が課題でしたが、本プラグインは単一ショップに複数の「出店者」アカウントを追加することで解決。各出店者は自身の商品登録・注文情報・顧客情報(閲覧のみ)へのアクセスに制限され、他出店者の情報は見えません。これにより、顧客ポイントの共有が可能になります。現状、出店者用ページやカテゴリ管理機能は未実装。ショッピングモール運営希望者は問い合わせを推奨。プラグインはSOY Shopパッケージに同梱されています。

 

クロスサイトスクリプティングを回避する方法を探る

/** Geminiが自動生成した概要 **/
SOY2では、XSS対策としてhtmlspecialcharsを簡便に利用できるHTMLLabelを提供している。記事では、HTMLLabelの基本的な使い方と、soy:idを用いた動的な値の表示方法を解説。HTMLLabelはHTMLタグを自動的にエスケープし、安全に値を表示。例として、ブログ記事のタイトルを表示するコードを紹介し、HTMLLabelを用いることで、タイトルに含まれるHTMLタグがエスケープされ、XSS脆弱性を防ぐ様子を示している。また、HTMLLabelの子要素としてHTMLタグを記述することで、特定のタグを許可することも可能。記事は、HTMLLabelがSOY2でのXSS対策に効果的であることを示唆。

 

SOY Board on SOY Shop

/** Geminiが自動生成した概要 **/
SOY Shop向け掲示板アプリプラグイン「SOY Board on SOY Shop」を開発中。顧客とマイページ機能を活用し、手軽に掲示板を設置できる。中小企業のWeb活用増加を背景に、古くからある掲示板の価値が見直されていると判断。既存のSOY Boardの改修が困難だったため、SOY Shop上に構築する形とした。PHP最新バージョンへの対応、多様なXML出力、HTML投稿を重視し、既存のOSSではなく独自開発を選択。特にXML出力は、サイトマップ登録や新着通知の細分化に活用予定。HTML許可によるXSS対策の難しさは課題。ローカル環境での動作確認推奨、試用時は新規ショップサイト作成必須。最新パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能。

 

SOY CMSとSOY ShopでPHP8.0系に対応しています

/** Geminiが自動生成した概要 **/
PHP 8.0への対応でSOY CMSとSOY Shopが高速化しました。主因はJITコンパイラですが、ビルドイン関数date、strlenの挙動変化に伴うコード修正も寄与しています。HTMLListのダミーオブジェクト処理で発生していたdate関数のエラーを修正。PHP7系でも動作します。プラグインの動作確認は順次実施予定。PHPのOPCache設定変更で更なる高速化も期待できます。OPcache.validate_timestampsを0にすると、PHPファイルのタイムスタンプ確認を無効化し、パフォーマンスが向上しますが、ファイル更新が反映されなくなるため、開発中は1、運用時は0にするのが推奨されます。opcache.revalidate_freqで更新頻度を設定できます。

 

SOY Shopで自動注文無効プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopのクレジットカード決済では、カード入力前に在庫を確保するため、入力を中断すると在庫が減ったまま注文が確定しない問題があった。これを解決するため、自動注文無効プラグインを作成。 設定した時間より前の仮登録注文を無効化し在庫を戻すことで、カード入力中断による在庫の減少を防ぐ。プラグインは仮登録から無効化までの時間を設定可能。クレジットカード決済特有の問題への対策として、在庫管理の精度向上に貢献する。

 

さくらインターネットでテスト環境を作って、SOYCMSとSOYShopを動かしてみる

/** Geminiが自動生成した概要 **/
さくらインターネットの2週間お試しで、SOYCMSとSOYShopのテスト環境を構築する方法。Windows10環境で、共有サーバプレミアムプランに申し込み、Filezillaでサーバに接続する。接続情報は仮登録メールに記載されている。wwwフォルダにSOYCMSをアップロードし、「http://(ドメイン)/cms/admin」で管理画面を確認。次に、SOYShopをダウンロードし、appとSOYShopフォルダをwww/cms直下に置く。管理画面にSOY Shopログインが表示されれば完了。

 

SOY ShopのPAY.JPクレジットカード支払いモジュールでテストモードの通知を強化しました

/** Geminiが自動生成した概要 **/
SOY ShopのPAY.JPクレジットカード支払いモジュールに、テストモード時の管理画面通知機能が追加されました。これは、テストモードのままサイトを公開してしまうミスを防ぐための強化です。 メンテナンス期間中にテストモードにしたままサイトを再オープンし、注文が無効になる事例が発生したことを受けての対応です。具体的には、管理画面の新着情報とメンテナンスページ解除操作時に、テストモードであることを強調表示します。 同様の機能は他の主要クレジットカード支払いモジュールにも展開予定です。 最新版はhttps://saitodev.co/soycms/soyshop/から入手可能です。

 

SOY Shopで管理画面でSOY Shopらしさをなくす

/** Geminiが自動生成した概要 **/
SOY Shopでショップサイト以外を作成するケースが増加し、管理画面から「ショップ」の文字を削除したいというニーズに対応するため、管理画面のURLの「soyshop」部分を変更できる機能が追加されました。 設定方法は、`/CMSインストールディレクトリ/common/config/admin.uri.config.php.sample` を `.php` にリネームし、`define("SOYSHOP_ADMIN_URI", "soyshop");` の `soyshop` を任意の文字列に変更します。その後、ファイル内の指示に従って必要なディレクトリとファイルを作成し、キャッシュを削除すれば設定完了です。 この機能は最新のSOY CMSとSOY Shopのパッケージに含まれています。現状ではSOY Shopのみに対応しており、SOY CMS側は未対応です。

 

SOY Shopでメンテナンスページ設置プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のメンテナンスページ設置プラグインが開発されました。このプラグインを使用すると、ショップサイトがメンテナンス中の際に簡単にメンテナンスページを表示できます。設定は、404NotFoundページと同様の方法でメンテナンスページを作成するだけで完了します。プラグインを有効化すると、管理画面のホームに設定の有無と設定画面へのリンクが表示され、メンテナンスページの表示を簡単に切り替えられます。現状は全ページがメンテナンスページに切り替わりますが、将来的にはカートやマイページのみの切り替えといった機能追加も検討されています。プラグインはsaitodev.co/soycms/soyshop/から入手可能です。

 

SOY Shopで予防接種用の予約アプリの開発を行いました

/** Geminiが自動生成した概要 **/
SOY Shopでキャンセル多発型の事業向け予約アプリを開発。予約受付と同時にキャンセル待ち受付も開始し、キャンセル発生時には自動でキャンセル待ちの先頭者にメールで通知、24時間以内に予約確定しなければ次の待機者に通知がいく仕組み。キャンセル待ちの順番はキャンセル発生時点ではなく、キャンセル待ち登録時点の順番を維持することで公平性を確保。また、二重予約防止のため、同一人物による複数アカウント作成のチェック機能や、予約時に電話番号認証を導入。これらの対策により、キャンセル発生時の迅速な対応と、キャンセル待ちユーザーの利便性向上、不正利用の抑制を実現した。

 

PHPのガベージコレクションを学ぶにXdebugを入れる

/** Geminiが自動生成した概要 **/
XdebugはPHPのデバッグとプロファイリングツールです。`xdebug_debug_zval()`関数は、変数の内部表現であるzvalの情報を表示します。出力には、参照カウント(refcount)、参照かどうか(is_ref)、そして変数の型と値が含まれます。zvalの情報は、PHPのガベージコレクションの仕組みや変数の挙動を理解する上で重要です。Xdebugのドキュメントでは、`xdebug_debug_zval()`以外にも様々なデバッグ関数が紹介されています。これらを利用することで、PHPコードの実行状況を詳細に把握し、問題の特定やパフォーマンスの改善に役立てることができます。

 

SOY CMS / Shopで別サイトのモジュールを読み込む

/** Geminiが自動生成した概要 **/
SOY CMS/Shopで、別サイトのHTMLモジュールを読み込む新機能が追加されました。サイトIDをプレフィックスとして`{siteId}.moduleName`のように指定することで、HTMLのみで構成されたモジュールを別サイトから呼び出せます。例えば、`{otherSite}.html.sample`と記述すれば、siteIdが"otherSite"のサイトにある"html.sample"モジュールが表示されます。ただし、SOY CMSとSOY Shop間でのモジュールの相互利用は不可で、データベースを参照するモジュールも使用できません。この機能は、最新版のSOY CMS/Shopパッケージで利用可能です。

 

SOY ShopでLogin with Amazonプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のLogin with Amazonプラグインが開発され、Amazonアカウントでのログインが可能になった。取得できるデータはAmazon ID、氏名、メールアドレスで、住所取得は今後の課題。このプラグインは、以前開発されたAmazon Payワンタイムペイメントモジュールと連携できる可能性がある。プラグインはsaitodev.coで提供されているSOY Shopパッケージに含まれる。

 

VLDでPHPのオペコードを確認する

/** Geminiが自動生成した概要 **/
PHPの深層理解のため、オペコードを確認する方法を解説。VLD(Vulcan Logic Dumper)を用いて、PHPコードを中間コードに変換する様子を観察できる。Ubuntu 20.04、PHP 7.4.6環境で、vldをgit clone、phpize、configure、make、installし、php.iniにvld.soを追加。`php -d vld.active=1 -d vld.execute=0 /path/to/dir/a.php`で"Hello World"のオペコードを確認できる。これによりPHP内部の仕組みを理解する第一歩となる。

 

SOY Shopのマイページ機能でパスワードの文字数制限の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページ機能にパスワード文字数制限設定が追加されました。従来の8文字以上という制限を任意に変更可能になり、柔軟なパスワード設定が可能になりました。今回のアップデートでは、下限文字数の設定が可能となり、将来的にはパスワード強度判定機能の追加も検討されています。この機能はsaitodev.coで提供されているSOY Shopパッケージに含まれています。

 

SOY ShopでログインIDの項目名の変更を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで、顧客が患者番号のような任意のIDでマイページにログインできるよう、ログインIDの項目名を変更する機能が追加されました。従来の「ログインID」表記だと、患者番号として運用するには分かりにくいため、管理画面から自由に名称を変更できるようになりました。例として、画像では「患者番号」に変更されています。この機能により、顧客コードを利用するよりも運用コストと教育コストの削減が見込めます。このアップデートはsaitodev.co/soycms/soyshop/ で提供されているパッケージに含まれています。

 

SOY ShopでAmazon Pay ワンタイムペイメント支払いモジュールを作成しました

/** Geminiが自動生成した概要 **/
Amazon Pay Widget Code Generatorは、Amazon Payボタンをウェブサイトに簡単に統合するためのツールです。ボタンの種類(ログイン、支払い)、サイズ、カラー、言語などのオプションを選択することで、必要なHTMLとJavaScriptコードを生成します。生成されたコードには、`createCheckoutSession`関数も含まれており、決済セッションの作成とAmazon Payウィジェットの表示を処理します。これにより、開発者は複雑な実装を気にすることなく、Amazon Payを迅速に導入できます。 ツールは様々なカスタマイズオプションを提供し、シームレスな顧客体験を実現するボタン作成を支援します。

 

SOY Shopで軽量版集計プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面用軽量版集計プラグインが開発されました。従来版との違いは、プラグイン独自の検索条件ではなく、管理画面の注文検索機能を利用するように変更された点です。これは、高度な注文検索を可能にする拡張ポイントが追加されたこと、そしてその検索結果を集計したいという要望に応えるための改良です。新プラグインは、管理画面の注文検索で絞り込んだ結果に基づいて集計を行います。この変更により、カスタムフィールド等の拡張検索条件にも対応した柔軟な集計が可能になりました。新プラグインはsaitodev.coのSOY Shopパッケージで提供されています。

 

SOY Shop 2.0.0

/** Geminiが自動生成した概要 **/
非公式にメンテナンスされているSOY Shop 2.0.0βが公開されました。データベース構造は1系とほぼ変わらず、通常のバージョンアップ手順で適用可能です。主な変更点は、Bootstrapを使ったレスポンシブ対応の管理画面UIと、公開側ページの読み込み速度最適化です。後者は必要なクラスファイルのみを読み込むことでメモリ消費量を削減し、表示速度向上と同時アクセス耐性向上を実現しています。 HTMLキャッシュプラグインも同梱され、キャッシュ機能で更なるメモリ消費削減が可能です。ダウンロードはsaitodev.co/soycms/soyshop/ から。一部プラグインのUIはまだ2系に対応していませんが、順次修正予定です。

 

SOY Shop版HTMLキャッシュプラグインを追加しました

/** Geminiが自動生成した概要 **/
SOY Shop 2にHTMLキャッシュプラグインが追加され、高速化が可能になった。カートウィジェットの問題は非同期通信で解決し、カート内商品数と合計金額をJSONで取得できる。ヤマトリップショップではこの機能とLazyLoadプラグイン、jpegoptimにより、ページ表示速度が3.3秒から1秒以下になり、PageSpeed InsightsのスコアもPCで90を超えた。スマホは90に届かなかったが、Gueztliによる画像最適化で改善が見込まれる。SOY Shop 2正式版は近日公開予定。

 

【SEO対策】Lazy Load

/** Geminiが自動生成した概要 **/
SEO対策として、画像の遅延読み込み(Lazy Load)はページ表示速度の改善に有効です。ファーストビュー以外の画像は、ページ全体が表示されてから読み込まれます。重い画像や動画を遅延させることで、表示速度が向上します。 実装は、imgタグに`loading="lazy"`属性を追加するだけです。Chrome 75以降で対応しており、他ブラウザではjQueryプラグインが必要ですが、当サイトではjQueryによる速度低下を避けて使用していません。 PC表示では効果が見られませんでしたが、スマホ表示ではファーストビュー外に画像が配置されるため、Lazy Loadの効果が大きいです。 関連記事として、SOY CMSとSOY Shop向けにLazy Loadプラグインが紹介されています。

 

SOY ShopでRFID在庫管理ツール ZAIKAに対応しました

/** Geminiが自動生成した概要 **/
SOY Shopがレンタルサービス事業者向けRFID在庫管理ツール「ZAIKA」とAPI連携できるプラグインを開発しました。ZAIKAはレンタル業務の発送・返却作業効率化と在庫単位での収益・稼働・状態管理を実現するツールです。プラグイン利用にはSOY Shopのオーダーカスタムフィールド(日付)との連携が必要ですが、現状未実装です。連携機能開発は需要に応じて対応予定。プラグイン利用希望者やレンタル業務用SOY Shop構築希望者は問い合わせください。 なお、顧客関連管理機能強化については言及されていません。

 

SOY InquiryのMySQL版でIPv6経由でのアクセスに対応しました

/** Geminiが自動生成した概要 **/
SOY InquiryのMySQL版がIPv6アクセスに対応しました。従来はIPv4アドレスのみ記録していたため、IPv6環境下ではエラーが発生し問い合わせが中断される問題がありました。今回のアップデートでIPアドレスカラムの文字数上限を拡張し、IPv6アドレスも記録可能になりました。同様の変更はSOY Shopのアクセスブロック機能にも適用されています。最新版は公式サイト(https://saitodev.co/soycms/soyinquiry、https://saitodev.co/soycms/soyshop)からダウンロード可能です。

 

SOY CMSとSOY Shopの管理画面でメモウィジェットを設置しました

/** Geminiが自動生成した概要 **/
SOY CMS/Shopの管理画面左下にメモウィジェットが追加されました。これは、VPSサーバ運用時にphp.iniの変更(例: memory_limit)を忘れがちで、バージョンアップ後に問題が再発するのを防ぐためです。例えば、大量の商品注文で配列オーバーフローエラーが発生した場合、memory_limitを128Mから1024Mに変更するなどの対応が必要ですが、この設定を忘れやすいという問題がありました. このウィジェットにより、設定変更などをメモとして残せるようになりました。アップデート版はsaitodev.coからダウンロード可能です。

 

php-webdriverでelement click interceptedのエラーに対して

/** Geminiが自動生成した概要 **/
SeleniumとJenkins、php-webdriver、ヘッドレスChromiumでテスト自動化中に、メモウィジェットが原因でelement click interceptedエラーが発生。ヘッドレスモードで画面サイズが不足し、対象ボタンが隠れていたのが原因。ウィンドウサイズを`1024x2048`に設定することで一時的に解決したが、ページサイズに依存するこの方法は最適ではない。スクロールによる解決策も検討されたが、最終的にはCSSを修正し、メモウィジェットが他のボタンと重ならないように調整することで根本解決した。

 

SOY ShopでSMBC GMO PAYMENT用の決済モジュールを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のSMBC GMO PAYMENTクレジット決済モジュールが開発されました。このモジュールは標準機能には含まれておらず、希望者は問い合わせフォームから連絡が必要です。 また、GMOペイメントゲートウェイ用のクレジット決済モジュールも開発されています。どちらも、ECサイト構築プラットフォームであるSOY Shopで利用可能です。

 

SOY ShopのオーダーカスタムフィールドでjQueryのDatepickerを使ってみる

/** Geminiが自動生成した概要 **/
SOY Shopで配送と店舗受け取りを同時選択できるよう、オーダーカスタムフィールドで対応する方法を紹介。標準機能にはないカレンダーを、jQuery Datepickerを用いて実装する手順を解説。オーダーカスタムフィールドを作成後、カートページテンプレートにjQueryを読み込み、Datepickerを適用するコードを追加。オプション設定で日付範囲も指定可能。複数フィールドへの適用方法や、直接入力を防ぐreadonly属性の追加についても触れている。

 

SOY2HTMLで軽微なカスタマイズを加える為の機能を追加しました

/** Geminiが自動生成した概要 **/
SOY CMS/ShopのSOY2HTMLに、軽微なカスタマイズを容易にする隠し機能が追加されました。クラスファイルと同名のHTMLファイル名の頭にアンダースコア「_」を付けると、そのHTMLファイルが優先的に読み込まれます。これにより、プラグインのバージョンアップ時の上書きを回避できます。例えば、配送モジュールの文言変更など、PHP知識を必要とせず容易にカスタマイズできます。標準配送モジュールなら `delivery_normal/cart/_DeliveryNormalCartPage.html` を配置し、元のHTMLの内容をコピー・編集することで実現できます。SOY Shop 2系以降で利用可能、1系は `soy2_build.php` の修正が必要です。新パッケージはsaitodev.coからダウンロードできます。

 

SOY Shop 2.0.0 β

/** Geminiが自動生成した概要 **/
SOY Shop 2.0.0βでは、管理画面のUIをSOY CMS 3系に刷新。開発元の停滞を受け、非公式ながらバージョンアップを実施。拡張性向上のため、デザイン崩れを防ぐ3系テンプレートを採用した。標準機能のUI変更は完了し、プラグイン対応を進めている。現在はカスタムフィールド系、初期プラグイン、PAY.JP/Coiney決済プラグインが対応済み。今後、予約カレンダーや伝票管理プラグインへの対応を予定。データベース構造は変更なし。ダウンロードはsaitodev.co/soycms/soyshop/ から可能。管理画面のみ使用モードの追加により、ECサイト構築だけでなく、会員管理システムなど多様な用途にも対応できるようになった。

 

SOY ShopでFacebookページショップと連携する

/** Geminiが自動生成した概要 **/
SOY Shopの商品をFacebookページショップ/Instagramショッピングで販売する手順は以下の通り。 1. SOY ShopのFacebookページショップ用XMLプラグインを有効化し、XMLページを作成する。 2. Facebookページを作成し、ショップタブを追加。 3. 別のウェブサイトでチェックアウトを選択し、ダミー商品を登録。 4. カタログマネージャでXMLページのURLを登録。一括アップロードで「スケジュール設定したフィードを利用」を選択し、XMLページURLを設定。 5. エラーがなければ連携完了。Instagramショッピングは別途申請が必要。 最新版はサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能。

 

SOY Shopでカスタムフィールド置換文字列プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムフィールド値を注文受付メールなどに挿入するプラグインが開発されました。商品ごとに設定したカスタムフィールド値を、プラグインの詳細画面で設定したフォーマットに基づき、注文メールテンプレートに挿入できます。 複数商品注文時は、商品数分フォーマットが適用されます。この機能はメールビルダープラグインでも利用可能。合わせて、商品一覧の並び順設定を追加するアップデートも実施されました。パッケージはsaitodev.co/soycms/soyshop/ からダウンロードできます。

 

SOY CMSのHTMLキャッシュプラグインで高速化

/** Geminiが自動生成した概要 **/
SOY CMSのHTMLキャッシュプラグインは、サイト高速化を実現する強力なツールです。従来の静的化プラグインの欠点を克服し、標準ページを含む全ページをキャッシュ対象としつつ、ページごとにキャッシュの有効/無効を設定できる柔軟性を備えています。これにより、SOY Shop連携など動的なコンテンツを含むページでも最適なパフォーマンスを実現できます。HTMLキャッシュは、PageSpeed Insightsのスコア向上に貢献するだけでなく、メディア露出時の急激なアクセス増加にも対応できる安定性を提供します。内部SEO対策としても有効で、情熱大陸放送後のアクセス集中を乗り切った事例からもその効果が実証されています。パッケージはsaitodev.coからダウンロード可能です。SEO対策に関する詳細はsaitodev.co/category/SEOをご覧ください。

 

【SEO対策】最終産物のHTMLのキャッシュで高速化

/** Geminiが自動生成した概要 **/
SQLiteを採用するSOY CMSでサイト表示を高速化するため、最終生成HTMLのキャッシュ化機能を導入した。データベースやファイル読み込みを省略することでPageSpeed Insightsのスコアが大幅に向上。この機能はHTMLキャッシュプラグインをインストール後、index.php内のexecute_site()をexecute_site_static_cache()に変更することで有効になる。ただし、カート内容の表示など動的なコンテンツはキャッシュ化できないため、リッチなサイト構成との両立は難しい。高速化とSEO対策には見栄えよりも内容重視の割り切りが必要となる。SOY Shopでも同様のキャッシュプラグインが開発されている。

 

【SEO対策】データベースチューニング

/** Geminiが自動生成した概要 **/
SOY Shopのデータベースパフォーマンス改善にはインデックスの見直しが効果的です。 商品点数やアクセス数の増加に伴い、データベースへの負荷が増大し表示速度が低下することがあります。 特に商品検索や絞り込み機能は複雑なクエリを実行するため、適切なインデックスが設定されていないとパフォーマンスに大きな影響を与えます。 インデックスはデータベース内の特定の列に付与されることで、データ検索の高速化を実現します。 SOY Shopでは、商品コードや商品名、公開状態など、頻繁に検索される項目にインデックスを設定することが推奨されています。 しかし、不要なインデックスは更新処理のオーバーヘッドとなるため、適切なインデックスを選択することが重要です。 記事では、phpMyAdminを用いたインデックスの確認方法、SOY Shop管理画面からのインデックス設定方法、そしてインデックス設定の注意点が解説されています。 インデックスを適切に設定することで、データベースの負荷を軽減し、表示速度の向上、ひいてはユーザーエクスペリエンスの向上に繋がるとしています。

 

【SEO対策】実行環境のバージョンを上げて高速化

/** Geminiが自動生成した概要 **/
PageSpeed Insightsでスコア100を目指すため、サーバー側の処理速度向上に取り組んだ。SEO対策として、PHP製CMSを使う場合、PHPバージョンを最新に保つことが重要。PHP7系はOPCacheにより高速化されており、バージョンアップだけでスコア向上も期待できる。VPSサーバでのバージョンアップ方法は過去記事を参照。PHP8ではJitコンパイラ導入で更なる高速化が見込まれる。かつてGo言語への移植も検討したが、PHPでスコア100達成できたため中止した。

 

SOY Shopの顧客機能を活用して買取管理アプリを開発しました

/** Geminiが自動生成した概要 **/
SOY Shopを活用した買取管理アプリが人文と社会の書林様サイト(https://www.tetsugakukaitori.com/)に導入されました。従来のSOY Inquiryでの買取依頼フォームに加え、SOY Shopの顧客管理機能と連携し、買取依頼の一元管理を実現。管理画面には専用の買取管理ページが設けられ、SOY Inquiryからの申込情報と連携。顧客はマイページから査定手続き、身分証登録、問い合わせ、査定額承認などが行えます。運営側は手続き状況変更、状況に応じたメール送信、査定結果アップロード、集荷伝票自動作成が可能。顧客情報はSOY Shopの顧客データベースと連携し、2回目以降の買取依頼を簡略化。管理画面のみ使用モードも活用しています。

 

SOY Shopのメール送信種類追加プラグインで顧客詳細メールの種別を追加しました

/** Geminiが自動生成した概要 **/
メール送信種類追加プラグインで、顧客向けのメール種別を追加しました。注文と顧客の種別を選択でき、顧客詳細ページから送信するメールの種類を指定できます。

 

SOY ShopのマイページのフォームでParsley.jsを使用する際に注意すること

/** Geminiが自動生成した概要 **/
SOY2HTMLでセキュアなフォームを設置するには、csrf_tokenを利用する。HTMLFormクラスでformタグを出力すると自動的にトークンが埋め込まれる。トークンはセッションに保存され、送信時に検証されるため、クロスサイトリクエストフォージェリを防げる。 独自にformタグを作成する場合は、soy:id="csrf"でトークンを埋め込む必要がある。また、JavaScriptで非同期通信を行う場合も、トークンをヘッダーやパラメータに含める必要がある。トークンの有効期限は短いため、フォームの送信に時間がかかる場合は注意が必要。これらの対策により、安全なフォームを実現できる。

 

SOY Shopで商品毎パーツモジュール選択読み込みプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品詳細ページで商品ごとに異なる定型文を表示するプラグインが開発されました。 通常、プラグインで定型文を設定するところを、このプラグインはパーツモジュール内で他のパーツモジュールを呼び出すことで実現しています。商品情報に設定したモジュールIDに対応するパーツモジュールを`shop:module="common.fixed_form_module"`で呼び出すと、商品に応じた定型文が表示されます。HTMLだけでなくPHPのモジュールも使用可能なので、動的な表示にも対応できます。このプラグインを含むパッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopで顧客宛メールの送信を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopに顧客宛メール送信機能が追加されました。従来は注文関連の連絡のみでしたが、今回のアップデートで任意の用件でメールを送信できるようになりました。これは、別途追加されたマイページお問い合わせフォームへの返信機能を補完するものです。顧客はフォームから問い合わせ、管理者は今回追加された機能で返信できます。これにより、マイページ上での円滑な顧客対応が可能になります。Bootstrapテンプレート利用時、お問い合わせフォームと今回のメール機能で、問い合わせから返信までをマイページ内で完結できます。最新版はsaitodev.coからダウンロード可能です。

 

SOY Shopで振込先情報プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop管理画面に振込先情報編集機能を追加するプラグインを作成しました。このプラグインを使用すると、顧客の振込先情報を管理し、返金時の送金に利用できます。顧客はマイページからも振込先情報を登録可能です。

 

SOY Shopで商品管理のみの権限の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopに商品管理のみの権限設定が追加されました。外部委託業者などに商品登録業務を依頼する場合、この権限を付与することで、商品ページ関連の操作のみを許可できます。管理画面へのログイン後、ナビゲーションには商品関連の項目のみ表示され、URL直打ちによる未許可ページへのアクセスも制限されます。今回のアップデートでは権限周りのコードもリファクタリングされ、新たな権限の種類を容易に追加できるようになりました。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY ShopのPAY.JP定期課金モジュールでカード情報の変更の画面を追加しました

/** Geminiが自動生成した概要 **/
SOY ShopのPAY.JP定期課金モジュールに、カード情報変更機能が追加されました。現在はマイページログイン後からの変更ですが、将来的にはメール経由でログインなしでの変更も可能になる予定です。 このアップデートにより、ユーザーは定期課金のカード情報を更新できるようになり、期限切れ等による課金停止を防ぎます。 PAY.JP定期課金モジュールは、SOY Shopでクレジットカード決済の継続課金を行うためのプラグインです。最新版はsaitodev.co/soycms/soyshop/からダウンロードできます。

 

SOY Shopの商品レビュープラグインでレビュー用ページの機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品レビュープラグインに、レビュー表示件数設定とページ分割機能が追加されました。商品詳細ページに表示するレビュー数を管理画面で設定可能になり、それを超えるレビューは別ページに表示されます。これにより、レビュー数の増加に対応できるようになりました。また、サイトマッププラグインも改良され、レビュー増加時にXMLに自動で項目が追加されるため、SEO対策も万全です。今回のアップデートにより、ユーザビリティとSEOの両面が強化されました。ダウンロードはsaitodev.co/soycms/soyshop/ から可能です。以前のアップデートでは、5つ星形式の評価を表示するcms:idタグも追加されています。

 

SOY Shopで販売管理アプリの構築に挑戦

/** Geminiが自動生成した概要 **/
SOY Shopで販売管理アプリ構築に挑戦中。仕入・入出金管理に注力し、既存の販売管理アプリの課題である価格バリエーションの不足に対応するため、SOY Shopのプラグインを活用し無制限登録を実現。商品規格を応用し、仕入値の異なる同一商品を管理。管理画面からの注文登録時に仕入値パターンを表示する機能も追加。ネットショップにおける仕入の概念の重要性も認識。販売管理機能強化により、ネットショップ機能全体の向上を目指す。

 

SOY Shopで注文キャンセルメール追加プラグインを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文キャンセル時、自動/手動でキャンセルメールを送信するプラグインが追加されました。メールテンプレートは既存のプラグインで作成可能ですが、新プラグインでは商品毎にメールアドレスを設定でき、キャンセル時に該当商品があれば指定アドレスにも送信されます。商品毎メールアドレス追加プラグインと併用すれば、購入時とキャンセル時に指定アドレスへ自動送信が可能になり、代理店販売サイトで特に役立ちます。対応パッケージはsaitodev.co/soycms/soyshop/ からダウンロードできます。

 

SOY CMSとSOY ShopでPHP7.4系に対応してみました

/** Geminiが自動生成した概要 **/
SOY CMSとSOY ShopがPHP7.4に対応しました。PHP7.4は7.3より高速ですが、マジックメソッド__callの振る舞いの変更が影響し、SOY CMSのsoy:id記法の一部でエラーが発生していました。具体的には、addForm()等のメソッドが__callで抽象化されていたため、PHP7.4ではHTTP 503エラーが発生していました。この問題を解消するため、addForm()等を直接呼び出せるよう修正し、抽象的なコードを減らすことで高速化にも貢献しました。PHP7.4対応版はサイトからダウンロード可能です。今回の修正はPHP5系でも動作します。プラグインの動作確認はまだ完了していないため、エラーが発生した場合は問い合わせフォームから報告をお願いします。

 

SOY Shopをリリースして10年が経ちました

/** Geminiが自動生成した概要 **/
SOY Shopは2009年12月18日にベータ版公開、CSS Nite忘年会でお披露目された。開発当初はプログラミング未経験だったが、マニュアル作成やバグ報告、軽微な修正を担当。後に支払いモジュール開発でスキルアップし、構築サイトが情熱大陸で紹介されるなど貴重な経験を得た。中でも、多様な業種のネットショップ構築を通して商売事情を学べたことが、現在の商売の基礎となっている。開発元を去った後も、オープンソースとして非公式にメンテナンスを継続していく。

 

SOY Shopでマイページログイン用パスワード自動生成プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページログイン用パスワード自動生成プラグインがアップデートされ、管理画面から顧客を追加する際にもパスワードが自動生成されるようになりました。従来は顧客がマイページ登録時のみ自動生成でしたが、今回の更新で管理画面からの登録にも対応。これにより、顧客情報のCSVインポートや一括登録時にもパスワードが自動生成され、管理者の負担を軽減します。生成されたパスワードは登録完了メールに記載され、顧客はすぐにマイページにログインできます。この機能はプラグインの設定画面で有効/無効を切り替え可能です。

 

SOY Shopで商品名サブタイトルプラグインを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品名サブタイトルプラグインを追加しました。長い商品名が見切れてしまう問題を解消するため、サブタイトルを入力できるフォームを設けました。サブタイトルは別のHTMLタグで出力できるため、商品名と分けて表示できます。このプラグインに合わせて、カスタムサーチフィールド等の検索モジュールでは、商品名とサブタイトルの両方を検索対象に含めました。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopで出荷予定日通知プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用出荷予定日通知プラグインが開発されました。注文から即時出荷を売りにするサイト向けに、サイト上で現在の注文の出荷予定日を表示できます。営業日カレンダーと連携し、定休日を考慮した正確な日付を表示。表示文言は営業日・定休日の午前・午後それぞれ設定可能です。通常版に加え、商品ごとに異なる出荷日・文言を設定できる商品毎出荷予定日通知プラグインも追加されました。パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopノートパッドプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopユーザー向けに、商品・カテゴリ・顧客ごとにメモを残せる「SOY Shopノートパッドプラグイン」を開発しました。管理画面の詳細画面にWYSIWYGエディタ付きのメモエリアを追加し、画像やリンクの挿入も可能です。メモ投稿後は詳細画面にリンクが表示されます。現在はタイトルと本文のみですが、検索性向上などの拡張も検討中です。ダウンロードはsaitodev.co/soycms/soyshop/ から可能です。顧客からの要望を元に、簡単な引継ぎ情報共有を目的として開発され、商品、カテゴリ、顧客の詳細画面にメモを残すことができます。

 

SOY Shopのカスタムサーチフィールドで検索フォームの初期の選択の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムサーチフィールドで、検索フォームの初期選択値を設定できるようになりました。ラジオボタン、チェックボックス、セレクトボックスで、選択項目の前に「*」を付けるだけで、ページ表示時に該当項目が初期選択されます。この機能により、ユーザーが求める商品をよりスムーズに見つけられるようになります。設定はカスタムサーチフィールドの管理画面から行えます。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopの管理画面からの注文で未登録商品の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面からの注文で、誤操作により在庫管理などに不整合が生じる問題を解消するため、「未登録商品を指定する」ボタンの表示有無を設定できる機能が追加されました。 業務アプリとしてSOY Shopを活用する際、この新機能により、新規スタッフの教育コスト削減と誤操作による損害リスク軽減に繋がります。このアップデートを含む最新パッケージはsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY Shopの商品詳細表示プラグインでパンくず中のリンクの設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品詳細表示プラグインで、パンくずのリンク先をカスタマイズできるようになりました。従来、商品詳細ページのパンくず内の「商品一覧」リンクは固定でしたが、今回のアップデートにより、管理画面の商品情報編集画面で任意のURLに変更可能になりました。 これにより、商品カテゴリページ以外にも、特定の特集ページなど、任意のページへリンクさせることができます。変更したURLは、商品詳細表示プラグインで出力されるパンくずに反映されます。 最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

虫にかじられやすい株とそうでない株の違いは何だ?

/** Geminiが自動生成した概要 **/
虫に食害されやすいアブラナ科植物とそうでないものの違いは、食害時に生成される防御物質イソチオシアネートの合成能力の差にある可能性が高い。イソチオシアネート合成には、材料のグルコシノレートと酵素ミロシナーゼが必要だが、グルコシノレートは硫黄があれば普遍的に合成されるため、ミロシナーゼの活性が鍵となる。試験管内での実験では、カリウムイオンとビタミンCがミロシナーゼ活性を高めることが示されている。 カリウムが不足すると植物の養分吸収能力が低下するため、イソチオシアネート合成にも影響する可能性がある。つまり、食害を受けにくい株はカリウムが十分に供給されていると考えられる。米ぬか施肥によるカリウム補給と土壌改良は、植物の防御機構強化に繋がる有効な手段かもしれない。

 

SOY Shopの納品書等で軽減税率の区分記載を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの納品書に軽減税率商品の区分記載機能が追加されました。従来の「印刷用納品書作成プラグイン」を改修し、軽減税率対象商品と標準税率商品が混在する注文において、各商品の税率区分を自動で明記するようになりました。現在はdefaultテンプレートのみ対応しています。新規プラグイン開発ではなく既存機能の改修による対応で、https://saitodev.co/soycms/soyshop/からダウンロード可能なパッケージに含まれています。詳細な設定方法は既存の納品書作成チュートリアルを参照ください。

 

ダゾメットによる土壌消毒はチョウ目の幼虫に有効であるか?

/** Geminiが自動生成した概要 **/
アブラナ科植物は、害虫から身を守るため、グルコシノレートとミロシナーゼという物質を別々の細胞に蓄えています。植物体が損傷すると、これらが反応して毒性のあるイソチオシアネートが生成されます。チョウ目の幼虫は、このイソチオシアネートを無毒化するのではなく、生成自体を阻害することで食害を可能にしています。つまり、幼虫の消化液中の酵素がグルコシノレートに作用し、ミロシナーゼとの反応を阻断するのです。ただし、チョウ目の幼虫が他の解毒経路を持っている可能性は否定できません。また、ホウレンソウは根が傷つけられると、昆虫の変態を阻害するファイトエクジステロイドという物質を生成することがわかっています。

 

SOY Shopの消費税別表示モジュールで軽減税率の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの消費税別表示モジュールが軽減税率に対応しました。2019年10月からの消費税増税に伴い、モジュールで増税日と税率を設定できる他、軽減税率の設定も可能になりました。軽減税率対象商品は、各商品の編集画面でチェックボックスにより指定します。対象商品の一覧表示機能は現状ありませんが、要望があれば追加予定です。最新版はsaitodev.co/soycms/soyshop/からダウンロードできます。

 

SOY Shopの商品詳細表示プラグインで商品の公開状態等を加味するように変更しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品詳細表示プラグインが更新され、商品の公開状態と公開期間が反映されるよう改善されました。さらに、パンくずモジュールと連携して、フリーページで商品詳細ページと同様のパンくず表示が可能になりました。キャッシュ削除時の不具合も修正され、PHP Noticeエラーも表示されなくなりました。この更新により、商品ページの表示が正確かつ安定したものになります。

 

野菜の美味しさとは何だろう?

/** Geminiが自動生成した概要 **/
野菜の美味しさと強さを追求する著者は、土壌の健康状態が野菜の品質に大きく影響すると考えている。理想的な土壌は、多様な微生物が共生し、植物の根が深く広く伸びることができる環境。これは、有機農法、特に米ぬかボカシ肥料の使用によって実現可能。一方、化学肥料中心の慣行農法では、土壌の微生物バランスが崩れ、植物の健康状態も悪化、味や食感にも悪影響が出ることがある。実際に、著者は米ぬかボカシと化学肥料で栽培したチンゲンサイの比較実験を行い、化学肥料で育てたチンゲンサイは筋っぽく、食感が悪いという結果を得た。真の野菜の美味しさは、健康な土壌から生まれると結論付けている。

 

ご利用中の共有サーバのPHPのバージョンアップにご注意下さい

/** Geminiが自動生成した概要 **/
共有サーバーのPHPバージョンアップに伴い、サイトに予期せぬエラーが表示されるケースが増加しています。PHPのバージョンアップにより古いコードが非推奨となるため、例えばSOY Shopのサイトマッププラグインでエラーが発生するといった事態が起こりえます。 記事では、PHP 5.6 から 7.3 への変更による影響と、バージョンアップによるエラー発生の可能性について解説しています。例として挙げられたサイトマッププラグインのエラーは既に修正済みで、最新版のパッケージで対応可能です。 PHPのバージョンアップは今後も続くため、同様のエラー発生が予測されます。SOY CMSとSOY ShopもPHPのバージョンアップに対応したアップデートを提供しているので、最新版への更新を推奨しています。

 

SOY Shopのカスタムフィールドでカテゴリとの関連付けを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopでは、商品情報にカスタムフィールドを追加できるようになりました。さらに、カテゴリごとにカスタムフィールド項目の表示/非表示を設定可能に。これにより、商品編集画面が肥大化せず、必要な情報だけを表示できます。具体的には、カスタムフィールドの項目設定でカテゴリを紐付け、編集画面で関連カテゴリを選択すれば、そのカテゴリに紐付いた項目だけが表示されます。この機能により、商品情報を分かりやすく管理できます。

 

SOY CMS / Shopでキャッシュファイルの作成失敗の対策を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSとSOY Shopで、キャッシュファイル生成の失敗時に自動的にファイルを削除し再生成する機能が追加されました。これにより、文字抜けなどのキャッシュ生成の不具合が回避され、ウェブサイトが常に正確に表示されるようになります。

 

スパーク運動療育西京極スタジオ様サイトの制作を行いました

/** Geminiが自動生成した概要 **/
妻の亮子が、児童発達支援事業所スパーク運動療育西京極スタジオのWebサイトと予約アプリを制作しました。サイトのデザイン、予約アプリの開発は夫の齋藤毅が担当。運動療育は、発達障害のある子どもが運動を通してコミュニケーション能力や感情コントロール能力を育むもので、早期開始が効果的です。亮子は、子育て中の母親としての視点を取り入れ、安心して利用できるサイトを目指しました。西京極スタジオのオーナーは療育の効果を実感し、必要性を感じてスタジオを設立。亮子は今回の制作を通して新たな分野の知識を得ると共に、Webデザイナーの仕事のやりがいを再確認しました。

 

SOY ShopのSMTPによるメール送信できない状態について

/** Geminiが自動生成した概要 **/
SOY ShopのSMTPメール送信不具合は、さくらインターネットのメールボックス側の仕様変更が原因だった。 SOY ShopはSMTP認証にDIGEST-MD5を優先利用していたが、さくら側でこれが拒否されるようになった。そのため、Thunderbirdでは送信できたが、SOY Shopからは送信できなかった。 解決策として、認証アルゴリズムをCRAM-MD5に切り替えることで送信できることを確認。修正版はsaitodev.co/soycms/soyshop/からダウンロード可能。ただし、この対応が全てのメールサーバで有効かは不明。

 

SOY Shopで商品毎にメール文面に挿入できる定型文のプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品毎にメール文面に定型文を挿入できるプラグインが開発されました。特定商品の注文時にのみ必要な情報を伝えるため、ワインの管理方法など、商品に応じた定型文をメールに自動挿入できます。プラグイン設定画面で定型文を作成し、商品登録時に選択することで、注文受付メールに反映されます。これにより、不要な情報を含めずに商品固有の注意点を伝えられます。現在は注文受付メールのみ対応ですが、今後の要望に応じて対応範囲を拡大する可能性があります。プラグインはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopのカスタムサーチフィールドで簡易予約カレンダー用の項目を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの簡易予約カレンダー機能拡張で、カスタムサーチフィールドに予約カレンダー検索項目が追加されました。これにより、旅行予約サイトなどで、ツアーの予約状況に基づいた絞り込み検索が可能になります。カスタムサーチフィールドタグ`csf:id`を利用することで、高度な検索フォームを構築できます。このアップデートは、キャンセルが多い事業向けの予約アプリ開発(記事へのリンクあり)などの背景も踏まえ、予約サイト構築の柔軟性を高めます。ダウンロードはサイト(saitodev.co/soycms/soyshop/)から可能です。関連情報として、Bootstrap4対応のカートとマイページ追加の記事も紹介されています。

 

SOY Shopのカスタムサーチフィールドでフリーワード検索を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで複数カテゴリのような設定を行うには、カスタムフィールドを利用します。商品詳細ページにカスタムフィールドを追加し、そこにカテゴリIDをカンマ区切りで入力することで、複数のカテゴリに属するように見せかけることができます。検索時には、カテゴリIDをクエリパラメータとして渡すことで絞り込み検索が可能です。 この方法はデータベースの構造を変えることなく、柔軟なカテゴリ設定を実現できます。ただし、管理画面上では単一のカテゴリにしか属していないため、カテゴリ一覧ページなどには表示されません。あくまで、商品詳細ページからのみアクセス可能な擬似的な複数カテゴリ設定です。真の複数カテゴリ設定には、プラグイン開発が必要です。

 

SOY Shopでカテゴリ商品ブロック生成プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のプラグインで、複数カテゴリの商品一覧を1ページに表示できる機能を追加しました。標準のナビゲーションページではカスタムサーチフィールド等のプラグインとの連携が難しいため、簡易的に商品ブロックと同等の機能を実現するプラグインを開発。管理画面で生成個数を指定すると、`<shop:module>`と`<block:id="item_list">`を使った記述が生成され、`category`属性にカテゴリIDを指定することで各カテゴリの商品一覧が表示されます。カテゴリIDはカテゴリ詳細画面のURL末尾の数字で確認できます。今後はカスタムサーチフィールドにも対応した商品ブロック作成プラグインを開発予定です。現在はカテゴリと表示件数、カスタムサーチフィールドに対応したプラグインを公開中です。

 

SOY Shopの予約カレンダープラグインで子供料金の指定が出来る拡張を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの予約カレンダープラグインに、大人と子供の人数指定に対応した拡張機能が追加されました。人数に応じた料金計算が可能になり、ツアーや宿泊予約の基本機能が充実しました。将来的には連泊機能も追加予定です。この「予約カレンダー人数指定拡張プラグイン」は試作段階のため、正常に動作しない可能性もありますが、最新パッケージはsaitodev.co/soycms/soyshop/からダウンロードできます。以前開発したキャンセル対応予約アプリに続く、新たな拡張機能です。

 

SOY Shopでキャンセルが頻繁に発生する事業向けの予約アプリを開発しました

/** Geminiが自動生成した概要 **/
SOY Shopの顧客管理機能を活用し、キャンセル発生頻度の高い就学前児童向けWebサービスの予約カレンダーを開発。Googleアカウントログイン機能、仮登録による会員限定アクセス制限、運営者による本登録承認フローを実装。スマホで空き状況確認・予約を簡素化し、クリック操作で予約完了までスムーズな導線を構築。Bootstrapテンプレートのカスタマイズにより操作性を向上。兄弟利用を想定した予約時情報入力機能も搭載。キャンセル発生時の迅速な空き状況更新にも対応。

 

SOY Shopで商品毎メールアドレス追加プラグインを追加しました

/** Geminiが自動生成した概要 **/
SOY Shop用の商品毎メールアドレス追加プラグインがリリースされました。以前開発された商品ごと送料設定モジュールから、注文時に商品ごとに異なるメールアドレスへ自動送信する機能を抽出したものです。代理店販売などで活用できます。プラグインは、商品ごとに追加のメールアドレスを設定可能にし、注文時にそのアドレスへ自動送信されます。詳細はsaitodev.co/soycms/soyshop/ で公開されているパッケージからダウンロードできます。

 

SOY ShopでBootstrapの4系のカートとマイページを追加しました

/** Geminiが自動生成した概要 **/
SOY ShopにBootstrap 4ベースのカート・マイページテンプレートが追加されました。レスポンシブ対応はもちろん、予約カレンダー連携機能も強化されています。仕様の見直しにより、簡易予約カレンダープラグインとの連携で便利な機能が利用可能になりました。使用方法の詳細はプラグインページをご覧ください。ダウンロードはsaitodev.co/soycms/soyshop/から可能です。

 

SOY Shopの予約カレンダーでレスポンシブ対応

/** Geminiが自動生成した概要 **/
SOY Shopの予約サイト構築用プラグインに、レスポンシブ対応のカレンダー表示機能が追加された。PCでは1ヶ月分のカレンダー、スマホでは今日から2週間分の縦型カレンダー表示となり、Bootstrap 4ベースでUIが改善。この機能は「予約カレンダースマホ拡張プラグイン」で利用可能。開発案件のニーズに応え、予約アプリ導入コスト削減を目指し開発された。更新版パッケージはsaitodev.co/soycms/soyshop/からダウンロードできる。

 

SOY ShopのGoogle Sign-In for Websitesプラグインでボタンの拡張設定を追加しました

/** Geminiが自動生成した概要 **/
SOY ShopのGoogle Sign-In for Websitesプラグインにボタン拡張設定が追加されました。従来のシンプルなログインボタンに加え、JavaScriptでカスタマイズ可能なボタンを実装できます。管理画面のサンプルコードを元に、大きさやデザインを自由に調整可能です。この拡張により、カートページ等のデザインとの調和が容易になり、より柔軟なサイト構築が可能になります。更新版プラグインはsaitodev.co/soycms/soyshop/からダウンロードできます。

 

SOY Shopで注文詳細の商品毎に状態を持たせてみた

/** Geminiが自動生成した概要 **/
SOY Shopの注文詳細画面に、商品毎の状態管理機能を追加するプラグインが開発された。これにより、例えば一部出荷や在庫不足といった状況を商品単位で管理し、担当者間での情報共有をスムーズにすることが可能になる。プラグイン導入後は、設定画面で任意の状態を追加できる。 開発の背景には、注文数と出荷可能数が異なる場合の状況管理の煩雑さを解消する目的がある。商品毎に「配送途中」などの状態を付与し、コメント欄に詳細を記録することで、配送状況の共有コスト削減が期待される。 このプラグインは、営業事務向けの機能強化の一環として開発され、管理画面の利便性向上に貢献する。ダウンロードはサイト(https://saitodev.co/soycms/soyshop/)から可能。

 

SOY Shopの管理画面からの注文で商品毎の価格設定を確認する

/** Geminiが自動生成した概要 **/
SOY Shopを顧客管理業務アプリとして活用する中で、顧客ごとに異なる価格設定が必要になったため、特別会員価格設定プラグインを導入。しかし管理画面からの注文登録時に商品ごとの価格一覧が確認できない問題が発生した。そこで、注文登録画面で商品に追加価格設定がある場合、価格一覧ボタンを表示し、ポップアップで確認できるように改良。これにより、商品編集画面を開かず価格を確認できるようになり、問屋業などでの利便性向上に繋がる。改良版はサイトからダウンロード可能。合わせて顧客管理機能強化、管理画面のみ使用モード、注文状態並び替え、商品確認済ステータス追加など関連記事も紹介。

 

SOY Shopでカテゴリ版まとめ買い割引プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用カテゴリ版まとめ買い割引プラグインが開発されました。従来の全商品対象ではなく、カテゴリ毎に割引設定が可能になります。指定カテゴリ商品の個数/金額による割引設定、特定価格以上の商品限定、割引適用個数上限設定など、柔軟な割引ルールを設定できます。例えば、カテゴリAの商品を3個以上、または合計金額が1万円以上で割引、カテゴリBの500円以上の商品を2個以上購入で割引、といった設定が可能です。ピザ2枚目半額のような割引も実現できます。ダウンロードはsaitodev.co/soycms/soyshop/ から。

 

SOY Shopの注文詳細で商品毎に確認済みのステータスを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで注文状態の並び順を設定できるプラグインが開発されました。 管理画面の注文一覧表示で、標準の状態遷移に沿わない並び順への変更ニーズに応えるものです。プラグインを有効化すると、設定画面で自由に注文状態の表示順をドラッグ&ドロップで変更できます。これにより、ショップ独自のワークフローや業務の優先順位に合わせた表示が可能になり、作業効率の向上が期待できます。例えば、「入金待ち」を「発送待ち」より前に表示するなど、柔軟なカスタマイズが可能です。設定は簡単で、直感的な操作で変更できます。このプラグインは、SOY Shopの標準機能では実現できなかった注文状態の表示順のカスタマイズを可能にし、より効率的な受注管理を実現するツールとなります。

 

さくらのVPSにUbuntu18.04を入れてSOY CMSを動かした時のメモ

/** Geminiが自動生成した概要 **/
SOY CMSでMySQL 8系に接続できない場合、認証方式の違いが原因です。MySQL 8系は`caching_sha2_password`がデフォルトですが、SOY CMSは`mysql_native_password`で接続します。解決策は、MySQLの設定ファイル`mysqld.cnf`の`[mysqld]`セクションに`default_authentication_plugin=mysql_native_password`を追加し、MySQLを再起動します。新規インストール時はインストール時に`mysql_native_password`を指定できます。既存ユーザの場合は、MySQLにログインし`ALTER USER 'ユーザ名'@'localhost' IDENTIFIED WITH mysql_native_password BY 'パスワード';`を実行し、`FLUSH PRIVILEGES;`で変更を適用します。

 

SOY CMSの開発元を辞めた後も開発を続ける心境をまとめてみた

/** Geminiが自動生成した概要 **/
筆者はかつてSOY CMSの開発元で働いていたが、開発元が農業事業に転換する際に退職し、以来個人でSOY CMS/Shopの開発を続けている。開発継続の理由は、SOY Shopを利用するユーザーのビジネスを支える責任感と、カスタマイズ依頼による収入で生活が成り立っているため。一方で、開発元の権利所有により公式の場での活動が制限され、SOY CMSの衰退を危惧している。生活のため、新規ユーザー獲得よりも既存ユーザーの売上向上に注力し、新機能紹介プラグインなどを開発。自身のサイト運営を通してSOY CMSの魅力を伝えることで、間接的な普及も目指している。開発元にはGitHubでの公開とユーザー主体の運営への移行を希望し、ユーザーからの寄付や支援に感謝しつつ、非公式ながらも開発を継続する意思を表明している。

 

SOY Shopで注文番号をCODE39規格でバーコードを作成してみる

/** Geminiが自動生成した概要 **/
SOY Shopで注文番号をバーコード化できるプラグインを開発。CODE39規格を採用し、ハイフンを含む注文番号に対応。生成されたバーコードはCCDバーコードリーダーで読み取り可能だが、初期設定では長すぎて認識エラーが発生。リサイズで対応。プラグインはsaitodev.coからダウンロード可能。バーコード生成にはPHP Barcode Generatorを使用。現時点ではSOY Shop標準機能としての用途は未定だが、活用アイディア募集中。

 

SOY Shopで商品毎でJANコードを登録しバーコードを作成してみる

/** Geminiが自動生成した概要 **/
SOY Shopで商品ごとにJANコードを登録・バーコード表示するプラグインが開発されました。管理画面の商品詳細画面にJANコード入力欄が追加され、入力するとバーコード画像が生成されます。生成されたバーコードは市販のバーコードリーダーで読み取り可能であることが確認されています。プラグインはsaitodev.coからダウンロードできます。バーコード生成にはPHP Barcode Generatorが使用されています。現状、SOY Shop標準機能でのこのプラグインの用途は未定ですが、活用アイデアは問い合わせフォームから募集中です。

 

SOY Shopで注文状態並び順設定プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文状態(ステータス)並び替えプラグインが開発されました。 管理画面で注文状態の並び順をカスタマイズでき、業務フローに合わせた表示が可能になります。 以前開発された「注文状態追加プラグイン」で追加したステータスも含め、標準ステータスと合わせて自由に並び替えられます。 発送済み前に梱包済みステータスを配置するなど、業務に合わせた並び順でミスの軽減、作業効率向上が期待できます。 パッケージはsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

栽培の中心にはいつも化学

/** Geminiが自動生成した概要 **/
筆者は10数年前、大学院を休学し京丹後で無農薬・半自然栽培を行う師匠の元で住み込み研修を行った。師匠の野菜の美味しさを通して「美味しい野菜を知らない人が大半」という言葉を痛感する。研修中、最新研究で栽培が楽になるかという地元民からの質問に対し、大学での研究は栽培自体に興味がないため楽にならないと答えた。師匠の本棚にあった化学の本に着想を得て、米ぬかボカシを元に化学的なアプローチで栽培技術の向上を図るようになる。その後、肥料に関する知識を深め、京都農販の木村氏との出会いを通じて慣行栽培の化学にも触れる。各地で講演を行う中で、秀品率の高い生産者は貪欲に知識を取り入れ、技術を洗練させていることを知る。そして、情報の集約点には師匠の本棚にあった化学の本があったことを再認識し、2000回目の記事を締めくくる。

 

SOY ShopでSOY Shop新機能紹介プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの新機能紹介プラグインが開発されました。このプラグインは、SOY Shop管理画面の新着ページに、開発ブログで紹介されている新機能の記事一覧を表示します。開発者は、SOY Shopの豊富な機能をユーザーに最大限活用してほしいと考えていますが、新機能の情報が届きにくいことが課題でした。そこで、管理画面に新機能紹介記事を表示することで、ユーザーのオペレーション効率化や売上向上に繋がるヒントを提供することを目指しています。ただし、開発者寄りの情報になる可能性もあるため、掲載内容については、事例紹介なども含めて検討していく予定です。新機能紹介プラグインを含むパッケージはsaitodev.coからダウンロードできます。

 

SOY Shopで管理画面のみ使用モードを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopは、9年の歴史の中で機能強化を重ね、ネットショップだけでなく業務アプリとしての需要が高まっている。今回、業務アプリ利用時のサンプルデータ削除の手間を省くため、「管理画面のみ使用モード」が追加された。サイト作成時にチェックを入れるだけで、サンプルデータなしで管理画面を利用できる。 業務アプリとして利用する場合はMySQLデータベース推奨。併せて、管理画面の使い始めのガイダンスも追加された。このアップデートにより、在庫管理や顧客管理など、SOY Shopを業務システム基盤として活用する際の初期設定が簡素化される。ダウンロードは公式サイトから可能。

 

SOY ShopでSQLiteからMySQLに移行するプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの長年の運営でSQLiteからMySQLへのデータベース移行の需要が高まり、今回専用の移行プラグインが開発された。SQLiteはファイルベースでサーバーのスペックに依存する一方、MySQLはサーバーベースでリソース割り当てによるパフォーマンスチューニングが可能となる。ただし、MySQL移行自体が速度改善を保証するわけではなく、サーバー環境によっては逆効果になる場合もある。特に共有サーバーでは注意が必要。移行プラグインは、サーバー移転を伴うデータベース移行作業の簡素化を目的としており、チューニング可能なサーバーへの移転と合わせて検討することが推奨される。プラグインはsaitodev.coからダウンロード可能。

 

SOY Shopのデータベースのインデックスの見直しで運営の限界を上げる

/** Geminiが自動生成した概要 **/
SOY Shopユーザーから、サイト表示速度の遅延に関する問い合わせを受け、SQLiteの限界(注文件数約1万件)を指摘した。ユーザー自身はデータベース設計の最適化を提案、実行速度の大幅改善に成功した。この貴重なフィードバックを基に、開発初期コードを大幅改修、最新版をリリースした。開発元を離れ孤独な開発を続ける中で、ユーザーによるコードレベルの貢献は開発者として大きな喜びとなった。SOY Shopの普及にはプログラマの参加が不可欠だが、コミュニティの活性化は課題となっている。

 

SOY Shopで注文商品の単価一括変更プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopユーザーから注文商品の一括割引操作の効率化要望を受け、「注文商品の単価一括変更プラグイン」を開発しました。 注文詳細画面に新設されたフォームで、割引率と増減、端数処理(四捨五入)を指定することで、複数商品の単価を一括変更できます。商品点数が多い場合の作業負担を軽減します。現在はバックアップ機能は未実装ですが、今後のアップデートで追加予定です。プラグインを含むパッケージはsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY Shopで商品登録時に商品コードの自動生成

/** Geminiが自動生成した概要 **/
SOY Shopで商品登録時に商品コードを手動で入力するのは手間がかかる。特に、商品コードが見積書などに必要ない場合でも、システム上必須となるため、重複しないコードを考える負担が生じる。この問題を解決するため、商品コードの自動生成機能が追加された。管理画面で設定を有効にすると、ランダムなコード、もしくは指定した接頭語と連番を組み合わせたコードが自動で挿入される。これにより、商品登録作業の効率化と時間短縮を実現する。この機能を含むパッケージはsaitodev.coからダウンロード可能。

 

SOY Shopで業種に合わせて高度なメール種別を追加してみる

/** Geminiが自動生成した概要 **/
登山用品レンタルサイト「やまどうぐレンタル屋」では、返却完了メールにレビュー割引適用者への催促文面を自動挿入する機能を追加した。まず「メール送信種類追加プラグイン」で「返却完了メール」を作成。次に、`soyshop.order.mail`拡張ポイントを利用したプラグイン`notify_review_discount`を開発。このプラグインの`getMailBody`メソッドで催促文面を返し、`SOYShopPlugin::extension`の第一引数に`soyshop.order.mail.henkyaku` (henkyakuはメールID) を指定することで、返却完了メールへの挿入を実現した。この手法は特定メール種別へのカスタマイズを可能にする。他にも隠れた拡張ポイントが存在し、サイトの特殊な要件に対応できる可能性があるため、必要に応じて開発元に相談するのが良い。

 

SOY Shopの商品一覧ページで変則的な並び順の対応をしてみる

/** Geminiが自動生成した概要 **/
SOY Shopでカテゴリごとに商品一覧の並び替え順を変える方法。カスタムフィールドで「使用人数」や「使用温度」などの項目を作成し、ソートに利用する設定にする。データベースのカラム型を数値に変更。soyshop.item.list拡張ポイントでプラグインを作成し、getSortメソッドでカテゴリごとに異なるソート条件を返す。テントなら使用人数の降順、シュラフなら使用温度の昇順など。標準設定は価格の昇順にする。URLを変えずに同一ページで並び替え順を変えられるため、SEOにも有効。

 

SOY Shopで誰が操作したか?を把握したい

/** Geminiが自動生成した概要 **/
SOY Shopはネットショップだけでなく実店舗の販売管理にも利用されるようになり、複数店舗で「誰が注文を受け付けたのか」を把握するニーズが高まった。従来、各店舗のアカウントで管理すれば変更履歴に対応者IDが残るが、カート注文では意図したIDが記録されない問題があった。そこで、カート注文にはシステム側で特定の値を挿入する機能と、対応者IDで検索できるプラグインを追加。これにより、ネット注文と実店舗注文のどちらでも、対応者による注文の絞り込みが可能になった。このアップデートは地味ながらも、業務効率化に繋がる重要な改善である。

 

SOY CMS版カスタムサーチフィールド

/** Geminiが自動生成した概要 **/
SOY CMSでSOY Shopのカスタムサーチフィールドを使えるように移植しました。カスタムサーチフィールドは、高度な検索フォームを生成するプラグインで、複数カテゴリ対応や商品カテゴリ検索も可能です。専門家検索サイトのような顧客用カスタムサーチフィールドも作成されました。SOY CMS版は、検索フォーム用の「カスタムサーチフィールド」と記事一覧出力用の「カスタムサーチフィールド記事一覧ブロックプラグイン」の2つがあり、用途に合わせて使い分けられます。ダウンロードはsaitodev.co/soycms/から可能です。

 

SOY Shopの管理画面からの注文で商品オプションプラグインの見直し

/** Geminiが自動生成した概要 **/
京都農販は、多様なニーズに対応するパイプハウス施工の実績を持つ。カタログでは、強度と耐久性に優れた単棟ハウスから、連棟ハウス、特殊ハウスまで幅広い施工事例を紹介。環境制御技術を駆使した温度・湿度管理、CO2施用、養液栽培システムなど、高品質な農作物生産を支援する設備も提案。 耐候性・耐食性に優れた資材を使用し、積雪や強風対策も万全。施工事例を通して、設計から施工、アフターサービスまで一貫体制によるサポートを提供することで、顧客の農業経営の成功に貢献する姿勢を示している。カタログは、パイプハウス導入を検討する農業者にとって、貴重な情報源となるだろう。

 

SOY CMSとSOY ShopでPHP7.3系に対応してみました

/** Geminiが自動生成した概要 **/
PHP 7.3がリリースされ、SOY CMS/Shopも対応しました。7.3は7.2より高速ですが、switch文内のcontinue使用禁止によるエラーが発生しました。for文とswitch文の組み合わせでcontinueを使っていた箇所を修正し、PHP5系でも動作するよう対応済みです。ダウンロードはsaitodev.co/soycms/から。全プラグインの動作確認は未完了のため、PHP7.3でエラー発生時は/soycms/inquiryへの問い合わせをお願いします。

 

SOY Shopで下書き通知プラグインを作成しました

/** Geminiが自動生成した概要 **/
京都農販は、SOY Shopを活用し農業用パイプハウスの見積り作成システムを構築。従来のエクセル作業を1時間程度に短縮、大幅な効率化を実現した。しかし、見積り作成途中での保存・復元に関するUIの課題から、下書き通知プラグインを開発。管理画面の新着ページに下書きの有無を通知し、バックアップ復元へのアクセスを容易にしたことで、作業開始の遅延を解消。 この改善により、マニュアル作成の手間も削減。パイプハウス見積り作成の効率化をさらに促進している。詳細はsaitodev.coで公開されているパッケージから確認可能。京都農販のパイプハウス施工事例は別途PDFで公開されている。

 

SOY Shopでカート内にある商品から注文時に得られるポイントを出力するタグを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで、カート内の商品から注文時に得られるポイントを事前に表示する機能が追加されました。カートにポイント対象商品があれば獲得ポイントを表示、無ければ「ポイントが発生しません」と表示します。 これは、購入前に獲得ポイントを確認したいという顧客の要望に応えたものです。新機能はカートモジュールに追加され、空カート時やポイント非対象商品のみの場合にも対応しています。詳細なタグ情報や利用方法はサイト(https://saitodev.co/soycms/soyshop/modules/?m=item_list#shop_module_common.parts.cart)で確認でき、最新パッケージは(https://saitodev.co/soycms/soyshop/)からダウンロード可能です。

 

SOY Appの管理画面のUIのレスポンシブウェブデザイン対応

/** Geminiが自動生成した概要 **/
SOY CMS ASP版運営プラグインに続き、SOY AppのUIをSOY CMS 3系のレスポンシブウェブデザインに合わせました。これにより、SOY Shopサイトの新規作成画面、SOY Mail、SOY InquiryのUIがBootstrapベースのレスポンシブデザインで表示されます。SOY Appのバージョンアップ前にSOY CMSのバージョンアップが必要です。最新のパッケージはsaitodev.co/soycms/からダウンロードできます。

 

SOY Shopで管理画面のロゴ画像等の設定を設けました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面のロゴとアプリ名を変更できる設定が追加されました。これは、SOY Shopがネットショップだけでなく、在庫管理、顧客管理、見積り作成など多様な業務アプリとして利用されるケースが増えたためです。管理画面のロゴをカスタマイズすることで、納品時の説明の手間を省き、それぞれの用途に合わせた表示を実現します。 従来のネットショップとしての利用に加え、プラグインによる機能拡張で、顧客名簿管理や土壌分析アプリ、パイプハウス施工管理アプリなど、多様な業務システム構築が可能となっています。SOY Shopはネットショップ構築だけでなく、様々なビジネスニーズに対応できる柔軟性を備えたプラットフォームへと進化しています。

 

SOY Inquiryで同一IPアドレスからの連続した問い合わせをブロックする

/** Geminiが自動生成した概要 **/
SOY Shopでクレジットカード番号の不正取得を試みる「クレジットマスター」への対策が強化されました。クレジットマスターは短時間で大量のカード番号を試し、有効な番号を盗み出す攻撃です。対策として、クレジットカード入力画面にreCAPTCHA v3を導入し、ボットによるアクセスを検知します。また、一定回数以上の決済失敗時にアカウントをロックする機能を追加し、不正アクセスの被害を最小限に抑えます。さらに管理画面へのログインにもreCAPTCHA v3を適用し、セキュリティを向上させました。これらの対策により、クレジットマスターからの攻撃を効果的に防ぎ、安全なECサイト運営を支援します。

 

SOY ShopでSTORES決済(旧Coineyペイジ支払い)モジュールを作成しました

/** Geminiが自動生成した概要 **/
SOY ShopにCoineyペイジ決済モジュールが追加されました。Coineyは、カードリーダー(Coineyターミナル)を用いた決済に加え、Coineyペイジを利用したオンライン決済にも対応しています。モジュール導入により、SOY Shop上でCoineyペイジへの遷移によるクレジットカード決済が可能になります。実店舗とネットショップ両方でCoineyを利用したい場合に最適です。設定方法はモジュール設定画面に記載されています。Coineyは交通系電子マネー決済にも対応しており、導入によりSuica等の電子マネー決済を簡便に導入できます。Coineyペイジは新機能のため、現時点ではテスト環境は未対応ですが、順次対応予定です。

 

SOY Shopでクレジットマスターの対策を強化しました

/** Geminiが自動生成した概要 **/
SOY Shopがクレジットカード情報の不正取得攻撃対策を強化。クレジットカード入力画面への不自然なリダイレクトを検知した場合、該当IPアドレスからのアクセスを遮断する機能を追加。さらに、PAY.JPクレジットモジュールでは、モジュール内でカード情報送信の試行回数を記録し、一定回数を超えるとカート利用を禁止する。これらの対策により、ネットショップが不正利用の踏み台となるリスクを大幅に低減。今後もセキュリティ強化を継続していく。最新版は公式サイトからダウンロード可能。

 

SOY Inquiryで悪質なお問い合わせをブロックする機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Inquiryに、悪質な問い合わせをブロックする機能が追加されました。qq.comドメインからのスパム問い合わせが急増したため、設定画面でカンマ区切りでドメインを指定してブロックする機能を実装。メールアドレス必須設定時に限り、アドレス未入力もブロック対象となります。 この機能追加により迷惑問い合わせは解消されました。ただし、完璧な対策ではないため、将来的には画像認証の改善も検討されます。更新版パッケージはサイト(https://saitodev.co/soycms/soyinquiry)からダウンロード可能です。

 

SOY CMSで記事一覧をカレンダー形式で表示する

/** Geminiが自動生成した概要 **/
SOY CMS用の「記事カレンダー」プラグインが開発されました。ブログ記事をカレンダー形式で表示し、投稿日を視覚的に把握できます。記事タイトルだけでなく、カスタムフィールドの内容も出力可能で、サムネイルプラグインと組み合わせることで画像表示も可能です。これにより、記事一覧をカレンダー上にサムネイル付きで表示するなど、柔軟な表示を実現できます。予約サイト構築など、従来のカレンダー機能とは異なる点が特徴です。サンプルは「毅と亮子のサラメシ」サイトで確認できます。パッケージはsaitodev.co/soycms/からダウンロード可能です。

 

SOY Shopの注文検索でクーポンコードによる検索を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文検索機能が強化され、クーポンコードによる検索が可能になった。顧客管理のニーズに応え、クーポン利用状況の把握が容易になった。さらに、最近のアップデートでは備考・コメントのAND/OR検索も追加され、業務アプリ functionalities / 機能性も向上。紹介記事はないものの、レンタル屋向け顧客管理強化やパイプハウス施工管理アプリ開発と合わせて、ネットショップの枠を超えた業務アプリの可能性を示している。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能。

 

SOY Shopでキャンセルと仮登録の注文の自動削除プラグインを作成してみた

/** Geminiが自動生成した概要 **/
オープンソースのネットショップパッケージは自由度が高い反面、軌道に乗った後に予期せぬ問題に直面することがある。記事ではSOY Shopを例に、月商1000万円を超えるとキャンセルや仮登録注文データの蓄積が処理速度に影響することを指摘。標準機能ではこれらのデータは削除されず残り続けるため、パフォーマンス低下を招く。解決策として、一定期間以前の不要な注文データを自動削除するプラグインを独自開発。管理画面を開く度に自動で削除を実行することで、データ量の増加を抑え、サイトのパフォーマンス維持を図る。この事例は、オープンソース利用における自由と引き換えに、独自対応が必要な場面が存在することを示している。

 

SQLiteで集計をしてみる

/** Geminiが自動生成した概要 **/
SOY ShopのSQLiteデータベースから、姓が「齋藤」の顧客の注文回数を集計する方法を説明しています。`soyshop_order`テーブルと`soyshop_user`テーブルを`user_id`と`id`で結合し、`WHERE`句で名前を絞り込み、`GROUP BY`句でユーザーごとに集計します。注文金額の合計は`SUM(price)`、注文回数は`COUNT(o.id)`で算出できます。結果として、各「齋藤」さんの注文回数と名前が表示されます。

 

SOY Shopの管理画面で業務に関係ない項目を非表示にして業務改善を行おう

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面の入力項目を減らすことで業務改善を図る改修が行われた。顧客からの要望で、BtoCでは不要な勤務先名称等の項目を非表示にすることで、電話注文時の入力ミスを減らし、拡張した注文検索機能の活用を促進する。管理画面の入力項目を減らすことで、キーボード操作の時短、確認作業の削減、新入社員教育の効率化、マニュアル作成の手間削減といった効果も期待できる。入力項目の見直しは地味な改修ながらも、業務フローの見直しに繋がり、大きな経費削減に繋がる可能性がある。今回の改修を含むパッケージはサイトからダウンロード可能。併せて、SOY CMSとSOY Shopで有料ブログ運営の方法も紹介されている。

 

jQuery.uploadプラグインをjQuery3系でも動作するように修正してみた

/** Geminiが自動生成した概要 **/
jQuery.uploadプラグイン (v1.0.9) をjQuery 3.3.1で使用した際、「a.indexOf is not a function」エラーが発生。原因は`iframe.load()`の廃止。jQuery3以降では`.load()`メソッドがオブジェクトに対して使用できなくなっていた。解決策として、`iframe.on('load', function(){})`と書き換え、`load`イベントを`on`メソッドで登録することで動作するようになった。この修正は後にプルリクエストとして採用され、本家コードに反映済み。

 

SOY ShopのPAY.JPクレジットカード支払いモジュールでカード情報非通過化対応をしました

/** Geminiが自動生成した概要 **/
SOY ShopのPAY.JPクレジットカード支払いモジュールがカード情報非通過化に対応しました。2018年8月1日以降、加盟店はカード情報を直接扱うことが禁止され、トークン化が必須となりました。 そのため、モジュールはカード情報をPAY.JPサーバーに送信し、トークンを受け取って処理するように改修されました。既存モジュール利用者は、サイトのセキュリティ維持のため早急にバージョンアップが必要です。最新版はサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能です。詳細は「SOY CMSのバージョンアップについて」を参照ください。

 

SOY Shopの注文編集で配達時間帯の編集をセレクトボックス形式に変更しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文編集画面で、配送時間帯の入力をテキストエリアからセレクトボックスに変更しました。 従来、ヤマト運輸B2等外部システムとの連携時に、時間帯の書式誤りによる不具合が発生する可能性がありました。今回の変更で、管理画面上で正しいフォーマットを選択式で指定できるようになり、操作ミスを防止、作業効率改善を実現します。 最新版はsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY CMSで記事の見出し自動生成プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSのブログ機能拡張として、長文記事の見出し自動生成プラグインが開発されました。記事内のH1〜H3タグを解析し、階層構造を持つ目次をHTMLで生成、任意の場所に表示します。出力されるHTMLは、各見出しへのアンカーリンクを含み、見出しにも対応するID属性が付与されるため、スムーズなページ内ナビゲーションが可能です。このプラグインにより、WordPress等のブログ特化CMSに比べて弱かったSOY CMSのブログ機能が強化され、強力なEC機能との連携による販促ブログとしての活用が期待されます。開発者は、SOY CMSをブログとECを統合したプラットフォームとして捉え、今後もブログ機能の改善を進める方針です。関連情報として、SOY Shopとの連携による有料ブログ運営や、下書き自動保存機能の記事へのリンクが提供されています。

 

SOY Shopの注文詳細の支払い方法の変更をラジオボタン式に変更した

/** Geminiが自動生成した概要 **/
SOY Shopの注文詳細画面で、支払い方法の変更方式がテキストエリア入力からラジオボタン選択に変更されました。従来は支払い方法のラベル表示のみ変更可能で、注文データ上のモジュール自体は変更されませんでした。今回の変更により、ラジオボタンで選択した支払い方法のモジュール自体が変更されるようになりました。これにより、注文検索画面での絞り込み検索が正しく機能するようになります。ただし、手数料は変更時に削除されるため、手動で再設定が必要です。将来的には送料の自動計算機能も追加予定です。変更を含むパッケージはsaitodev.co/soycms/soyshop/からダウンロードできます。

 

大きなキノコを見て思い出す師の言葉

/** Geminiが自動生成した概要 **/
師から堆肥のまき方を指導された時の経験から、高C/N比資材の堆肥化における窒素分の補給の必要性について疑問を呈している。師の指示通りに間伐材チップを高く積み上げたところ、発酵促進資材無しでも大型のキノコが多数発生した。通常、キノコの成長には窒素分が必要とされるが、日向に置かれたチップの山で、窒素分補給無しにキノコが繁殖したことは、従来のおがくず堆肥製造における家畜糞などによる窒素分補給の必要性に疑問を投げかける結果となった。この経験は、エノコロの成長に関する考察と同様に、窒素供給に関する固定観念への再考を促すものとなっている。

 

SOYShopのCSVインポートエクスポートで出力時のチェックを保持するようにした

/** Geminiが自動生成した概要 **/
SOY ShopのCSVインポート/エクスポート機能において、出力項目のチェック状態を保持する機能が追加されました。カスタムフィールドやプラグイン追加でCSVの項目が増え、確認が煩雑になる問題に対し、一度チェックした項目を保存し次回反映することで操作の手間を軽減します。現在試作段階で、カスタムサーチフィールドなど一部プラグインでは未対応ですが、多くの項目チェックの手間を省くことが期待できます。パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopの注文検索でオーダーカスタムフィールド(日付)の項目を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文検索機能を拡張し、オーダーカスタムフィールド(日付型)を検索条件に追加できるプラグインを開発しました。管理画面の注文一覧にカスタムフィールドの日付検索欄が追加され、注文詳細に記録した任意の日付情報(例:返答期限)に基づいた検索が可能になります。この機能は「やまどうぐレンタル屋さん」で実装した顧客管理機能強化の一環で、管理画面のみ表示のカスタムフィールドに「○月○日までに返答」といった伝言を記録し、検索で容易に抽出するといった活用が想定されます。プラグインはsaitodev.coからダウンロード可能です。

 

SOY Shopの注文検索で支払い状況等の複数項目選択モードを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文検索機能が強化され、複数項目選択モードが追加されました。従来は注文状況や支払い状況の検索で1つの項目しか選択できませんでしたが、複数選択が可能になり、一度に複数の状況の注文を把握できるようになりました。例えば、「支払い確認済み」と「直接支払い」の注文を同時に検索できます。 以前は、それぞれの状況で個別に検索する必要がありましたが、今回のアップデートにより、複数選択モードに切り替えることで、チェックボックス形式で複数の項目を選択できるようになりました。これにより、業務効率の向上が期待されます。 対応版パッケージはサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能です。

 

SOY Shopで注文状態の項目を追加できるプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文状態に任意の項目を追加できるプラグインが開発されました。やまどうぐレンタル屋さんでのレンタル商品返却管理の課題を解決するために、注文状態と支払状況にフラグを追加する拡張ポイントが実装され、この機能を汎用化したプラグインが作成されました。プラグイン設定画面で注文状態を追加すると、注文詳細画面と注文検索画面に反映されます。これにより、返品待ちや返済済みといった独自のステータス管理が可能になり、注文検索の効率化に繋がります。生鮮食品など返品が発生するショップやレンタル商品を扱うショップで特に役立ちます。プラグインはsaitodev.coからダウンロードできます。

 

やまどうぐレンタル屋さんで顧客関連管理の機能の強化を行いました

/** Geminiが自動生成した概要 **/
登山用品レンタルの「やまどうぐレンタル屋」は、SOY Shopで運営しつつSalesforceを用いて顧客管理を行っていたが、SOY Shop内で完結させたいという要望からCRM機能強化を実施。オーダーカスタムフィールドや拡張ポイントを活用し、レンタル特有の発送・返却管理、納品書・検品書出力管理、配送状況連携、電話注文対応、実店舗受取管理などをSOY Shop内で実現。プラグインによる拡張のみでSalesforce並みの機能を実現し、本体のカスタマイズは行わずバージョンアップへの影響を排除。管理画面の表示速度最適化も実施。この機能強化は拡張ポイントを活用したプラグイン作成で再現可能。

 

SOY ShopでTrackingmore連携プラグインでwebhookに対応しました

/** Geminiが自動生成した概要 **/
SOY Shopで国際荷物追跡サービス「Trackingmore」と連携するプラグインを開発し、「webhook」機能を追加しました。webhookでは、配送業者が発送を開始するとTrackingmoreからSOY Shopに通知が届きます。これにより、リアルタイム追跡の手間を省きつつ、SOY Shopの注文状態や発送メールの自動更新が可能になります。この連携により、出荷予定日前に代行業者から発送情報を受け取れなくても、配送状況を監視し、集荷や発送が確認され次第、発送済みメールを自動送信できます。これにより、確認業務が大幅に削減されます。リアルタイム追跡も併用することで、変更情報の確度が向上します。

 

SOY ShopでTrackingmore連携を試作中

/** Geminiが自動生成した概要 **/
SOY Shopと荷物の追跡サービスTrackingmoreを連携するプラグインが作成されました。このプラグインにより、代行倉庫サービスを利用して出荷された商品の発送状況をリアルタイムで確認できるようになります。ただし、現時点では連続でAPIを叩く制限があるため、トラッキング件数の制限や実行間隔の調整が必要です。今後、Webhookを使用した配送状況確認機能が追加される予定です。この機能により、サーバのリソース占有が軽減されることが期待されています。利用に際しては、課題点に留意してください。

 

php-webdriverでセレクトボックスの値を選択する2

/** Geminiが自動生成した概要 **/
php-webdriverでセレクトボックスの値をvalue属性で選択する方法について。以前は表示名("京都府")で選択する方法を紹介したが、今回はvalue("26")で選択する方法を解説。`WebDriverBy::name()`でセレクトボックス要素を取得後、`WebDriverBy::cssSelector("option[value='26']")`で目的のoption要素を特定し、`click()`で選択する。チェーンメソッドで簡潔に記述できる。

 

SOY Shop内でパイプハウスの施工管理アプリを開発しました

/** Geminiが自動生成した概要 **/
SOY Shopの在庫管理機能と管理画面からの注文登録機能を拡張し、パイプハウスの見積書作成アプリを開発。従来のエクセル管理では、膨大な部品の仕入れ値確認に時間と手間がかかっていたが、新アプリでは商品登録時に仕入れ値を記録することで、次回以降の見積書作成時の再確認作業を大幅に削減。商品名検索によるカート追加や、検索結果にない場合の即時商品登録機能も実装。さらに、見積書の商品一覧の並び替え機能、注文内容の自動バックアップ機能も追加することで、作業効率と正確性を向上。これらの機能はパイプハウス以外にも応用可能で、既存のネットショップ運営における経費削減にも貢献する。開発したパッケージは専用サイトからダウンロード可能。

 

妻にプログラミングを教えることにした-後編

/** Geminiが自動生成した概要 **/
妻にGo言語を教えることにした。プログラミングを教えることで、教える側も理解を深め、学習効率が上がるためだ。Go言語を選んだ理由は、初心者にも扱いやすい点が多いからである。go runでLL言語のように手軽に実行でき、go buildでコンパイルもできる。システムプログラミングにも触れられるため、コンピュータの仕組み理解に役立つ。go fmtやgo importによる自動整形・補完でコードの書き方に迷うことも少ない。また、オブジェクト指向がないため学習コストが低い。冗長になりやすい、他言語学習時に混乱する可能性があるという欠点はあるものの、プログラミング入門には最適だと考える。妻の変化が楽しみだ。

 

妻にプログラミングを教えることにした-前編

/** Geminiが自動生成した概要 **/
妻にプログラミングを教えるのは、SOY Shop開発への協力を期待しているからではなく、プログラミングを通して「相手に的確に指示を伝える能力」を身につけてほしいからだ。事務職希望者が多い一方、経営者側は事務作業をコストと捉える現状がある。プログラミングは、パソコンを部下に見立て、明確な指示を出す訓練となる。これは事務作業の効率化にも繋がる。また、電話での行き違いによる業務の非効率性を指摘し、プログラミング的思考で事前に情報を整理し伝えることの重要性を説く。最終的には、どんな業種でも発生する事務作業を効率化し、円滑なコミュニケーション能力を養うことが目的である。

 

SOY Shopで返金管理プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop向け返金管理プラグインが開発されました。注文詳細画面から返金・増額の振込額や銀行口座情報を登録可能になり、管理画面の注文一覧検索で返金関連情報による絞り込み検索もできるようになりました。 プラグインはsaitodev.coからダウンロードできます。 このプラグインは、注文毎のキャンセルや変更に伴う返金・増額を記録し、処理状況を追跡する機能を提供します。注文状態に「返金処理待ち」ステータスも追加され、より詳細な注文管理が可能になります。 これは、既存の注文検索フォーム拡張ポイントと注文状態・支払状況フラグ追加拡張ポイントを利用して実現されています。

 

SOY Shopの注文詳細の編集で代金合計に含む項目を追加できるようにしました

/** Geminiが自動生成した概要 **/
SOY Shopの注文詳細編集機能に、代金合計に含めるかどうかのチェックボックスを追加しました。これにより、内税のように明細には表示するものの、合計額には含まない項目を指定できます。 ただし、注文詳細表示ではどの項目が合計額に含まれているかわかりにくいという課題があります。今後、わかりやすい表示方法の検討が進められます。

 

SOY2HTMLで繰り返し表示 - HTMLList編

/** Geminiが自動生成した概要 **/
SOY CMSのブロック内で繰り返し表示される記事に、一定の間隔で任意の文字列を表示するには、下記の手順に従います。 1. HTMLListクラスを継承したPHPクラスを作成し、populateItemメソッドで表示したい内容をHTMLタグで記述します。 2. HTMLファイルで、populateItemメソッドで作成したHTMLタグをsoy:idを使用して囲みます。 3. 表示する間隔をsoy:id="loop"に指定します。 4. 表示する文字列をsoy:id="index"に指定します。 これで、指定した間隔で任意の文字列が繰り返し表示されます。

 

SOY2HTMLでテキストフォームを設置する - HTMLInput編

/** Geminiが自動生成した概要 **/
SOY2HTMLを使用してテキストフォームを作成する方法を説明します。`HTMLInput`クラスを利用して、フォームにテキストフォームを追加できます。`addInput()`メソッドを使用して、フォーム要素のnameとvalue属性を設定します。これにより、PHPの記述混入を回避しつつ、デザインを崩さずにHTMLファイルを直接表示できます。テキストフォームの実際のコードは、`HTMLFormElement`クラスを継承した`HTMLInput`クラスで定義されています。

 

SOY Shopの各種プラグインの設定を保存する方法

/** Geminiが自動生成した概要 **/
SOY Shopのプラグイン設定を保存するには、SOYShop_DataSetsクラスのputメソッドを使用します。キーバリューストアのようにデータを保存でき、配列もシリアライズして文字列として保存できます。データの取得はgetメソッドで行い、指定したキーに対応する値を取り出します。第二引数で値がなかった場合の代替値を指定することも可能です。

 

プラグイン毎に詳細画面を持たせる拡張ポイントsoyshop.config.php

/** Geminiが自動生成した概要 **/
SOY Shopプラグインの拡張ポイントsoyshop.config.phpは、プラグイン毎に詳細設定画面を作成するための機能です。プラグインディレクトリにsoyshop.config.phpを設置し、インターフェース`SOYShopConfigPageBase`を実装することで、`http://ドメイン/CMSインストールディレクトリ/soyshop/index.php/Config/Detail?plugin=プラグインID` でアクセス可能な設定ページが生成されます。 主要なメソッドは`getConfigPage()`(設定画面のHTMLを出力)、`getConfigPageTitle()`(設定画面のタイトル)、`redirect()`(リダイレクト)です。`getConfigPage()`では、SOY2HTMLを用いてHTMLを生成するのが一般的です。PAY.JPクレジットカード支払いモジュールでは、`PayJpConfigPage`クラスとテンプレートファイルを使用して設定画面を構築しています。`redirect()`メソッドは、設定更新後などにURLパラメータを追加してリダイレクトする際に使用します。

 

サイトの表示が遅くなってきたのでSQLiteのVACUUMを試す

/** Geminiが自動生成した概要 **/
さくらインターネットの最安値VPS上でSQLite版SOY CMSを運用するブログ運営者が、サイト表示速度の低下に対処するためSQLiteのVACUUMを試した。データベースファイルが肥大化し表示が遅くなったため、サーバ移行も検討していたが、SQLiteのVACUUMコマンドで一時データの削除を試みた。実行手順を掲載し、ファイルサイズが約0.3MB減少した結果を報告。速度改善効果への期待を示し、今後はauto_vacuum機能の利用も検討しているが、データベース作成時に設定が必要なため、現状では利用できないという結論に至った。

 

プラグイン毎の詳細画面へのリンクの拡張ポイントsoyshop.info.php

/** Geminiが自動生成した概要 **/
soyshop.admin.top.php拡張ポイントは、SOY Shop管理画面の新着情報欄にカスタム項目を追加できます。`getLink()`メソッドでリンクURL、`getTitle()`でタイトル、`getContent()`で本文、`getIcon()`でアイコンURLを返却することで項目が生成されます。`getLink()`では`SOY2PageController::createLink()`を使うことで環境に依存しないURLを作成可能です。例えば、特定の注文一覧ページへのリンクを追加する場合、`getLink()`で`SOY2PageController::createLink("Order.List?search[order_status]=5")`のように指定することで、注文ステータスが「発送済み」の注文一覧ページへのリンクを生成できます。

 

管理画面の新着に項目を追加する拡張ポイントsoyshop.admin.top.php

/** Geminiが自動生成した概要 **/
SOY Shop管理画面の新着に項目を追加できる拡張ポイント「soyshop.admin.top.php」について解説。インターフェースには、表示可否を制御する`allowDisplay`、タイトルを設定する`getTitle`、コンテンツを設定する`getContent`、リンクURLを設定する`getLink`、リンクテキストを設定する`getLinkTitle`のメソッドが存在する。各メソッドの出力箇所は画像で示され、ショップ情報表示プラグインを例に挙げて説明。`getLink`でURLを指定すると、`getLinkTitle`のテキストがリンク化される。

 

SOY Shopの伝票番号プラグインで発送状況の管理を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの伝票番号プラグインがアップデート!複数個口発送の管理が大幅に向上しました。 従来は複数個口の場合でも注文詳細の状態を一括でしか変更できませんでしたが、今回のアップデートで個々の伝票番号ごとに発送状況を管理できるようになりました。 具体的には、未発送の伝票番号一覧ページで、発送済み/未発送のステータス変更が可能に。さらに、全ての伝票番号が発送済みになると、自動で注文詳細も発送済みに更新されます。 発送漏れ防止に役立つ機能満載!詳しくはサイトで。

 

管理画面の注文検索の拡張ポイントsoyshop.order.search.php

/** Geminiが自動生成した概要 **/
管理画面の注文検索フォームを拡張するsoyshop.order.search.php拡張ポイントの説明。searchItemsメソッドでフォームに検索項目を追加し、setParameterメソッドで対応するSQLサブクエリを指定する。 searchItemsはラベルとフォーム要素を配列で返し、フォームのname属性は"search[customs][モジュールID][ユニークなパラメータ]"形式。setParameterは"id IN (SELECT ...)"形式のサブクエリを返す。伝票番号記録プラグインのコードを読むと理解が深まる。

 

配送の拡張ポイントsoyshop.delivery.php

/** Geminiが自動生成した概要 **/
SOY Shopの配送拡張ポイント`soyshop.delivery.php`について解説。インターフェースは`onSelect`、`getName`、`getDescription`、`getPrice`など、支払い拡張ポイントと類似のメソッドを持つ。`onSelect`~`getPrice`はカートでの配送方法選択時の動作を定義し、`edit`と`update`はマイページの注文詳細編集で使用される。`edit`は編集フォームを出力するメソッドで、`update`はフォーム送信時の更新処理を行う。標準の配送モジュール(delivery_normal)のコードを読むことで、具体的な実装方法を理解できる。

 

支払いの拡張ポイントsoyshop.payment.php

/** Geminiが自動生成した概要 **/
SOY Shopの支払い拡張ポイント(soyshop.payment.php)は、`onSelect`、`getName`、`getDescription`、`getPrice`、`getMethod`、`hasOptionPage`、`getOptionPage`、`onPostOptionPage`などのメソッドを提供し、支払い方法のカスタマイズを可能にする。各メソッドは支払い方法名や説明、価格、追加ページの有無などを制御する。例として、クレジットカード決済では`hasOptionPage`でtrueを返し、`getOptionPage`で入力フォームを提供する。`getMethod`はカート内容に応じて支払い方法の表示を制御するが、最後のプラグインで全てのモジュールを制御する点に注意が必要。

 

SOY Shopプラグインの拡張ポイントについて

/** Geminiが自動生成した概要 **/
SOY Shopプラグインの解説として、銀行振込モジュールを例に拡張ポイントが説明されている。プラグインはfeaturesディレクトリにmodule.iniで情報を定義し、pluginsディレクトリに機能を実装する。soyshop.config.php(設定画面)、soyshop.info.php(詳細ページへのリンク追加)、soyshop.order.mail.php(メールへの文章挿入)、soyshop.payment.php(支払い機能)といった拡張ポイントがあり、これらは/soyshop/webapp/src/logic/plugin/extensions/以下にインターフェース定義がある。

 

SOY Shopの注文状態と支払状況でフラグを追加できる拡張ポイントを設けました

/** Geminiが自動生成した概要 **/
SOY Shopの注文状態・支払状況の拡張ポイントが追加されました。従来の注文状態変更項目の柔軟性不足を解消するため、プラグインで項目を追加できるようになりました。例えば、レンタル業務用の返送伝票番号記録プラグインでは、注文状態に「返却済み」フラグを追加できます。追加方法は、在庫確認中状態追加プラグイン(add_status_check_stock_in)を複製し、soyshop.order.status.php内のstatusItem()またはpaymentStatusItem()関数を編集します。配列で任意の数字とフラグ名を指定することで、注文状態と支払状況に項目を追加できます。拡張ポイントに関する詳細は別記事を参照ください。最新版はサイトからダウンロード可能です。

 

SOY Shopの伝票番号記録プラグインで複数個口対応しました

/** Geminiが自動生成した概要 **/
SOY Shopの伝票番号記録プラグインが複数個口配送に対応しました。以前作成したプラグインでは伝票番号を1つしか登録できませんでしたが、複数枚の伝票が必要なケースに対応するため、カンマ区切りで複数登録できるよう改良されました。 商品の大きさや段階的配送などで複数の伝票番号が発生する場合に便利です。現状はどの伝票番号がどの商品に対応するかの詳細管理まではできませんが、複数伝票番号の記録を実現しました。改良版プラグインはsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY Shopのクーポン自由設定プラグインでカテゴリを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのクーポン自由設定プラグインに、クーポンをカテゴリ分けする機能が追加されました。クーポンコードの接頭辞をカテゴリ毎に設定できるため、クーポン登録時に規則を覚えていなくても自動入力できます。例えば、「gaku」で始まるクーポンは値引き額、「ritu」で始まるクーポンは値引率といった設定が可能です。 新規登録時、カテゴリを選択すると接頭辞が自動挿入されます。この機能は管理画面での注文時にも有効で、接頭辞が表示されるためクーポンコードを思い出すヒントになります。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopの配送モジュールのカスタマイズ例

/** Geminiが自動生成した概要 **/
SOY Shopの拡張ポイント`soyshop.payment.php`は、支払方法のカスタマイズを可能にします。このファイルで定義されたクラスは、`getPaymentModules()`で利用可能な支払いモジュールを返し、`getMethodName()`でモジュール名を表示します。`check()`メソッドで入力値の検証、`execute()`で決済処理、`onPageCheckout()`でチェックアウトページへの表示要素を追加、`onError()`でエラー処理を行います。標準モジュールを複製し、これらのメソッドをオーバーライドすることで、独自の決済方法を実装したり、既存のモジュールの動作を変更できます。例えば、決済手数料の追加や、特定の商品での支払い方法の制限などが可能です。

 

SOY CMSの開発秘話前編

/** Geminiが自動生成した概要 **/
SOY CMSは、WordPressとは異なり、Webデザイナーの負担軽減を主眼に開発されたCMSです。京都大学発のベンチャー企業で誕生したSOY CMSは、度重なる仕様変更に悩まされるWebアプリケーション開発の経験から、デザイナーとプログラマの作業を完全に分離する仕組みを考案しました。HTMLコメントや属性値を利用してプログラムを埋め込むことで、デザイナーはプログラマに相談することなくデザイン変更が可能になり、プログラマもデザイナーに影響を与えることなくプログラム修正を行えます。この仕組みを支えるのがSOY2フレームワークであり、SOY CMSはこのフレームワークを搭載したCMSとして誕生しました。サイト構築後のSEO対策やネットショップ運営において、デザイン変更の容易さは大きなメリットとなります。

 

SOY Shopでマイページ用お問い合わせフォーム設置プラグインを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページに、お問い合わせフォームを設置できるプラグインが追加されました。注文後の電話対応を減らすため、ユーザーはマイページから簡単に問い合わせできるようになります。ログイン済みのユーザーは問い合わせ内容のみ入力すればよく、手続きを簡略化することで連絡のハードルを下げ、電話での問い合わせ頻度減少を目指します。プラグインをインストールするだけでマイページにお問い合わせページが追加されます。最新版はsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY Shopの注文一覧ページの検索フォームでプラグインから項目を追加できるようにしました

/** Geminiが自動生成した概要 **/
SOY Shopの注文一覧ページの検索フォームにプラグインから項目を追加できる拡張ポイントが実装されました。標準機能の納品書出力プラグインでは、出力時に最終出力日時を記録し、検索フォームで「最終出力日」または「納品書の未出力」を条件に注文検索が可能になりました。この拡張は業務アプリ向けの機能強化として実装され、在庫管理業務の効率化に貢献します。 開発者向けには、`soyshop.order.search.php` という拡張ポイントが用意され、独自の検索項目を追加できます。詳しくは`/article/管理画面の注文検索の拡張ポイントsoyshop.order.search.php`を参照ください。パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopの商品レビュープラグインで5つ星形式の評価用cms:idタグを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品レビュープラグインがアップデートされ、従来のセレクトボックス形式に加え、5つ星形式の評価が追加されました。 Amazonなど多くのECサイトで採用されている5つ星形式に対応することで、視覚的に分かりやすい評価が可能になります。このアップデートにより、商品詳細ページにおける顧客レビューの投稿がより便利になります。アップデート版のパッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopの管理画面からの注文時に商品の内訳の変更を自動でバックアップを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面からの注文機能に、見積もり作成業務向けに自動バックアップ機能が追加されました。見積もり作成は商品数が多く、登録に時間がかかるため、作業中にセッションが切れてしまう可能性があります。この機能は、商品の内訳に変更がある度に自動でバックアップを作成し、セッション切れ後にバックアップから復元できるようにすることで、作業中断によるデータ損失を防ぎます。バックアップデータはJSON形式で保存されます。この機能追加を含むパッケージはsaitodev.coからダウンロード可能です。

 

SOY Shopのマイページで注文編集プラグインで商品の個数の変更を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページ注文編集プラグインに、商品個数変更機能が追加されました。以前の商品の削除機能に続き、今回のアップデートでは、注文詳細画面で商品ごとに数量変更が可能になりました。変更に合わせて合計金額も再計算されます。これらの機能はまだ開発段階のため、今後のアップデートで更なる改善が期待されます。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopのマイページで注文編集プラグインでお届け先住所等の編集を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページ注文編集プラグインに、お届け先と請求先住所の編集機能が追加されました。有効化すると、注文詳細画面に編集ボタンが表示され、住所変更が可能になります。ただし、請求先住所を変更してもマイページの会員登録情報は更新されません。この機能追加により、ユーザーは注文後もお届け先や請求先の住所を柔軟に変更できるようになります。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。開発段階のため、今後もブログで更新情報を確認しながら利用ください。

 

SOY Shopの注文詳細の内訳で商品の並び替えの変更を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文詳細に、商品表示順の変更機能が追加されました。従来の納品書出力では、注文商品の表示順が固定でしたが、今回のアップデートで管理画面からドラッグ&ドロップで自由に並び替えが可能になりました。 これは、一度に数十種類の商品を注文するユーザーからの、ピッキングや梱包作業効率化の要望に応えたものです。新しい並び順は納品書にも反映されるため、検品や梱包ミス軽減に繋がります。この機能は、開発中の在庫管理と見積書作成機能にも応用され、業務効率化に貢献します。アップデートパッケージはsaitodev.coからダウンロード可能です。

 

SOY Shopのマイページで注文編集プラグインで商品の削除を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページで注文詳細を変更できるプラグインに、商品の削除機能が追加されました。以前は注文内容の変更のみ可能でしたが、今回のアップデートで不要な商品を削除できるようになりました。注文個数の変更機能は今後の実装予定です。プラグインは開発中で、今後も機能が追加される予定です。ダウンロードはsaitodev.co/soycms/soyshop/ から可能です。

 

SOY Shopのマイページで注文詳細の変更機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページで注文編集プラグインに商品の削除機能が追加されました。以前は商品追加のみでしたが、今回のアップデートで注文詳細編集画面から商品の削除が可能になりました。削除したい商品を選択し、削除ボタンを押すことで注文から商品を除外できます。変更内容を保存すると、お客様とショップ管理者に変更通知メールが送信され、管理画面の新着にも反映されます。これにより、顧客はコールセンターに連絡することなく、マイページ上で注文内容の変更をより柔軟に行えるようになりました。ただし、商品削除に伴う金額変更など、クレジット決済への対応は今後の開発課題となっています。完全な注文編集機能の実現に向けて開発は継続中です。

 

Google Apps ScriptでJPEGの画像からOCRで画像内の文字列を取得してみた

/** Geminiが自動生成した概要 **/
Google Apps ScriptでJPEG画像からOCRで文字列を取得する方法を検証。GoogleドキュメントでのOCRをGASで自動化する方法を紹介している。 Drive APIを有効化し、画像URLを指定して`Drive.Files.insert`メソッドでGoogleドライブに挿入、`ocr:true`オプションでOCRを実行。 生成されたGoogleドキュメントには画像とOCR結果のテキストが含まれる。日付や画像中の文字認識は難しいが、本文は高精度で取得できた。以前試したGoogleドキュメント直接OCRより精度は高い。

 

SOY Shopの管理画面の注文一覧ページで表示速度周りを改修しています

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面、特に注文一覧ページの表示速度改善に取り組んでいます。月商数千万円規模のショップで顕著になる速度低下の原因となっていた、顧客名表示等の処理をDAO経由からSQL直書きに変更。顧客情報全体を取得する代わりに必要な名前だけをデータベースから取得することで、処理を効率化しました。他にも例外処理の見直しやテストコードによるエラー修正を行い、体感できる速度改善を実現。今後も処理速度の改善を継続し、最新版はサイトからダウンロード可能です。

 

SOY Shopの管理画面からの注文の商品登録の操作の見直しで登録作業の削減

/** Geminiが自動生成した概要 **/
SOY Shop管理画面の注文商品登録操作を改善し、登録作業削減を実現。従来、商品検索でヒットしない場合のみ商品登録が可能だったが、部品名と規格で登録する際、規格違いの登録で画面遷移が必要となる問題が発生。そこで、検索結果に関わらず常に商品登録フォームを表示するように変更。例えば「ネジ」で検索すると全規格がヒットするが、新規格登録には別ページ遷移が必要だった。今回の改善で、検索後も商品登録フォームが常時表示されるため、規格違いの部品登録もその場でスムーズに行えるように。増加する部品規格への対応を効率化し、登録作業の手間を軽減。

 

SOY Shopで再注文プラグインを作成してみた

/** Geminiが自動生成した概要 **/
SOY Shop用の再注文プラグインが開発されました。 以前作成された注文複製プラグインとは異なり、今回のプラグインは顧客情報を変更した再注文を可能にします。注文詳細画面に「注文の再登録」ボタンが追加され、クリックすると管理画面の注文登録画面に遷移します。以前の注文の商品情報が自動入力されるため、顧客と支払い方法を選択するだけで再注文が完了します。この機能は、商品点数の多い注文や、施工計算の見積書作成などで特に効果を発揮します。プラグインはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

最近、WordPress疲れの方からのお問い合わせが増えました

/** Geminiが自動生成した概要 **/
WordPress疲れのユーザーからSOY CMSへの問い合わせが増加し、情報不足を訴える声が寄せられている。彼らは情報が少ないことを理由に公式マニュアルの拡充や書籍化を求めるが、開発元はこれに対応する意思はない。開発元はSOY Shopの業務効率化に注力しており、WordPressからの乗り換えユーザー獲得を目指していない。情報が少ない現状はチャンスであり、ユーザー自身が情報発信すればコアユーザーとしての地位を確立し、書籍化も可能だと考えている。開発元の動機は優れた販売方法を学ぶことであり、「まとめれば売れる」という意見より、「勝機を見出し、まとめて売ったら売れた」という報告を期待している。よって、情報不足に関する問い合わせへの対応強化は行わない。

 

SOY Shopで利益上乗せ型の施工計算に合算に含めない項目設定を追加してみた

/** Geminiが自動生成した概要 **/
SOY Shopの施工費計算モジュールに、利益を乗せた金額から作業コストを計算しやすくする機能追加が行われた。 従来、部品ごとに利益を上乗せする計算方法では、全体の利益額が分かりにくかった。そこで、合算に含める/含めない項目を設定できるようになり、詳細画面で合計金額とは別に、含めない金額(主に作業コスト分)を表示できるようになった。これにより、合算から非包含金額を引くことで、実際の利益を容易に把握できる。この改良版モジュールはsaitodev.coからダウンロード可能。

 

SOY Shopで各種部品の仕入れ値に利益上乗せ型の施工費計算に対応してみた

/** Geminiが自動生成した概要 **/
SOY Shopの拡張機能で、部品毎の利益上乗せ方式の施工費計算に対応しました。商品登録時に仕入れ値(定価)と利益込み価格(通常価格)を登録し、注文時に各商品の差額を合計して利益を算出します。通常の施工費固定方式も併用可能です。商品毎の仕入れ値変更があっても過去の注文への影響を防ぐため、注文時の定価を記録し、過去の注文の利益計算には記録された定価を使用します。この機能を含むパッケージはsaitodev.coからダウンロードできます。

 

Ubuntuでsendmailをインストールする

/** Geminiが自動生成した概要 **/
UbuntuサーバーにSendmailをインストールする際、SSL設定で処理が停止する問題が発生。解決策として、手動でSSL証明書関連ファイルを作成し、所有権とパーミッションを設定後、`dpkg --configure -a`コマンドでインストールを完了させた。その後、SOY CMS/Shopのテスト送信機能を用いて、Sendmail経由のメール送受信が正常に行えることを確認した。最後に、停止中のジョブをkillするかサーバー再起動の必要性について言及している。

 

SOY Shopで注文時の合計金額を固定し、経費や粗利を確認できる機能を追加してみた

/** Geminiが自動生成した概要 **/
SOY Shopを在庫管理業務アプリ化するため、注文合計金額を固定し経費と粗利を確認できるプラグインを開発。施工費20万円の案件で、部品代金合計に加え、人件費などの経費を入力し、粗利を自動計算。合計金額は施工費で固定されるため、利益管理が容易に。注文複製プラグインと組み合わせることで、案件ごとの部品在庫管理が可能になり、見積書・納品書出力機能と連携すれば業務効率化に貢献。この機能は物販サイトには直接関係ないものの、SOY Shopの基本機能を拡張しており、間接的に物販サイト運営にもプラスの効果をもたらす。

 

SOY Shopで注文複製プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopで在庫管理業務アプリ用の注文複製プラグインを作成しました。組み立てに必要な材料(部品)の管理において、以前作成した注文(部品の使用量)を複製できる機能を追加。注文詳細画面の拡張機能ボタンに「注文の複製」ボタンを設置し、複製機能を実現。一度の注文で多くの材料を登録する場合に便利。この機能はプラグインなので、不要な場合はボタンを非表示にして誤操作を防止できます。今回の更新を含むパッケージはsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY Shopで在庫管理の業務アプリに向けての機能追加

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面でプラグインが独自のページを持てるようになりました。従来、プラグインの設定画面はSOY Shop管理画面の特定のページ内に表示されていましたが、今回のアップデートにより、プラグインごとに独立したページを作成できるようになりました。これにより、プラグインの設定項目が増えても管理画面が煩雑にならず、プラグイン開発者も自由にページ構成を設計できます。新しいページはメニューに追加され、アクセスしやすくなりました。この機能はSOY Shop2.1.1以降で利用可能です。今後、プラグイン開発者はこの機能を活用して、より使いやすい管理画面を提供することが期待されます。

 

SOY CMSとSOY ShopでPHP7.2系に対応してみました

/** Geminiが自動生成した概要 **/
PHP7.2のリリースに伴い、SOY CMS/Shopがcreate_functionとget_class関数の仕様変更によりエラー停止する問題が発生した。これを解消するため、create_functionを無名関数に置き換え、get_classの引数にnullが入らないようチェック処理を追加した。これらの変更はPHP5.3以降で動作するため、現行の推奨バージョン全てに対応。PHP7.2対応版はサイトからダウンロード可能。SOY Inquiry、SOY Mailも同様の修正を実施。また、ファイルマネージャのelFinderもcreate_function関連の修正のためバージョンアップされた。 完全な動作確認はまだだが、エラー発生時は問い合わせフォームから連絡してほしい。

 

SOY Shopで全ての子商品の在庫数を確認する

/** Geminiが自動生成した概要 **/
SOY Shopで商品規格プラグインを利用している場合、全子商品の在庫数を簡単に確認する方法として、在庫管理プラグイン(または在庫数一括設定プラグイン)の活用が推奨されています。商品規格プラグインは子商品を利用するため、CSVエクスポートでの確認が煩雑になるためです。在庫管理プラグインでは、検索条件を指定して商品一覧を表示、在庫数の一括変更が可能ですが、今回、親商品を非表示にする機能が追加されました。具体的には、「表示件数:100件」、「公開状態:公開のみ」、「子商品の表示:通常商品以外」を設定することで、各規格ごとの子商品の在庫数のみが表示されるようになります。アップデート版はサイト(/soycms/soyshop/)からダウンロード可能です。

 

SOY CMS3.0.1とSOY Shop1.18.1の差分をマージしました

/** Geminiが自動生成した概要 **/
開発元退職後もSOY CMS開発を続ける理由は、情熱、責任感、コミュニティへの貢献にあります。SOY CMSのシンプルさと柔軟性は魅力であり、ユーザーにとって使いやすいCMSであり続けることを目指しています。退職によって開発が停滞する不安を解消し、継続的な改善とサポートを提供することで、ユーザーの信頼に応えたいと考えています。また、オープンソースの精神に基づき、コミュニティと協力しながらSOY CMSを発展させ、貢献していくことが重要です。個人的な思い入れだけでなく、ユーザーとコミュニティのための開発を続けることが、私のモチベーションとなっています。

 

SOY Shopで会員検索サイトを構築しました

/** Geminiが自動生成した概要 **/
SOY Shopの顧客管理機能を活用し、新潟県司法書士会の会員検索サイトを構築。標準機能とプラグイン(ユーザーカスタムサーチフィールド、顧客グループ、顧客住所GoogleMaps連携、ストレージ)を組み合わせ、簡裁代理権などのカスタム項目や事務所情報、地図連携を実現。管理画面は不要な注文・商品関連機能を非表示化し、会員管理に最適化。カート・マイページ機能も無効化。都道府県の標準設定を新潟県に設定するなど、ユーザビリティも向上。構築手順を紹介しつつ、検索結果・詳細ページ作成については問い合わせを促している。

 

SOY Shopの代引き支払いモジュールで地域ごとの手数料設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの代引き支払いモジュールがアップデートされ、地域ごとの代引き手数料設定が可能になりました。従来の一律手数料に加え、地域別に異なる手数料を設定できるテーブルが追加されました。 これにより、地域ごとの手数料差異に対応できるようになります。アップデート版パッケージはsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY Shopの最近更新した商品表示プラグインで表示件数の設定を設けました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面の新着ページに表示される「最近更新した商品」の表示件数を変更できるプラグインが開発されました。従来は5件固定でしたが、プラグインの設定画面で自由に件数を設定可能になりました。また、更新履歴のない商品は表示されないよう改善されました。このプラグインは、新着ページのコンテンツをプラグイン化することで実現しており、表示内容のカスタマイズを容易にしています。ダウンロードはsaitodev.co/soycms/soyshop/ から可能です。

 

SOY ShopのPAY.JP定期課金モジュールで管理画面でプランの変更を追加しました

/** Geminiが自動生成した概要 **/
SOY ShopのPAY.JP定期課金モジュールがアップデートされ、管理画面から顧客の定期課金プラン変更が可能になりました。顧客詳細画面でプラン変更やキャンセル操作が行えます。プランは商品情報としてSOY Shop内で作成・管理します。ただし、商品情報の編集回数が多い場合、プラン一覧取得に不具合が生じる可能性があります。 このモジュールを活用することで、SOY CMSと連携した会員制有料ブログや、SOY Mailと連携した有料メルマガの運営が容易になります。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY ShopでPAY.JP定期課金モジュールを作成しました

/** Geminiが自動生成した概要 **/
SOY ShopでPAY.JP定期課金に対応した決済モジュールが作成されました。クレジットカード決済モジュールと同様の設定方法で、有料ブログやメルマガ運営が可能になります。設定方法は既存のPAY.JPクレジットカード決済モジュールと同様で、SOY CMSのブログ、SOY Shopの顧客名簿、SOY Mailとの連携によって実現します。ダウンロードはsaitodev.coから可能です。ただし、本番環境での運用実績はまだないため、使用前に問い合わせフォームへの連絡が推奨されています。管理画面からプラン変更も可能になりました。

 

SOY Shopでダウンロード販売商品グループを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのダウンロード販売機能が拡張され、子商品を持つグループ化が可能になった。これにより、例えば10巻の電子書籍を1商品として管理し、各巻を子商品として登録できる。商品規格プラグインと連携すれば、購入画面で巻数をセレクトボックスから選択できるようになる。このアップデートは、PAY.JPクレジットカード支払いモジュールとの併用で、ダウンロード販売サイトの開設をより手軽にし、ノウハウ販売などのビジネス展開を容易にする。

 

SOY ShopでFacebookログインプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用Facebookログインプラグインが開発されました。管理画面で設定後、マイページログイン画面にFacebookログインボタンが表示されます。クリックするとFacebookログイン画面が開き、ログイン後にSOY Shopで新規会員登録とログインが行われます。既に登録済みの場合はログインのみ。シンプルな機能ですが、拡張性も考慮されています。プラグインはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY ShopでGoogle Sign-In for Websitesプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用Googleサインインプラグインが開発されました。このプラグインをインストール・設定すると、マイページログイン画面にGoogleログインボタンが表示され、クリックでGoogleアカウントでのログイン・新規登録が可能になります。既存ユーザーはログイン、新規ユーザーは登録後ログインとなります。シンプルな機能ですが、今後の拡張が予定されています。ダウンロードはsaitodev.co/soycms/soyshop/ から可能です。

 

SOY ShopでLINE Loginプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用LINEログインプラグインが開発されました。このプラグインをインストール・設定すると、マイページログイン画面にLINEログインボタンが表示されます。ボタンクリックでLINEログイン画面に遷移し、ログインするとSOY Shopサイトにリダイレクトされ、新規会員登録とログインが自動で行われます。既にLINE連携済みの会員はログインのみ行われます。現在は基本的なログイン機能のみですが、今後の拡張が予定されています。プラグインはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY ShopでPAY.JPクレジットカード支払いモジュールを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のPAY.JPクレジットカード支払いモジュールが開発され、無料で簡単にクレジットカード決済を導入できるようになった。PAY.JPは初期費用・月額固定費不要のプランもあり、導入障壁が低い。モジュールの利用には、PAY.JPでアカウント作成後、APIキーを取得し、SOY Shop管理画面のモジュール設定に入力する。設定完了後、購入画面でクレジットカード支払いが選択可能になる。カード情報非通過にも対応済み。詳細はサイト(saitodev.co/soycms/soyshop/)で確認できる。定期課金モジュールも提供されている。

 

SOY Shopの管理画面の顧客検索でユーザーカスタムサーチフィールドの項目を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面の顧客検索に、ユーザーカスタムサーチフィールドが追加されました。管理画面でフィールドを追加すると、検索フォームが生成され、顧客情報の絞り込みが可能になります。CRMと連携せずとも、ある程度の顧客管理が可能になります。試作版のため対応漏れがあり、使用したいフィールドの種類が動作しない場合は問い合わせフォームから連絡できます。パッケージはサイトからダウンロード可能です。

 

SOY Shopで勤務先関連の項目の非表示設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの顧客グループプラグインで、顧客登録画面の勤務先項目の表示・非表示設定が追加されました。顧客グループで勤務先を管理する場合、標準の勤務先項目は二重登録の原因となるため、非表示設定が有用です。BtoCの物販サイト等でも勤務先情報が不要な場合に活用できます。非表示設定は管理画面の基本設定で行います。この更新により、顧客情報の入力操作が簡素化され、クライアントへの納品時にも混乱が避けられます。アップデート版はsaitodev.coからダウンロード可能です。

 

SOY Shopで都道府県の標準値設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopが、特定都道府県のみで商売を行うネットショップ向けに、住所登録画面の初期設定で県を選択できる機能を追加しました。 管理画面の基本設定で都道府県を指定すると、顧客が個人情報を入力する際、住所欄の県が予め選択された状態で表示されます。 これにより、地域限定のショップ運営がよりスムーズになります。 最新版のパッケージはsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY Shopの顧客詳細と顧客グループでGoogle Mapsとの連携を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの顧客管理機能が強化され、顧客詳細編集画面と顧客グループプラグインにGoogle Maps連携が追加されました。顧客詳細では住所入力フォーム下に地図が表示され、顧客グループプラグインでは地図付き住所フィールドが追加されました。管理画面でしか使用しない顧客情報に緯度経度情報を持たせた理由は後日公開予定です。アップデート版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

土壌分析アプリSoil3 on SOY Shop

/** Geminiが自動生成した概要 **/
長野県栄村小滝集落は、標高が高く冬季の積雪が多い地域。良質な米作りには土壌の理解が不可欠で、土壌図インベントリーとシームレス地質図を活用。インベントリーからは「黒ボク土」と判明し、保水性が高い反面、養分保持力が低い特性が明らかに。地質図からは、付近に蛇紋岩が多く分布し、土壌が弱アルカリ性であると推測。これらの情報から、小滝集落の土壌は水はけがよく、ミネラル豊富な一方、窒素が流亡しやすい特徴を持つと結論づけ、適切な施肥設計の必要性を示唆した。実際、小滝集落の土壌はpH7.0~7.2を示し、分析結果と合致した。この事例は、公開データを用いた土壌分析の有効性を示している。

 

SOY Shopで顧客グループプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用の顧客グループ分けプラグインを開発しました。顧客ごとにグループを設定し、グループ別に顧客一覧表示が可能になります。顧客管理画面にはカスタムサーチフィールドも追加し、高度な検索機能を提供します。開発の背景には、顧客管理の効率化と多様な検索ニーズへの対応があります。このプラグインを含むパッケージはsaitodev.coからダウンロード可能です。カスタムサーチフィールドの構築に関する詳細は、サイト内の関連記事を参照ください。 カタログサイト構築にも活用できる機能です。

 

Node.jsとSocket.IOでリアルタイムのチャットアプリを作ってみる

/** Geminiが自動生成した概要 **/
Node.jsとSocket.IOを用いたチャットアプリ構築後、Let's Encryptで常時SSL化する方法を解説。自己署名証明書ではブラウザ警告が出るため、無料のLet's Encryptを利用。Certbotによる証明書取得手順、Nginxの設定変更(SSL設定追加、httpトラフィックのhttpsリダイレクト)を説明。 Socket.IOのサーバー側コード修正では、httpsオプションを追加し、取得した証明書と秘密鍵を指定。これにより、チャットアプリがセキュアなhttps接続で利用可能になる。

 

SOY CMS3.0.0とSOY Shop1.18.0の差分をマージしました

/** Geminiが自動生成した概要 **/
開発元退職後もSOY CMS開発を続ける筆者は、情熱と責任感から無償で活動を継続している。退職理由は、開発方針の違いや待遇への不満ではなく、新機能開発への強い思いとユーザーコミュニティへの貢献意欲によるもの。オープンソース化という選択もあったが、品質維持と開発継続性を重視し、現状維持を選択。個人開発の負担は大きいが、ユーザーからの感謝や機能改善要望がモチベーションとなり、SOY CMSの発展に尽力している。

 

SOY Shopの標準配送モジュールでカレンダー形式でお届け日指定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの標準配送モジュールがアップデートされ、お届け日指定をカレンダー形式で入力できるようになりました。従来のセレクトボックス形式に加え、カレンダー形式を選択可能になり、日付の選択範囲も設定できます。 これは試作段階で、カートでのjQueryライブラリの読み込み状況に関わらず動作するよう改良中です。需要があれば、未対応箇所の開発も進められます。最新版はsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY CMSとSOY Shopで置換文字列生成プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS/Shop用の置換文字列生成プラグインが開発されました。これにより、ユーザーはCMSとShopの両方で任意の置換文字列を生成できます。プラグインは、サイト運営者が動的なコンテンツを生成したり、パーソナライズされたメッセージを表示したりするのに役立ちます。画像は、CMSとShopでのプラグインの設定画面を示しています。最新のパッケージはsaitodev.coからダウンロードできます。

 

SOY ShopでSOY CMS連携プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSとSOY Shopの連携強化を図るプラグインが開発されました。従来、SOY CMSのブログパーツは標準ページでは利用できませんでしたが、最近のアップデートで可能になりました。今回さらに、SOY Shop側でSOY CMSの`cms:module`を利用できるプラグインが追加され、相互運用性が向上しました。これにより、ショップページでブログパーツや自作モジュールを容易に表示できるようになります。 この機能を利用するには、SOY CMSとSOY Shop両方のバージョンアップが必要です。 有料ブログ、販促ブログ付きネットショップ、カタログサイト構築など、多様な連携事例も紹介されています。

 

SOY Shopでカテゴリ用のカスタムサーチフィールドを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムサーチフィールドプラグインが強化され、カテゴリの詳細検索が可能になった。従来のカテゴリ検索は親子関係に限定されていたが、今回のアップデートにより、複数のカテゴリに紐づく商品をカスタム条件で絞り込めるようになった。プラグイン設定画面でカテゴリ用のサーチフィールドを追加すると、公開側のカテゴリ詳細ページに検索フォームが表示される。これにより、親子関係を超えたカテゴリの関連付けが可能になり、より高度な商品検索を実現できる。強化版プラグインはsaitodev.coからダウンロード可能。

 

SOY Shop1.17.4分の差分をマージしました

/** Geminiが自動生成した概要 **/
筆者はSOY CMS開発元退職後も開発を継続している。理由は、クライアントへの責任感とOSSへの貢献意識、そしてSOY CMSへの愛着から。退職のきっかけは開発方針の相違で、顧客ニーズを軽視した新機能開発や、保守運用より新規顧客獲得を優先する姿勢に疑問を抱いた。現在はフリーランスとして、顧客の要望に応える開発や、バグ修正、PHPのバージョンアップ対応などを行い、SOY CMSの進化に貢献。退職という選択は容易ではなかったが、顧客とSOY CMSの未来を守るという信念に基づいた行動である。

 

SOY Shopのサイトマッププラグインで多言語化対応しました

/** Geminiが自動生成した概要 **/
SOY Shopのサイトマッププラグインがアップデートされ、多言語サイトに対応しました。日本語ページと対応する他言語ページを自動で紐付ける機能が追加され、手動でURLを登録する際にも、各URLに他言語ページのURLを指定できるようになりました。カスタムサーチフィールドの商品一覧ページも多言語化に対応。これらの機能は最新のプラグインパッケージに含まれており、saitodev.coからダウンロード可能です。カスタムサーチフィールドを活用した高度な検索フォーム設定や複数カテゴリ設定、カタログサイト構築については、関連記事を参照ください。

 

SOY Shopの商品ごと送料設定モジュールで標準設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品ごと送料設定モジュールに、標準送料設定機能が追加されました。以前作成したモジュールでは、商品ごとに送料を設定しない場合、送料が0円になる問題がありました。今回のアップデートで、管理画面に標準送料設定項目が追加され、商品ごとの設定がない場合はこの標準設定が適用されるようになりました。これにより、商品追加時の手間が軽減され、送料設定漏れによる0円表示も防げます。アップデート版はサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能です。

 

SOY Shopで通常価格とセール価格が異なる時のみセール価格を表示したい

/** Geminiが自動生成した概要 **/
SOY Shopで、セール価格が通常価格と同じ場合にセール価格を非表示にする方法を紹介しています。通常価格とセール価格が異なる場合のみセール価格を表示する`cms:id="is_normal_price_diff_from_sale_price"`タグを用意することで、価格表示をスッキリさせることができます。このタグでセール価格表示部分を囲むだけで、通常価格と同じ場合はセール価格は表示されず、異なる場合のみセール価格と通常価格の両方が表示されます。消費税別表示モジュールとの併用も可能です。対応パッケージはsaitodev.coからダウンロードできます。

 

SOY ShopのサイトマッププラグインでURLの手動登録を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのサイトマッププラグインに、任意のURLを手動登録する機能が追加されました。カスタムサーチフィールドによる商品一覧ページなど、自動生成されないページをサイトマップに含めることが可能になります。管理画面でURLと最終更新日時を登録すると、サイトマップの末尾に追加出力されます。この機能はカスタムサーチフィールド以外にも、SOY CMSやHTMLファイルで作成されたページにも活用できます。更新版パッケージはサイトからダウンロード可能です。カスタムサーチフィールドは、高度な検索フォームや複数カテゴリのような設定を可能にし、カタログサイト構築にも役立ちます。

 

SOY Shopのサイトマッププラグインでカスタムサーチフィールドのページを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのサイトマッププラグインがアップデートされ、カスタムサーチフィールドで生成された商品一覧ページのURLをサイトマップに追加できるようになりました。 対応フィールドは現在チェックボックスとセレクトボックスのみ。カスタムサーチフィールドの管理画面で「サイトマップに追加する」を選択することで、商品一覧ページがサイトマップに登録されます。多言語化プラグインとの併用は現状未対応。更新版パッケージはsaitodev.coからダウンロード可能です。この機能により、複数カテゴリのような設定や高度な検索フォームで絞り込まれた商品一覧ページへのアクセスが容易になり、SEO効果も期待できます。

 

SOY ShopのCSVインポートエクスポートで0からはじまる数字を扱いたい

/** Geminiが自動生成した概要 **/
SOY ShopのCSVインポート・エクスポートで0から始まる数字を扱うには、冒頭の0が削除されるのを防ぐ必要があります。LibreOfficeでCSVを編集する際、セル書式設定から「先頭のゼロの値」に桁数を指定することで、0を保持できます。例えば、5桁の数字の場合は「5」を設定します。これにより、SOY Shopへのインポート時に0が削除されずに追加されます。

 

カスタムサーチフィールドの並び替えを検索結果ページでも利用できるように改修した

/** Geminiが自動生成した概要 **/
カスタムサーチフィールド機能を拡張し、検索結果ページでも並び替えが可能になりました。これにより、ユーザーはカスタムフィールドの値に基づいて検索結果をソートできるようになります。 この機能は、カスタムサーチフィールドで追加する項目でソート検索を追加し、検索結果ページに並び替えボタンを設置できるようになります。 この機能の追加により、ユーザーは検索結果をさらに柔軟に絞り込むことができ、必要な情報をより容易に見つけることができます。

 

カスタムサーチフィールドでラジオボタン等の検索項目の多言語化対応を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムサーチフィールドに、ラジオボタンなどの検索項目の多言語対応が追加されました。管理画面で各言語ごとに項目を設定することで、公開側では検索フォームの項目が自動的に多言語化され、検索も多言語の値に対応します。これにより、多言語サイトにおける高度な検索フォームの設置が容易になります。

 

SOY Shop商品紹介プラグインでカスタムサーチフィールドの値を出力可にしました

/** Geminiが自動生成した概要 **/
SOY CMSのブログ記事にSOY Shopの商品情報を表示する「SOY Shop商品紹介プラグイン」が、カスタムサーチフィールドの値を出力可能になりました。商品紹介プラグインは、ブログ記事に商品コードを紐づけることで、記事詳細画面に商品情報を表示する機能です。カスタムサーチフィールドは、商品名以外のスペック等で商品検索を可能にするSOY Shopのプラグインです。今回のアップデートにより、商品紹介プラグイン内でカスタムサーチフィールドの値(csf:id)が利用可能になります。最新パッケージはsaitodev.co/soycms/からダウンロードできます。

 

SOY CMSのバージョンアップについて

/** Geminiが自動生成した概要 **/
SOY CMSを古いバージョンから最新版にバージョンアップするには、0.1ずつ段階的にバージョンアップし、公式サイトのバッチファイルを適用します。1.5系以降は一気にバージョンアップできますが、初期管理者でログインしてキャッシュをクリアしてください。1.11系以降のSOY Shopは自動バージョンアップに対応しています。

 

お花の通販 Beans様サイトの常時SSL化対応を行いました

/** Geminiが自動生成した概要 **/
SOY CMSの常時SSL化対応では、主に.htaccessとデータベース、テーマファイルの修正が必要です。.htaccessでは、HTTPアクセスをHTTPSへリダイレクトするよう設定を追加します。データベースでは、サイトURLやブログURLなど、URLがハードコードされている箇所をHTTPSに変更します。テーマファイルでは、画像やCSS、JavaScriptなどのパスが相対パスになっている場合、URLの先頭に「.」が付いていると正しく表示されないため、絶対パスに書き換えるか「.」を削除する必要があります。 また、記事本文中のURLも修正が必要な場合があります。 これらの修正により、サイト全体をHTTPSでアクセス可能にし、セキュリティを向上させます。 加えて、Google検索のランキング向上にも繋がります。

 

レクサーニタイヤ様サイトの常時SSL化対応を行いました

/** Geminiが自動生成した概要 **/
SOY CMSの常時SSL化対応では、主に.htaccessの設定変更、サイト内リンクの修正、外部サービス連携の見直しが必要となります。 .htaccessでは、HTTPアクセスをHTTPSへリダイレクトするよう設定を追加します。サイト内リンクは、相対パスを絶対パスへ変更するか、プロトコル相対パスを利用することで、混在コンテンツの発生を防ぎます。 外部サービス連携では、APIのURLや埋め込みコードのプロトコルをHTTPSに変更する必要があります。 また、画像やJavaScriptなどの静的コンテンツもHTTPSで配信されるよう確認が必要です。 その他、管理画面の設定変更やプラグインの対応状況確認、検索エンジンのインデックス登録更新なども行うことで、安全なサイト運営を実現できます。

 

Tisza Cipo様サイトの常時SSL化対応を行いました

/** Geminiが自動生成した概要 **/
SOY CMSの常時SSL化対応では、主に.htaccessでのリダイレクト設定、管理画面やメールテンプレート内のURLの修正、サイトマップの再生成、そして画像やCSS、JavaScriptファイルのURLの絶対パス化またはhttps化が必要となります。 .htaccessの設定ミスはサイト全体に影響するため慎重な確認が必須です。 また、記事本文やカスタムフィールド内のURLも手動で修正が必要な場合があります。 画像URLの修正漏れは、混在コンテンツとなり警告表示の原因となるため、サイト全体をくまなくチェックすることが重要です。 さらに、外部サービスを利用している場合は、APIのURLなどもSSL化に対応しているか確認が必要です。 これらの作業を確実に行うことで、安全なウェブサイトの運営が可能になります。

 

SOY Shopの商品情報の出力時にカテゴリのリンクを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品情報出力にカテゴリリンクを追加しました。商品一覧と商品詳細ブロック内でカテゴリへのリンクを出力するタグが利用可能になります。商品グループの場合は、親商品名、詳細ページリンク、カテゴリ名とリンクも出力可能です。 また、商品一覧と検索結果ページのデータベース読み込み回数を最適化し、表示速度を向上させました。特に商品数が多いサイトで効果的です。更新版パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。追加タグの詳細は同サイトのブロックタグページに記載されています。

 

SOY Shopで商品ごと送料設定モジュールの試作を作成してみました

/** Geminiが自動生成した概要 **/
SOY Shop用の商品ごと送料設定モジュールが試作されました。複数の作家がそれぞれ異なる送料で商品を販売する場合、商品ごとに送料とメールアドレスを設定できるようになります。同じ作家から複数商品を購入しても送料は1個分のみ加算されます。注文時には作家にも通知メールが送信されます。デモ画像では商品情報登録画面に地域別送料とメールアドレス入力欄が追加されています。このモジュールはサイト(/soycms/soyshop/)からダウンロード可能です。商品ごとではなくカテゴリごとに設定すれば、カテゴリ=作家として複数商品の送料を一括管理も可能になります。作家の商品販売に関する要望は問い合わせページ(/soycms/inquiry)から受け付けています。

 

SOY Shopのカスタムサーチフィールドの多言語化対応

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムサーチフィールドが多言語化対応しました。商品名・カテゴリ名に続き、カスタムサーチフィールドの値も各言語毎に設定可能になり、CSVのインポート/エクスポートにも対応。管理画面では、各言語商品編集画面からカスタムサーチフィールドの設定を開き、言語ごとの値を入力できます。CSVによる多言語データの一括登録も可能になり、運用負荷を軽減。カスタムサーチフィールドは、カスタムフィールドと比べデータベーススキーマが洗練されており、表示速度の低下が起こりにくいメリットがあります。多言語対応版はsaitodev.coからダウンロード可能です。

 

SOY ShopのカテゴリCSVでカテゴリ名の多言語化

/** Geminiが自動生成した概要 **/
SOY ShopのカテゴリCSVインポート/エクスポート機能が強化され、カテゴリ名の多言語化に対応しました。多言語サイトプラグインで設定した言語ごとにチェックボックスが追加され、商品名と同様にカテゴリ名も多言語管理が可能になりました。このアップデートにより、各言語への対応が容易になり、グローバルなECサイト運営が効率化されます。最新のパッケージはsaitodev.co/soycms/soyshop/ からダウンロード可能です。以前公開された商品名の多言語化やカテゴリカスタムフィールドへの対応と合わせて、CSVによる多言語対応がさらに充実しました。

 

SOY ShopのカテゴリCSVでカテゴリカスタムフィールドに対応しました

/** Geminiが自動生成した概要 **/
SOY ShopのカテゴリCSVインポート/エクスポート機能が強化され、カテゴリカスタムフィールドに対応しました。カテゴリカスタムフィールドプラグインをインストールし、項目を追加すると、CSVのインポート/エクスポートページにカスタムフィールドが追加されます。これにより、CSVでのカテゴリデータ管理がより柔軟になります。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopの商品CSVで商品名の多言語化

/** Geminiが自動生成した概要 **/
SOY Shopの商品CSVインポート/エクスポート機能が強化され、商品名の多言語化に対応しました。多言語サイトプラグインを導入すると、商品名入力欄が言語ごとに拡張されます。今回のアップデートでは、この拡張された商品名(各言語)もCSVのインポート/エクスポートで扱えるようになりました。 これにより、多言語サイトでの商品登録・管理が大幅に簡略化されます。対応版はサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能です。

 

SOY Shopの簡易予約カレンダー使用時のメール文面の変更について

/** Geminiが自動生成した概要 **/
SOY Shopの簡易予約カレンダーで、注文メールの表記を「商品名」から「予約名、日付、ラベル」に変更できる連携機能が追加されました。 メールビルダープラグインで`#RESERVED_LIST#`という置換文字列を使用することで実現可能です。 従来は商品名、商品コード、数量、価格が表示されていましたが、この変更により、例えば「カレンダーA 2017-5-29 午前」のような予約情報が表示されるようになります。 この機能を利用するには、簡易予約カレンダーとメールビルダープラグインがインストールされている必要があります。 注文関連メールの自動出力箇所はメールビルダーで変更可能です。最新版は公式サイト(https://saitodev.co/soycms/soyshop/)からダウンロードできます。

 

SOY Shopの多言語プラグインでスペイン語設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopが多言語プラグインでスペイン語に対応しました。設定を追加したことでスペイン語ページの生成が可能になりましたが、翻訳作業はまだです。多言語サイト機能により、スペイン語設定のブラウザでアクセスした場合は自動でスペイン語ページへリダイレクトされます。手動切り替えも可能です。パッケージはサイトからダウンロードできます。スペイン語に堪能な方で翻訳協力可能な方は問い合わせフォームから連絡ください。

 

SOY Shopでフォーマットなしの商品価格を表示する

/** Geminiが自動生成した概要 **/
SOY Shopで商品価格の数字をカンマ無しで表示したいという要望に応えるため、カンマなし商品価格表示プラグインを作成した。標準機能のcms:id出力ではPHPのnumber_format関数により価格にカンマが入ってしまうため、プラグインでnumber_format関数をかまさないcms:idを追加する。プラグイン有効化後、テンプレートを修正することでカンマなし価格が表示される。プラグイン導入により、不要なユーザーに余計な処理負荷をかけることなく要望に対応できる。対応版パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能。

 

SOY Shopでカスタムサーチフィールド(子商品一覧)を追加しました

/** Geminiが自動生成した概要 **/
SOY Shop向けプラグイン「カスタムサーチフィールド」に新機能「子商品一覧」が追加されました。この機能により、子商品のみを表示する商品一覧ページと検索結果ページを作成できます。親商品名とカテゴリ名も表示可能で、深い階層の商品カタログサイト構築に役立ちます。同時に、カスタムサーチフィールドで範囲項目と商品情報項目の併用時に検索機能が動作しない不具合も修正されました。改良版プラグインはサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能です。

 

SOY Shopでお届け予定日の自動計算の置換文字列を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの発送メールでお届け予定日を自動計算する機能が追加されました。これまでお届け予定日未指定の顧客へのメールは手動で日付を入力する必要がありましたが、注文増加に伴う対応困難を解消するため、発送日から設定日数を加算した日付を自動挿入できるようになりました。標準配送モジュールの設定画面で「お届け日(自動)」の置換文字列を使用する設定を行い、メールテンプレート編集画面で当該置換文字列を挿入することで、管理画面からのメール送信時に自動計算されたお届け予定日(Y-m-d形式)が挿入されます。最新パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopで一つのページで同じshop:moduleを二回使用したい

/** Geminiが自動生成した概要 **/
SOY Shopで同じshop:module(例:パンくずナビゲーション)を一つのページで二回使用する方法。 1. `/soyshop/webapp/src/module/site/common/breadcrumb_navigation.php` をショップIDディレクトリ内の `.module/common/` にコピーする。 2. コピーしたファイルを複製し、`breadcrumb_navigation2.php` 等にリネームする。 3. `breadcrumb_navigation2.php` 内の関数名を `soyshop_breadcrumb_navigation2` に変更し、`soyshop_breadcrumb_navigation` 関数が存在しない場合に元の `breadcrumb_navigation.php` をインクルードして実行するように修正する。 これにより、`shop:module="common.breadcrumb_navigation"` と `shop:module="common.breadcrumb_navigation2"` の二つのモジュールタグで同じ機能を別々に表示できるようになる。

 

カスタムサーチフィールドのチェックボックスで商品詳細ページで選択した項目を表示したい

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムサーチフィールドでチェックボックスの値を商品詳細ページに表示、更にリンク化する方法。管理画面でチェックボックス型のカスタムサーチフィールド(例:フィールドID「custom_check」、ラベル「カスタムチェック」)を作成し、各項目を設定。商品詳細テンプレートに`<!-- csf:id="custom_check_番号_visible" -->`と`<!-- csf:id="custom_check_番号" -->`を記述することで、選択された項目のみ表示される。番号は設定した項目の順番(0始まり)。リンク化は`<a href="{url}=<!-- csf:id="custom_check_番号" /-->">`で囲み、{url}をサイトURLに置き換える。

 

SOY Shopの顧客検索で登録状態の項目を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの顧客検索機能に「登録状態」項目が追加され、仮登録顧客の数が把握できるようになりました。管理画面の顧客検索で「登録状態:仮登録」をチェックすることで、仮登録顧客のみを絞り込み検索できます。これにより、仮登録顧客の数を簡単に確認できます。このアップデートを含む最新パッケージは、saitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY Shopで管理画面の注文でもダミーアドレスを使用できる設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面での注文においても、ダミーアドレスを使用できる設定が追加されました。以前は公開側のみで利用可能だったダミーアドレス挿入モードを、管理画面側でも有効化できるようになりました。設定方法は公開側と同様で、有効化すると管理画面の注文画面でもダミーアドレスが挿入されます。これにより、メールアドレスをあまり使用しない業種でもSOY Shopを販売管理アプリとして活用しやすくなりました。このアップデートを含むパッケージはsaitodev.coからダウンロード可能です。

 

SOY Shopの管理画面からの注文で顧客名検索を追加してみた

/** Geminiが自動生成した概要 **/
SOY Shop管理画面の注文画面に顧客名とフリガナ検索機能が追加されました。注文追加画面で顧客名を入力し検索すると、一致する顧客が一人だけ表示されます。ただし、同姓同名がいる場合、検索結果が意図しない顧客になる可能性があります。完全一致の検索結果のみ表示されるため、複数候補を表示する機能は現時点では実装されていません。同姓同名がいる場合の対策として、別途紹介されている購入代行機能の利用が推奨されています。修正版パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY CMSのブロック内の繰り返し表示で何記事目毎に任意の文字列を表示したい

/** Geminiが自動生成した概要 **/
SOY CMSのブロック繰り返し表示で、n番目ごとに文字列を表示する方法を紹介します。`<!-- soy:id="loop" step="n" -->`タグを使用し、nに整数値を指定することで実現できます。例えば、3記事ごとに文字列を表示したい場合は`step="3"`とします。ブログ記事一覧で3の倍数の記事に適用した例では、3番目と6番目の記事に文字列が表示されました。偶数番目の記事には`step="2"`、奇数番目の場合は`step="2"`とCSSの`display:none;`を組み合わせることで実現可能です。この方法は`b_block:id="entry_list"`だけでなく、SOY Shopの`block:id="item_list"`など、ブロック繰り返し表示であればどこでも使用できます。

 

SOY Shopで購入回数1回の顧客向けにクーポンを発行したい

/** Geminiが自動生成した概要 **/
SOY Shopは、表示速度を重視し、機能をシンプルに保つことで売上向上を目指している。そのため、メールマガジン機能はSOY Mailと連携する形を採用している。 高機能になればなるほどサイトの表示速度は低下し、顧客の離脱に繋がる。特に商品点数やアクセス数の多いネットショップでは深刻な問題となる。SOY Shopはこうした問題を回避するため、必要な機能を厳選し、他サービスとの連携によって拡張性を確保することで、軽快な動作と自由度の高い運用を実現している。つまり、あえてメールマガジン機能を内包せず、SOY Mailとの連携を推奨することで、ショップ運営の効率化と売上最大化を図っている。

 

自由を求めてオープンソースのネットショップパッケージへ。軌道に乗った頃に遭遇する問題について

/** Geminiが自動生成した概要 **/
SOY CMSを利用したネットショップ運営において、初期段階では自由度の高さがメリットとなるが、注文データの増加に伴い表示速度の低下という課題に直面する。これはGoogle検索ランキングにも影響する。記事では、表示速度低下の原因としてデータベース設計の冗長化、特にTEXTカラムの多用を指摘。SOY CMS/Shopでは不要な機能をインストールしない、外部データベースの活用などで冗長化を回避しているものの、注文データテーブルでのTEXTカラム使用は課題として残る。解決策として、サイト高速化とデータベースチューニングの必要性を提示している。具体的な対策は後述としているが、別記事ではPageSpeed Insightsのスコア99達成についても言及している。

 

SOY CMS/Shopを利用する際、どのデータベースを利用すれば良いか?

/** Geminiが自動生成した概要 **/
SOY CMS/Shop開発者が最も感銘を受けたネットショップは、1日に約3万件もの注文を処理しながら、サクサクとした動作を維持しているサイトです。この驚異的なパフォーマンスは、MySQLデータベースの綿密なチューニングと、徹底的なキャッシュ戦略によって実現されています。数百台ものサーバーが複雑なシステムを支え、注文処理から配送までがシームレスに連携。サイト運営者の技術力と、顧客満足度を最優先に考えた設計思想に開発者は深く感銘を受け、自らの開発にも活かそうと刺激を受けています。膨大なアクセスと注文を処理しながらも快適なユーザー体験を提供するこのサイトは、ネットショップ開発の理想形として、開発者の心に深く刻まれています。

 

SOY Shopで予約サイトを運営する

/** Geminiが自動生成した概要 **/
スパーク運動療育西京極スタジオ様のWebサイト制作では、SOY Shopを活用した予約システムが導入されました。これにより、保護者はサイト上で簡単に療育の予約を行うことが可能になり、スタジオ側の手間も軽減されました。サイトデザインは、子供たちの成長をイメージした明るい色使いと、スタジオの温かい雰囲気を伝える写真が特徴です。また、レスポンシブデザインを採用し、様々なデバイスで快適に閲覧できます。さらに、SEO対策も施され、検索エンジンからの集客向上も期待できます。ブログ機能も備え、スタジオの最新情報や療育に関する有益な情報を発信することで、保護者とのコミュニケーション強化にも繋がっています。このサイトは、SOY Shopの柔軟性と拡張性を活かした好例と言えるでしょう。

 

SOY Shopの商品一覧ページでカスタムフィールドによるソートを設定する

/** Geminiが自動生成した概要 **/
SOY Shopで商品一覧をカスタム順に表示するには、カスタムフィールドを利用します。プラグインでカスタムフィールドを有効化し、「一行テキスト」型のフィールドを作成、これをソートに使用することを指定します。ページ管理から対象の商品一覧ページの設定を開き、「カスタム項目でソート」を選択、作成したフィールドを指定します。商品ごとに並び順を設定するには、各商品詳細ページのカスタムフィールドに数値を入力します。文字列としてソートされるため、1, 2, 11ではなく、101, 102, 111のように3桁の数値を使うことで意図しない並び順を回避できます。

 

ネットショップの開発に関わっていて一番すごいと感じたサイトについて

/** Geminiが自動生成した概要 **/
オープンソースのネットショップパッケージは自由度が高い反面、軌道に乗った後に様々な問題に直面する。初期の低コストは魅力だが、カスタマイズの自由が仇となり、複雑化・属人化しやすい。機能追加や修正に開発者への依存度が高まり、コストも増加。また、セキュリティ対策やバージョンアップの手間も発生する。さらに、事業拡大に伴うアクセス集中や多言語対応など、予期せぬ課題への対応が必要となる。結果として、運用コストが肥大化し、当初のメリットが失われる可能性がある。長期的な視点で、拡張性・保守性・運用コストを考慮したプラットフォーム選びが重要となる。

 

SOY Shopの管理画面でプラグインがページを持てるようになりました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面拡張機能として、プラグインが独自のページを持てるようにアップデート。これにより、ショップ機能を制限し、プラグイン経由でアプリ風機能を呼び出す「SOY App」的な開発が可能に。プラグインはSOY Shop本体への影響 minimal。 連絡掲示板プラグインを例に、管理画面内に掲示板を追加し、投稿時に登録管理者へメール通知する機能を実装。アップデート内容はGitHubのsoyshopパッケージに反映済。

 

さくらの共有サーバで二つのショップサイトを独自ドメインで運営する方法について

/** Geminiが自動生成した概要 **/
さくら共有サーバーのスタンダードプランで、二つの独自ドメインショップサイトをSNI SSLで運営する方法。まず、mainsite.jpをルートディレクトリに設置し、SNI SSLを設定。設定ファイル内のURLを独自ドメインに変更する。次に、subsite.jpをsubディレクトリに設置し、マルチドメイン設定とSNI SSLを設定。設定ファイル内のURLも変更。最後に、subディレクトリの.htaccessに`RewriteBase /`を追加することで、subsite.jpのサブページへのアクセスエラーを解消する。

 

SOY Shopで顧客詳細にメールの送信履歴を表示するようにしました

/** Geminiが自動生成した概要 **/
SOY Shopの顧客管理画面に、メール送信履歴表示機能と仮登録ユーザーの視認性向上のための機能追加が行われました。顧客詳細ページに送信済みメールとエラーメールの履歴を表示することで、仮登録メールのURLを管理者が確認しやすくなりました。また、仮登録ユーザーの顧客詳細ページでは、仮登録状態であることを強調表示することで、管理者の識別を容易にしました。これらの変更は、顧客へのメール再送や仮登録解除の手間を軽減することを目的としています。修正はGitHub上のSOY Shopパッケージで公開されています。

 

SOY Shopで注文と商品のタブの表示の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shop開発者は、顧客から多様なアプリ開発依頼を受けている。従来はSOY CMSのログイン機能を活用したフルスクラッチ開発で対応していたが、開発者自身へのフィードバックが少なく割高になるため、SOY Shopの機能を部分的に切り出してプラグイン化する方針に転換した。 今回、SOY Shop管理画面に注文と商品のタブ表示設定を追加。チェックを外すとタブが非表示になる。これは一見小さな変更だが、ユーザーにとって機能が多すぎると学習意欲を阻害したり、操作説明が煩雑になるため、必要な機能のみを表示させることでユーザビリティ向上に繋がる。 この修正はGitHub上のSOY Shopパッケージに反映されている。開発者は今後もSOY Shopの可能性を探るべく、管理画面の改善を進めていく。

 

SOY Shopの注文一覧で表示する項目の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面の注文一覧表示項目をカスタマイズできる機能が追加されました。従来、表示項目の変更はシステム破綻のリスクを伴うため推奨されていませんでしたが、要望の多さを受けて実装されました。管理画面の設定画面から表示/非表示を切り替えられます。ただし、全ての項目を表示すると画面が見づらくなるため、運営のスリム化も合わせて検討するよう促しています。変更はGitHub上のSOY Shopパッケージに反映されています。

 

SOY Shopの管理画面の新着ページをプラグイン化しました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面の新着ページがプラグイン化されました。これにより、各項目の表示/非表示や表示順をプラグインで制御可能になります。ネットショップ以外の用途、例えば会員制ブログやカタログサイト等での利用が増えているため、受注関連情報を非表示にし、別のアプリの要素を表示するといったカスタマイズが容易になります。 この変更によりSOY Shopの多様な活用方法が期待されます。変更はGitHub上のsoyshopパッケージに反映されています。

 

SOY Shopの管理画面からの注文時に消費税が計算されない不具合を修正

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面からの注文時に消費税が計算されない不具合を修正しました。これは稀に利用される管理画面からの注文機能において、消費税の計算処理が実装されていなかったことに起因するものです。修正により、管理画面からの注文でも正しく消費税が計算されるようになりました。この修正はGitHub上のsoycmsリポジトリ(https://github.com/inunosinsi/soycms/tree/master/package/soyshop)に含まれるsoyshopパッケージで反映されています。

 

切磋琢磨して積み上げたものに発生する信用

/** Geminiが自動生成した概要 **/
SOY ShopにEC CUBE 2.4系のログインチェック機能を導入した記事の概要です。EC CUBEで構築したサイトにSOY Shopで作成したサイトへのログインチェックを組み込み、シングルサインオンを実現しました。具体的には、EC CUBE側のログイン処理でSOY ShopのログインAPIを呼び出し、認証結果をSOY Shopのセッションに保存することで、両サイトでシームレスなログインが可能になります。これにより、ユーザーはEC CUBE側でログインするだけで、SOY Shop側でもログイン状態が維持され、利便性が向上します。記事では、導入手順やコード例、注意点などが詳細に解説されています。この統合により、異なるプラットフォームで構築されたサイト間の連携が強化され、よりスムーズなユーザーエクスペリエンスを提供できるようになります。

 

SOY Shopの商品詳細ページで商品コードの置換文字列を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品詳細ページでSEO対策と商品コード表示の課題を解決するため、タイトルフォーマット等のメタタグに商品コードとカテゴリ名の置換文字列を追加。商品名に商品コードを含めることで発生するデータベース肥大化や表示変更の煩雑さを解消。商品名は本来の役割に特化させ、商品コードはメタタグで管理することで、システムの効率化と柔軟な表示を実現。この変更はGitHub上の最新SOY Shopパッケージに含まれており、SEO効果の向上と運用コストの削減に貢献する。

 

SOY Shopで特別会員価格設定プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの特別会員価格プラグインは、顧客属性を利用して会員別に特別価格を設定できる。在庫管理の手間を増やすことなく、卸売業者や常連客への優待価格を提供可能。このプラグインは、購入回数属性自動振り分けプラグインやSOY Mail連携機能と組み合わせることで、会員セグメントに合わせた効果的な販促を実現する。例えば、SOY Mailで特別会員に販促メールを送信し、クーポンなしで特別価格を提供、さらに送料無料クーポンを配布することで購買意欲を高めるといった戦略が可能になる。最新版はGitHubからダウンロードできる。

 

SOY Shopで特別会員向けのページを作成する

/** Geminiが自動生成した概要 **/
SOY Shopで顧客属性を利用した特別会員向けページの作成方法を紹介します。顧客属性1を「会員」とした場合、カスタムスクリプトでアクセス制限を実現できます。手順は、特別会員向けページを作成後、ページ設定のカスタムスクリプトに下記コードを記述します。 ```php $mypage = MyPageLogic::getMyPage(); $user = $mypage->getUser(); if ($user->getAttribute1() !== "会員") { header("Location:/"); //リダイレクト先を適宜変更 exit; } ``` このコードは、ログインユーザーの属性1が「会員」でない場合、指定URLへリダイレクトします。「会員」やリダイレクト先は環境に合わせて変更可能です。

 

SOY Shopでカートかマイページの機能を使用しない場合は404を返そう

/** Geminiが自動生成した概要 **/
SOY Shopでカートやマイページ機能を使用しない場合、404エラーを返す設定が可能になった。カート設定でカートIDを「none」にすることで、カートページへのアクセス時に404エラーが返される。マイページも同様に、マイページIDを「none」に設定することで404エラーを返すことができる。これにより、顧客管理のみを行う場合などに、不要な機能へのアクセスを制限できる。表示内容はテンプレート管理の「none」テンプレートで編集可能。この機能はGitHub上のパッケージに含まれている。

 

SOY CMSのブログで地図アプリを作ろう2

/** Geminiが自動生成した概要 **/
SOY CMSのブログ機能を利用した地図アプリ作成の第2弾では、マーカークリック時のインフォウィンドウ表示を実装しました。前回設定したカスタムフィールド(サムネイル、緯度経度)に加え、ブログ記事のタイトルとリンクをインフォウィンドウに表示するようにテンプレートを修正。具体的には、JavaScriptでインフォウィンドウの内容を生成し、マーカークリックイベントで表示する処理を追加しました。これにより、地図上のマーカーから各店舗の詳細ページへ遷移できるようになりました。将来的にはSOY Shopと連携させ、カテゴリを店舗名として地図上に店舗を表示するショップページの作成も構想されています。

 

SOY CMSとSOY Shopで販促ブログ付きのネットショップを運営してみよう

/** Geminiが自動生成した概要 **/
SOY CMSとSOY Shopを連携させれば、販促ブログを備えたネットショップを簡単に構築できる。EC-CUBEとWordPressの組み合わせ等、複数のCMSを運用する際に生じるログイン画面の二重化、在庫状況に合わせた記事の出し分け、顧客データに基づいた情報提供、問い合わせデータの活用といった問題を、SOY Shopなら単一CMSで解決できる。SOY Shopの商品紹介プラグインを使えば、ブログの記事作成時に商品コードを入力するだけで、ショップの商品情報(商品名、画像、価格、商品ページへのリンク等)を自動的にブログ記事に挿入可能。これにより、販促効果の高いブログ記事を効率的に作成・公開できる。

 

ネットショップ用CMSはカタログサイトの構築にも向いている

/** Geminiが自動生成した概要 **/
カタログサイト構築にネットショップ用CMS(例:SOY Shop)を推奨。理由は、将来的な物販開始時のデータ移行が不要になるため。ブログ利用の場合、商品登録のインポートが煩雑になる。 CMSなら注文ボタン設置で物販開始が可能。事例としてコトブキ園のサイトを紹介。商品一覧・詳細ページがあり、豊富なコンテンツ登録が可能。高度な検索フォーム設置も容易。 会員制カートプラグインで直購入防止、SOY Inquiry連携で商品毎の問い合わせフォーム設置も実現できる。これにより、情報豊富で問い合わせ対応も可能なカタログサイトが構築できる。

 

SOY CMSとSOY Shopで有料ブログを運営してみよう

/** Geminiが自動生成した概要 **/
SOY CMSとSOY Shopを組み合わせることで、有料ブログを簡単に構築できます。SOY Shopでライセンス商品を登録し、顧客情報入力やプラグインを簡素化することで、ユーザーの購入手続きをスムーズにします。SOY CMS側では、SOY Shopログインチェックプラグインを使って有料記事へのアクセス制限を設定し、特定の商品購入者を許可します。クレジット決済モジュールと連携すれば、スムーズな支払い確認が可能になります。さらに、PayPalやPAY.JPの継続課金モジュールを利用することで、月額課金型の有料会員制ブログ運営も実現できます。

 

SOY Shopでポイントの設定変更の際、個々の商品の設定が変更されない問題に対応しました

/** Geminiが自動生成した概要 **/
SOY Shopのポイント制設定プラグインにおいて、全体設定の変更が個々の商品設定に反映されない問題を修正。商品個別にポイント付与率を設定できる仕様のため、全体設定変更後も個別設定が残ってしまう不具合が発生していた。そこで、全体設定変更時に商品設定も一括変更するチェックボックスを追加。この変更により、意図しない個別設定の残存を防ぎ、運用開始後のポイント付与率変更をスムーズに行えるようになった。修正はGitHub上のパッケージに含まれる。

 

SOY CMSとSOY Shopで会員制ブログを運営してみよう

/** Geminiが自動生成した概要 **/
SOY CMSはショップ系サイト開発に注力しているため、ブログ機能は弱いというイメージがあるが、ショップ特有のセキュリティ強化により、安全な会員制ブログ構築が可能になっている。方法は、SOY CMSとSOY Shopをそれぞれ顧客管理用とブログ投稿用に設置し、ブログ投稿サイトにSOY Shop連携プラグインとSOY Shopログインチェックプラグインを導入する。ログインチェックプラグインで顧客管理サイトを指定し、ブログ記事のテンプレートを編集。`cms:id="is_login"`でログイン時表示部分を、`cms:id="no_login"`で非ログイン時表示部分を囲むことで、閲覧制限を実現する。非ログイン時にはログインページへのリンクが表示され、ログイン後は制限されていたコンテンツが閲覧可能になる。この仕組みにSOY Mailを連携させれば、顧客情報に基づいたメルマガ配信も可能。HTMLのみで構築できるため、デザインの自由度やSEO対策も容易で、有料ブログや有料メルマガへの拡張も容易である。

 

SOY Shopのプラグインやモジュールの複製方法

/** Geminiが自動生成した概要 **/
SOY Shopのプラグイン複製は、対象ディレクトリ(例:payment_furikomi)を丸ごと複製し、名前を(例:payment_furikomi2)に変更する。ファイル名、クラス名、モジュールID(payment_furikomi→payment_furikomi2、PaymentFurikomi→PaymentFurikomi2など)を全て変更する。module.iniのモジュールIDも修正。拡張ポイントファイル(soyshop.***.php)やUtilクラスなども同様に置換。HTMLファイルは修正不要。PHPの知識があれば複製後、自由に修正可能。

 

SOY Shopの商品詳細ページで登録されている商品をランダムで表示する

/** Geminiが自動生成した概要 **/
SOY Shopの商品詳細ページで登録商品をランダム表示するPHPモジュールを作成する方法です。まず、管理画面でモジュールID「item.random」のPHPモジュールを作成し、指定のコードを記述します。このコードはSOY2DAOを使い、全商品、または指定カテゴリの商品をランダムに取得し、表示件数を制限するSQLを実行します。商品詳細ページテンプレートに`<!-- shop:module="item.random" -->`と`<!-- block:id="random_item_list" -->`を記述することで、ランダムに選ばれた商品が表示されます。カテゴリを指定するには、`$categoryId`変数にカテゴリIDを代入します。

 

SOY Shopでメールテンプレートを追加できるプラグイン

/** Geminiが自動生成した概要 **/
SOY Shop用の「メール送信種類追加プラグイン」が開発されました。このプラグインは、管理画面から送信可能なメールテンプレートを自由に増やすことができます。注文詳細画面のメール送信項目に、任意のテンプレートを追加し、柔軟なメール送信が可能になります。 新機能として、メールテンプレート編集画面で注文詳細情報の出力を選択できるようになりました。また、「SOY Shopのメールビルダから出力される商品一覧に並び順設定を追加しました」で紹介されている並び順設定機能にも対応しています。さらに、伝票番号など、既存プラグインの情報もメール本文に挿入できるようになり、置換文字列も追加されました。プラグインパッケージはsaitodev.coからダウンロード可能です。

 

SOY Shopで注文に対して誰が対応したかを表示する

/** Geminiが自動生成した概要 **/
SOY Shopの複数アカウント運用で、誰が顧客対応したか履歴を把握できる機能追加を行いました。注文状態変更履歴に対応者IDを表示するように変更。空欄はシステム自動対応。これにより、メール送信や注文情報変更の担当者を明確化できます。パッケージはGitHub(https://github.com/inunosinsi/soycms/tree/master/package)からダウンロード可能です。

 

SOY Shopの注文検索と顧客検索の結果をSOY Mailで利用する機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文・顧客検索機能が強化され、SOY Mailとの連携が向上しました。注文検索では顧客情報、商品、金額等の絞り込みが可能になり、顧客検索では購入合計と購入回数が追加されました。また、顧客属性の一括設定とCSV出力も実装。これらの機能拡張により、SOY Shopの注文状況に基づいたメール配信が容易になり、SOY Mailの下書き自動保存機能と合わせてメールマーケティングの効果的な運用を支援します。最新パッケージはGitHubからダウンロード可能です。

 

在庫数一括設定プラグインで商品カテゴリによる絞り込みが甘い不具合を修正しました

/** Geminiが自動生成した概要 **/
SOY Shopの在庫数一括設定プラグインのバグ修正について。当初、商品カテゴリ検索でカテゴリIDのLIKE検索を用いていたため、意図しないカテゴリの商品も検索結果に含まれる不具合があった。例えば、カテゴリ1(ID:1)で検索すると、カテゴリ10(ID:10)も検索対象となっていた。これはIDに"1"が含まれるため。この不具合は修正済みで、修正版はGitHubからダウンロード可能。

 

元CMSの開発として、CMSの過剰カスタマイズは止めた方が良いと伝えたい

/** Geminiが自動生成した概要 **/
CMS開発経験者として、CMSの過剰カスタマイズは避けるべきだと主張しています。標準機能で不足する場合はプラグイン活用を推奨し、どうしてもカスタマイズが必要なら汎用化し開発元に取り込んでもらうべきです。 成功するネットショップは過剰なカスタマイズを避け、標準機能のバージョンアップによる恩恵を最大限に活用しています。HTMLやPhotoshopを使いこなし、小規模な修正を繰り返すことで魅力的なLPページを作成し売上向上を実現しています。 カスタマイズ依頼の際は、標準機能への実装可能性や他サイトでの汎用性を重視し、CMSカスタマイズが難しい場合はAPI連携可能な外部サービスを検討します。この柔軟な姿勢がサイトの急成長を支えています。

 

開発元を退職した私がSOY CMSを開発し続けている訳

/** Geminiが自動生成した概要 **/
筆者はSOY CMSの開発元を退職後も、個人で開発を継続している。理由は、開発元代表の行動(SNSでの女装写真連投)と農業事業への注力により、開発が停滞し、経験豊富な開発メンバーが離脱したため。退職後、ユーザーの声を直接聞き、SOY CMSの価値を再認識し、開発継続を決意。公式フォーラムへの修正報告は反映されず、個人でパッケージを配布。開発元の事業不振を憂慮し、リポジトリの公開を提案。利用者がいれば開発を続けると宣言している。

 

カスタムサーチフィールドの商品一覧ページで並び替えを追加

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムサーチフィールドで複数カテゴリのような商品一覧ページを作成できる機能に加え、新たにソート機能が追加されました。カテゴリとして使用したフィールド以外の値で商品を並び替えることが可能になります。ソートボタン設置プラグインと同様のアンカータグをカスタムサーチフィールド側で設定できるようになりました。この機能追加により、より柔軟な商品表示が可能になります。追加機能を含むパッケージはGitHub(https://github.com/inunosinsi/soycms/tree/master/package)で公開されています。

 

Dropboxにバックアップする時はパスワード付きzipにしておく

/** Geminiが自動生成した概要 **/
Dropboxへのバックアップ時に、個人情報を含むデータベースをzip圧縮する際のセキュリティ強化策として、パスワード付きzipファイルの作成方法を紹介している。 zipコマンドの-eオプションで暗号化が可能だが、対話式でパスワード入力を求められるため、crontabでの自動化にはexpectコマンドを使用する必要がある。サンプルスクリプトでは、expectでパスワード入力を自動化し、指定ディレクトリをパスワード付きzipファイルとしてDropboxにバックアップする方法を示している。 スクリプトの実行例として、Dropboxへのアップロードとダウンロード後の解凍時にパスワードが要求されることを確認し、セキュリティが向上したことを示している。さらに、パスワードの強度を高める方法や都度生成する仕組みの必要性にも言及している。

 

SOY Shopのオーダーカスタムフィールドの項目でファイルを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで商品注文時にファイルアップロードできるカスタムフィールド機能が追加されました。管理画面で「ファイル」種別の項目を作成すると、カートにアップロードフォームが表示され、注文完了後、管理画面のファイルマネージャで確認できます。ファイル名は日付に変換され上書きは防止されます。ストレージプラグインと併用すればダウンロードURLも利用可能です。現在は拡張子やファイルサイズ制限機能はありませんが、アップロード許可する拡張子設定は追加されました。要望があればお問い合わせください。この機能はhttps://saitodev.co/soycms/soyshop/のパッケージで利用可能です。

 

SOY Shopで繁盛レポートプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用の繁盛レポートプラグインが開発されました。このプラグインは、商品の人気度と注文頻度を可視化し、売上に貢献することを目指しています。カートとマイページ以外のページに設置でき、注文状況と購入者の都道府県を表示します。これにより、どの商品がどれくらい売れているか、どの地域からの需要が高いかを把握できます。高頻度の注文が発生するショップで特に有効です。プラグインはGitHub上の開発者のリポジトリで公開されています。

 

SOY Shopで運営者の購入代行時に顧客の情報を自動で入力する

/** Geminiが自動生成した概要 **/
SOY Shopの拡張機能で、運営者が顧客の購入を代行する際の手間を省く仕組みが開発されました。 公開側の商品ページに設置した注文ボタンから、管理画面へ特定の顧客情報で自動ログインする機能です。 ボタンにはGETパラメータが付与され、管理画面でログイン状態とパラメータを照合することで、指定顧客の自動ログインを実現しています。 これにより、購入代行時に顧客情報入力の手間が不要となり、電話注文の2回目以降の対応をスムーズに行えます。 この機能はGitHubで公開されているパッケージから利用可能です。

 

SOY Shopでダミーのメールアドレスを挿入する設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで電話注文時の商品オプション・規格対応のため、ダミーメールアドレス自動挿入機能を追加。管理画面で設定を有効化し、公開側で注文手続きを行うと、重複チェック済みのランダムな「...@dummy.soyshop.net」がメールアドレス欄に自動入力される。 このアドレスで注文すると確認メール等の送信が抑制され、メールボックスの圧迫を防げる。 パスワード設定で顧客情報の再利用も可能。 電話注文対応の課題を解決し、運営者の注文代行を効率化するアップデートとなっている。

 

SOY Shopで顧客毎にファイルを保存できる様にしました

/** Geminiが自動生成した概要 **/
SOY Shop用のストレージプラグインにより、顧客ごとにPDFやZIPなどのファイルを保存・管理できるようになりました。顧客専用ページでファイルのアップロードが可能で、ダウンロードURLの発行にも対応。管理画面からはelFinderを用いてファイルマネージャ形式でアクセスできます。ファイル保存パスは`/サイトID/files/user/顧客ID`です。アップロード可能なファイル形式の仕様は未確定ですが、プラグインは利用可能です。パッケージはGitHub(https://github.com/inunosinsi/soycms/tree/master/package)で公開されています。

 

SOY Shopの集計プラグインの商品毎集計のグルーピングで価格も考慮にいれました

/** Geminiが自動生成した概要 **/
SOY Shopの集計プラグインがアップデートされ、商品毎の売上集計において価格変動を考慮したグルーピングが可能になった。以前は価格変更があった場合でも同一商品として集計されていたが、今回の修正で商品IDに加え価格もグルーピング基準に追加。例えば、価格2000円の商品が5個売れた後、1800円に値下げされ10個売れた場合、以前は「15件 30000円」と集計されていたが、修正後は「2000円で5件 10000円」と「1800円で10件 18000円」と別々に集計されるようになった。修正版パッケージはGitHub上で公開されている。

 

SOY ShopのMySQL版のクーポン自由設定プラグインで使用ログが動作していなかった件を修正しました

/** Geminiが自動生成した概要 **/
SOY ShopのMySQL版クーポン自由設定プラグインで、クーポン使用ログが記録されない不具合を修正しました。この不具合により、クーポンの使用回数がカウントされず、使用回数制限が正常に動作しない問題が発生していました。修正版パッケージはGitHubで配布しています。直接修正する場合は`ALTER TABLE soyshop_coupon_history CHANGE private price INTEGER NOT NULL DEFAULT 0;`を実行してください。

 

私にとっての農業とSOY Shop

/** Geminiが自動生成した概要 **/
新規就農者は、野菜の栽培で手一杯のため、販売に割く時間がない。そのため、野菜の価格決定権が市場に握られ、価格が下がった際に収入が不安定になりやすい。この問題を解決するために、営業不要で販路を確保できるネットショップ活用が有効だ。研修中に開発したECサイト構築システム「SOY Shop」を導入し、自ら販売サイトを構築。ブログやSNSで情報発信し、顧客との直接的な関係を築くことで、安定した経営を実現した。この成功事例は他の新規就農者にも参考になるだろう。

 

SOY Mailで下書きの自動保存を追加しました

/** Geminiが自動生成した概要 **/
SOY Mailに下書き自動保存機能を追加しました。SOY Shopの利用増加に伴い、メルマガ作成の需要が高まる中で、長文になりがちなメルマガ編集時の利便性向上を図りました。設定画面の「サーバ設定」に追加されたチェックボックスを有効にすることで、メール作成・編集中に定期的に下書きが自動保存されます。この機能は試作段階のため、不備の可能性があることをご了承ください。ダウンロードはGitHubから可能です。

 

SOY Mailで誕生日で絞り込みを追加しました

/** Geminiが自動生成した概要 **/
SOY Shop連携機能を持つSOY Mailに誕生日検索機能が追加されました。顧客の誕生月を指定してメルマガ配信が可能になり、誕生月キャンペーンなどの告知に活用できます。月のフォームに数字を入力することで、指定の月に誕生日を迎える顧客のみにメールを送信できます。この機能はSOY Shop連携時にのみ利用可能です。ダウンロードはGitHubのsoycmsリポジトリ(packageディレクトリ)から行えます。

 

SOY Shopで注文変更の際に代引き手数料の自動計算を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文変更画面で、代引き手数料を自動計算する機能が追加されました。 従来、注文内容変更時に商品個数を変更すると、代引き手数料を手動で修正する必要がありましたが、この機能により自動で再計算されます。例えば、商品価格の合計が10,000円を超えて手数料が無料になる場合など、変更後の金額に応じて手数料が自動更新されます。この機能は代引き支払いモジュールの設定で有効/無効を切り替え可能です。消費税の自動計算にも対応しており、要望があれば配送モジュールの手数料自動計算も検討されます。関連パッケージはGitHubで公開されています。

 

SOY Shopでブラック顧客リストプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用プラグイン「ブラック顧客リストプラグイン」は、顧客詳細画面にブラック顧客チェックボックスを追加し、チェックでブラック顧客として登録する。以後、該当顧客からの注文は注文詳細に赤字で警告表示され、注文登録画面でも通知が表示される。プラグイン詳細画面では登録済みのブラック顧客リストを確認可能。管理画面での注文登録業務を主とするユーザー向けに、ブラック顧客を一目で識別しやすくする機能を提供。コードは指定GitHubリポジトリのパッケージ内に含まれる。

 

SOY Shopで伝票番号記録プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopのドットインパクトプリンタ伝票印刷プラグインに、伝票番号記録機能が追加されました。管理画面の注文詳細画面に伝票番号入力フォームが追加され、入力した番号は注文履歴に記録されます。記録された伝票番号は、支払確認メールや配送確認メールに自動挿入されるため、顧客へのスムーズな情報伝達に役立ちます。この機能追加を含む最新パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopでドットインパクトプリンタで伝票印刷に対応しました

/** Geminiが自動生成した概要 **/
SOY Shop用ドットインパクトプリンタ伝票印刷プラグインが開発されました。管理画面の注文一覧から印刷したい注文を検索し、条件を設定して実行すると、連続印刷用ページが出力されます。1ページ1伝票で、PDF保存すればドットインパクトプリンタで使用可能です。現在はクロネコヤマトのみ対応。代引きの場合は宅配便コレクトサービス伝票、それ以外は発払伝票として背景が変化します。プラグインはGitHub上のパッケージ(https://github.com/inunosinsi/soycms/tree/master/package)に同梱されています。

 

SOY Shopで集計プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用の売上集計プラグインが開発されました。月次・日次・商品別・年齢別の売上データをCSV出力でき、手数料や値引きの算入設定も可能です。既存の統計プラグインとは異なり、出力CSVは他の計算にも利用できます。このプラグインはGitHub上のsoycmsパッケージに含まれています。高速化された統計プラグインに関する情報も提供されています。

 

SOY Shopでカートのエラーになった際に管理者に通知メールを送信機能を追加

/** Geminiが自動生成した概要 **/
SOY Shopでカートエラー発生時に管理者へ通知メールを送信する機能を追加する方法が解説されています。カートページのPHPファイル(/soyshop/webapp/src/cart/_common/page.php)の例外処理部分に、メール送信処理を記述することで実現します。エラー発生時に管理者のメールアドレスへ通知メールが送信されるように設定し、エラーの詳細な内容を含むことも可能です。ただし、セキュリティ上の理由から、エラーの詳細情報をメール本文に含めることは推奨されていません。修正済みパッケージはGitHubで公開されています。

 

サイトマップ結合プラグインからサイトマップページを作成してみよう

/** Geminiが自動生成した概要 **/
SOY CMSとSOY Shopのサイトマップを統合するプラグインを活用し、サイトマップページを作成する方法を紹介。モジュールを作成し、統合XMLを読み込み、各URLからページタイトルを取得してリンクを生成するPHPコードを記述。無限ループ対策としてGETパラメータ`xml_search`を使用。しかし、各ページのHTMLを取得する処理が重く、キャッシュ生成の必要性が示唆されている。

 

SOY CMSでサイトマップ結合プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS/Shop用サイトマップ結合プラグインを作成。複数のSOYサイトのサイトマップを一つにまとめることで、サイトマップ管理の手作業を削減。プラグイン管理画面に個々のサイトマップURLを登録すると、静的なXMLファイルが生成される。このファイルは一日で寿命が切れ、翌日いずれかのページにアクセスがあると再生成されるため、高速な参照と最新の状態を維持できる。プラグインはGitHub上のパッケージに同梱、利用にはSOY CMS/Shopの最新版が必要。

 

SOY Shopで即日配送モジュールを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの即日配送モジュールは、注文後すぐに発送手続きを行うネットショップ向けに開発されました。カート画面で即日配送を選択可能にし、サイト全体に説明文を表示できます。営業時間外への対応として、営業日カレンダープラグインと連携し、定休日や営業時間の設定が可能です。さらに、午後の注文で翌日到着になる場合、到着予定日を自動的に調整する機能も備えています。このモジュールはGitHub上のinunosinsi/soycmsパッケージに含まれています。

 

SOY Shopの標準配送モジュールにお届け日の指定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの標準配送モジュールに待望のお届け日指定機能が追加されました。従来は個別対応でしたが、今回標準機能化。営業日カレンダープラグインと連携し、定休日や連休を考慮したお届け日候補を表示。設定の肥大化を避けつつ、柔軟な配送設定を実現しています。指定可能期間や連休明けからの換算表示など、ユーザーフレンドリーな設計です。この機能追加により、今後の機能拡張にも期待が高まります。パッケージはGitHubで公開中。

 

SOY Shopで未発送や未入金の注文を把握したい

/** Geminiが自動生成した概要 **/
SOY Shopの注文管理画面の機能拡張パッケージ。管理画面では注文状況・支払状況のステータス毎の検索は可能だが、未発送・未入金状態の注文を一括検索できない問題を解決する。パッケージ導入により、「未発送の注文」「未支払の注文」チェックボックスが追加され、チェックで各々に対応するステータス(未発送:新規受付、受付完了、在庫確認中。未支払:支払待ち、入金エラー、直接支払)の注文を一括検索可能になる。これらのチェックボックスは既存のステータス選択よりも優先される。

 

SOY2DAOでSQLを実行して、オブジェクトで返す

/** Geminiが自動生成した概要 **/
SOY2DAOで複雑なSQLを実行しつつ、結果をオブジェクトで取得する方法が紹介されています。顧客テーブルとカスタムフィールドテーブルを結合し、特定のカスタムフィールド値を持つ顧客情報を取得する例が示されています。 `SOYShop_UserDAO` の `executeQuery` でSQLを実行し、結果の配列をループ処理で `getObject` メソッドに渡すことで、各レコードが `SOYShop_User` オブジェクトに変換されます。これにより、カスタムフィールドの値で検索しながら、必要な顧客情報のみをオブジェクトとして扱いやすく取得できます。この手法は、以前紹介されたSOY CMSの検索フォーム追加の記事でも活用されています。

 

SOY2DAOでデータベースから値を取り出す

/** Geminiが自動生成した概要 **/
SOY2DAOを用いたデータベースからの値の取得方法を解説。プリペアードステートメントに続き、今回はDAOの機能を活用した取得方法を紹介。SOY Shopの顧客情報を例に、`SOY2DAOFactory::create("user.SOYShop_UserDAO")` でDAOオブジェクトを生成し、`$userDao->get()` でデータを取得する様子をコードで示す。取得したデータはSOYShop_Userオブジェクトの配列となり、`$user->getName()` のようにゲッターメソッドで簡単に値にアクセスできる。SQL直接実行の場合と比べ、オブジェクト指向の恩恵で可読性・安全性が向上する点を強調。最後に、SQL実行結果もオブジェクトで扱いたいケースへの言及で締めくくっている。

 

SOY CMS/Shopのモジュール内でSQLを実行する

/** Geminiが自動生成した概要 **/
SOY CMS/Shopのモジュールでは、PHPで自由にSQLを実行できる。PDOは結果の整形が面倒だが、SOY2DAOクラスを使うと便利。 例えば、`soyshop_user`テーブルから上位5件を取得するSQLを、PDOで実行すると連想配列と数値添字配列の混合配列が返り使いにくい。SOY2DAOの`executeQuery`メソッドを使うと、同じSQLでも整形された連想配列として結果が返るため、foreach文などを書かずに扱える。

 

SOY Shopで複数カテゴリの様な設定を行う

/** Geminiが自動生成した概要 **/
SOY Shopでは複数カテゴリ機能はパフォーマンス低下のため廃止され、代替としてカスタムサーチフィールドプラグインが推奨されています。カスタムサーチフィールドでは、チェックボックス形式で複数の「タグ」を商品に設定可能。管理画面で項目を追加し、商品詳細ページでタグを選択、商品一覧ページには専用ページを作成し、CustomSearchFieldItemListモジュールを適用することでタグによる絞り込みを実現します。URLは「http://ドメイン/ショップID/ページのURL/フィールドID/タグ値」となります。ただし、管理画面の商品検索ではカスタムサーチフィールドによる検索は不可。その対策として、各フィールドに一括設定ページが用意され、簡易的な商品検索フォームが利用可能です。

 

SOY ShopのURLの設定方法

/** Geminiが自動生成した概要 **/
SOY ShopのサイトURLは、`/CMSインストールディレクトリ/soyshop/webapp/conf/shop/`にある`サイトID.conf.php`(例:soy.conf.php)内の`soy_SOYSHOP_SITE_URL`で定義されています。 例えば`http://localhost/soy/`を`http://example.com/`に変更すれば、公開側のURLが変わります。サイトディレクトリは`soy_SOYSHOP_SITE_DIRECTORY`で変更可能です。ただし、ルート直下以外の運用は動作保証外のため、変更時はconf.phpのバックアップ必須です。

 

SOY Shopで注文の変更の際の内税の計算に誤りがあったため修正しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文変更時に、内税計算に誤りがあったため修正されました。具体的には、管理画面で注文変更を行う際、内税が代金合計に含まれてしまう不具合と、数量変更時に以前の内税額が代金合計に加算される不具合が修正されました。修正により、内税は代金合計に含まれず、購入金額や手数料の変更ごとに消費税が再計算されるようになりました。この修正は本体への変更を含むためプラグイン配布はされず、GitHubからダウンロードする必要があります。

 

SOY Shopの管理画面で顧客の誕生日検索を追加しました

/** Geminiが自動生成した概要 **/
SOY Shop管理画面に顧客誕生日検索機能が追加されました。誕生月ポイント付与プラグイン実装時に要望のあった機能で、年・月・日で検索可能です。「今月誕生日の方」といった誕生月顧客の絞り込みが可能です。この機能は保留になっていたものが実装されたもので、github上のsoycmsパッケージからダウンロードできます。

 

SOY Shopで在庫数一括設定プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの在庫数一括変更プラグインが公開されました。生鮮食品など賞味期限の短い商品を扱うサイト向けに、商品ごとの在庫数を一括で更新できます。プラグインはGitHubからダウンロード可能です。表示件数設定や簡易検索機能も搭載し、多数の商品を扱うサイトでも効率的に在庫管理を行えます。

 

SOY Shopの統計プラグインで注文件数が多くなったサイトでも快適に表示できるように修正しました

/** Geminiが自動生成した概要 **/
SOY Shopの統計プラグインの表示速度が改善されました。注文件数の多いサイトでは、統計計算に時間がかかっていましたが、原因は注文一覧ページの無駄な二重検索処理でした。統計処理時に、一覧用の検索結果を破棄して再度統計用の検索を行っていたため、メモリを浪費し、計算時間が増大していました。この無駄な処理を修正することで、表示速度が大幅に向上しました。修正版はフォーラムまたはGitHubのパッケージ置き場から入手できます。

 

SOY Shopの管理画面で電話注文に対応してみた

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面で電話番号検索による注文登録機能が追加された。 従来はメールアドレス検索のみだったが、電話注文対応のため電話番号検索フォームが実装された。電話番号は表記ゆれがあるため検索精度はメールアドレスより劣るが、改善のため試用とフィードバックが求められている。パッケージはGitHub(https://github.com/inunosinsi/soycms/tree/master/package)からダウンロード可能。リピーターからの電話注文増加に対応する機能拡張である。

 

SOY Shopで消費税の計算の際に送料と手数料を含める設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで消費税計算設定を拡張し、送料・手数料を含めるオプションを追加しました。従来は商品価格のみを課税対象としていましたが、売上規模によっては送料・手数料も課税対象とする必要性から、設定で切り替えられるようにしました。この変更は本体への修正を含むため、プラグインではなくパッケージからのダウンロードが必要です。また、内税計算のバグ修正も行いました。以前は単純に合計金額に税率をかけていましたが、正しくは「合計金額 - (合計金額 * 1 / (1 + 税率))」で計算するように変更しました。

 

SOY CMS/Shopでクラス名と同名のメソッドでエラーになる件を修正

/** Geminiが自動生成した概要 **/
KAGOYAのマネージド専用サーバでPHP7にアップグレードした際、SOY CMS/Shopでクラス名と同名のメソッドがコンストラクタとして使われているためエラーが発生した。PHPの次期バージョンではこの記法が非推奨となるため、`__construct()`への変更が必要だった。`WebPage`クラスなどでも同様の問題があり、修正パッチを作成しGitHubに公開した。公式サイトにも反映されることを期待している。

 

SOY Shopでカートに一括で商品を入れてみる

/** Geminiが自動生成した概要 **/
SOY Shopでカートに複数商品を一括登録する方法。商品詳細ページのテンプレートに `<input type="hidden" name="item[]" value="商品ID">` を複数記述することで実現できる。`<form cms:id="item_cart_default_form">` で囲まれたフォーム内に、hiddenで指定した商品IDのinput要素を配置する。カートに入れるボタンを押すと、これらのhiddenの値が商品IDとしてカートに追加される。

 

SOY Shopのポイント付与プラグインで誕生月購入ポイントプレゼントを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのポイント付与プラグインに、誕生月購入者へのポイントプレゼント機能が追加されました。設定画面で特典ポイント数を指定すると、購入者の誕生月に限り、通常のポイントに加えて追加でポイントが付与されます。 この機能はプラグインとして提供され、SOY CMSフォーラムからダウンロード可能です。誕生月特典は顧客への還元策として有効で、リピーター獲得に貢献します。

 

SOY Shopのポイント支払いプラグインで使用するポイントを指定するフォームを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのポイント支払いプラグインに、使用ポイントを指定するフォームが追加されました。以前は全ポイント使用のみでしたが、今回追加されたフォームで任意のポイント数を入力して使用できるようになりました。 全ポイント使用のチェックボックスも引き続き利用可能です。新機能は、GitHub上のSOY Shopパッケージ(https://github.com/inunosinsi/soycms/tree/master/package/soyshop)からダウンロードできます。

 

商品規格プラグインと非同期カートボタンプラグインで各規格の金額を調べてカートに入れる機能を追加した

/** Geminiが自動生成した概要 **/
SOY Shopの商品規格プラグインと非同期カートボタンプラグインの連携強化により、各規格の価格がカート投入前に動的に反映されるようになりました。従来、親商品の価格しか表示されなかった非同期カートの吹き出しに、選択した規格の価格と在庫状況が表示されるように改良。管理画面で規格ごとの価格を設定することで、在庫切れ表示にも対応。これにより、ユーザーは規格ごとの正確な価格情報を確認した上でカートに追加できます。新機能はGitHub上の最新パッケージから利用可能です。

 

SOY Shopの商品規格プラグインで最安値と最高値のタグを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品規格プラグインがアップデートされ、最安値と最高値を表示するタグが追加されました。従来のプラグインでは規格ごとの金額設定は可能でしたが、商品全体の最安値・最高値を表示する機能はありませんでした。今回のアップデートで、商品詳細ページに規格全体の最安値と最高値を簡単に表示できるようになりました。この機能は、商品規格によって価格が変動する商品を販売する際に便利です。アップデート版はGitHubからダウンロードできます。

 

SOY Shopで商品規格プラグインと非同期カートボタンプラグインを一緒に使いたい

/** Geminiが自動生成した概要 **/
SOY Shopの商品規格プラグインと非同期カートボタンプラグインの同時利用が可能になりました。商品規格の選択後、非同期カートボタンを押すと、ボタン上にカート投入の通知が表示され、カートページで確認できます。画像は、商品規格選択画面、ボタン押下後の通知、カート内の商品規格適用済み商品を示しています。最新版はGitHubのsoyshopパッケージからダウンロード可能です。

 

SOY Shopで商品規格プラグインと入荷通知プラグインを一緒に使いたい

/** Geminiが自動生成した概要 **/
SOY Shopの商品規格プラグインと入荷通知プラグインを併用できるよう修正。入荷通知プラグインは在庫切れ商品に入荷通知登録リンクを追加し、在庫補充時に登録者にメールを送信する機能。今回の修正で、商品規格プラグイン利用時にも規格ごとの在庫管理と入荷通知が可能になった。つまり、規格ごとに在庫切れ/入荷通知リンクを表示し、特定規格の在庫補充時に該当規格の入荷通知登録者にメールを送信できる。最新パッケージはGitHubからダウンロード可能。

 

SOY Shopの非同期カートボタンプラグインでボタンを押した後にフキダシ表示を追加してみた

/** Geminiが自動生成した概要 **/
SOY Shopの非同期カートボタンプラグインに、商品追加時の視認性向上のため、吹き出し表示機能が追加されました。従来、縦長のページではカート投入後の変化が分かりづらいという課題がありました。今回のアップデートで、ボタン押下直後にカートの中身を表示する吹き出しが現れ、ユーザーは商品が正しくカートに追加されたことを確認できます。吹き出しの位置はボタンの座標から計算され、上部に表示されるよう設計されています。ただし、サンプル数が少ないため、表示の不具合発生時は連絡が推奨されています。プラグインのダウンロードと詳細はSOY CMSフォーラムで確認可能です。

 

SOY Shopの商品規格プラグインでセール価格の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品規格プラグインがアップデートされ、商品規格ごとにセール価格を設定できるようになった。従来の在庫数・価格設定に加え、セール価格も個別に設定可能。適用するには、親商品の詳細画面で「セール中」をチェックする必要がある。これにより、紐づく全ての規格にもセール価格が反映される。このアップデートにより、商品規格ごとに柔軟な価格設定が可能になり、販売戦略の幅が広がる。機能の詳細はSOY CMSフォーラムで確認できる。

 

SOY Shopのマイページでログインの有無でテンプレートを分ける機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページで、ログイン有無によるテンプレート切り替え機能が追加されました。従来はログイン前後で同じテンプレートを使用していましたが、ログイン前は1カラム、ログイン後は2カラムといったレイアウト変更の要望に応えるため、ログイン時に別のテンプレートを読み込む仕組みが実装されました。 具体的には、`mypage.html` というテンプレートを使用している場合、ログイン時は `mypage_no_login.html` と `mypage_no_login.ini` があればそちらが優先的に使用されます。これらのファイルは管理画面からは生成できず、手動でサーバーにアップロードする必要があります。機能の詳細はSOY CMSフォーラムとGitHubリポジトリで公開されています。

 

SOY Shopのメールビルダから出力される商品一覧に並び順設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのメールビルダープラグインに、注文メールの商品一覧の並び順設定機能が追加されました。 従来、自動出力される商品一覧の並び順は固定でしたが、このアップデートにより変更が可能になります。 メールビルダーの管理画面から、商品名、商品コード、数量、価格の各項目を昇順/降順に指定することで、希望の並び順で商品一覧を出力できます。 ダウンロードと詳細はSOY CMSフォーラムにて提供されています。 この機能により、注文メールの可読性向上や業務効率化に繋がります。

 

SOY Shopの納品書作成プラグインで初回購入の表示設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの納品書作成プラグインに、初回購入者識別機能が追加されました。管理画面で設定を有効化すると、初回購入者の納品書に「初回購入」と表示されます。この機能はプラグインだけでなく、SOY Shop本体にも変更が加えられています。利用するには、GitHub上の最新版(https://github.com/inunosinsi/soycms/tree/master/package/soyshop)をダウンロードする必要があります。

 

SOY Shopで初回登録時にメルマガ会員になるとポイントをプレゼントする機能を追加しました

/** Geminiが自動生成した概要 **/
SOY ShopのSOY Mail連携プラグインで、初回登録時にメルマガ会員になるとポイントプレゼントする機能が追加されました。プラグイン設定画面でポイント数を指定すると、カートとマイページの会員登録時に「メルマガ会員でポイントプレゼント」と表示され、登録完了後にポイントが付与されます。ポイントは顧客のポイント履歴に記録されます。この機能を利用するには、GitHubにある最新版SOY Shopをダウンロードする必要があります。

 

SOY Shopで購入回数属性自動振り分けプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopのメールマガジン機能では、購入回数による絞り込み送信ができないため、顧客属性を活用する必要がある。しかし、手動設定は顧客数が多いと手間がかかる。そこで、購入回数に応じて自動で属性を振り分けるプラグインが開発された。管理画面で回数と属性名を設定し、cronに自動更新スクリプトを登録すれば、顧客全員に自動で属性が設定される。このプラグインにより、購入回数に基づいたメール配信が可能になる。ダウンロードはSOY CMSフォーラムにて提供されている。

 

SOY Shopのクーポン自由設定プラグインで送料無料クーポンを発行できる様にしました

/** Geminiが自動生成した概要 **/
SOY Shopのクーポン自由設定プラグインに送料無料クーポン発行機能が追加されました。管理画面で「送料無料」にチェックを入れてクーポンを作成すると、カートで利用時に送料と同額が値引きされます。値引き額/率に加えて送料無料クーポンも発行可能になったことで、より柔軟なクーポン設定が可能になります。最新版はGitHub(https://github.com/inunosinsi/soycms/tree/master/package/soyshop)からダウンロードできます。

 

SOY CMSでインストーラを削除せずにいたらどうなるか?

/** Geminiが自動生成した概要 **/
SOY CMSのインストーラを削除しないと、再インストールが可能になり、サイトデータが消去される危険性がある。攻撃者は用意したデータベース情報で再インストールし、初期管理者権限を奪取できる。管理画面URLが判明していれば、インストーラ経由でサイトを初期化・乗っ取りが可能。他CMSでもインストーラが残っていれば同様の危険があるため、インストール後は必ず削除する必要がある。

 

SOY CMS/ShopでPHPモジュールに使用の制限を設けました

/** Geminiが自動生成した概要 **/
SOY CMS/Shopのセキュリティ強化のため、テンプレートエディタとPHPモジュールでのPHP実行に制限が加わりました。PHPの使用は、`user.config.php`で`SOYCMS_ALLOW_PHP_SCRIPT`を`true`にすることで許可されます。 PHPモジュールはさらに`SOYCMS_ALLOW_PHP_MODULE`を`true`にすることで利用可能になります。これらの設定により、テンプレートやモジュールでPHPコードの実行を制御し、セキュリティリスクを軽減します。アップデートはGitHubから入手可能です。

 

CMSに不正にログインした後、何をする?

/** Geminiが自動生成した概要 **/
ウェブサイトがサイバー攻撃の標的となる脆弱性を抱えているかを判断する方法が解説されています。攻撃者は古いバージョンのCMSや安全でないお問い合わせフォームなどを利用して不正アクセスを試みます。記事では、SOY CMSを例に、不正ログイン後に攻撃者が踏み台として悪用する具体的な手順と、その対策が示されています。具体的には、ファイルマネージャーからのPHPファイルアップロードの制限、フロントコントローラーの編集制限、そしてファイルパーミッションの変更による対策が紹介されています。攻撃者はウェブサイトのソースコード、ログインフォームのバージョン、お問い合わせフォームのHTTPS化などを確認することで攻撃対象を選定するため、これらの対策が重要となります。

 

SOY Shopの消費税別表示モジュールで税込通常価格と税込セール価格のタグを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの消費税別表示モジュールに、税込通常価格と税込セール価格を表示するタグが追加されました。これにより、セール価格がお得かどうかを税込価格で比較可能になります。 追加機能は、SOY CMSフォーラムかGitHubで公開されているパッケージからダウンロードできます。消費税別表示モジュールを使用しているユーザーは、税込価格表示で顧客に分かりやすい価格表示が可能になります。

 

SOY ShopにEC CUBE2.4系のログインチェックを導入しました

/** Geminiが自動生成した概要 **/
EC-CUBE2.4系からSOY Shopへの移行時に、顧客のパスワードをそのまま利用できるようログインチェック機能を導入。EC-CUBEとSOY Shopのパスワード暗号化方式の違いを考慮し、SOY Shop側でEC-CUBEの暗号方式を適用する処理を追加。暗号化パスワードにスラッシュの有無でEC-CUBEかSOY Shopかを判別。EC-CUBE2.4.4以前のバージョンに対応しており、顧客がパスワードを変更すればSOY Shopの方式に自動更新されるため、特別な切り替えは不要。将来的には2.11.1以降のバージョンにも対応予定。修正版はフォーラムまたはGitHubから入手可能。

 

SOY Shopで顧客属性を一括で設定できるページを作成してみた

/** Geminiが自動生成した概要 **/
SOY Shopの顧客属性を一括変更できる機能が追加されました。顧客一覧画面で対象顧客を選択し、追加したい属性値を入力して登録すれば、選択した顧客の属性に値が一括追加されます。また、削除したい属性にもチェックを入れて削除ボタンをクリックすれば、選択した顧客の属性値を一括削除できます。この機能はGitHub上のSOY Shopパッケージで利用可能です。

 

予約フォーム開発でSOY Shopのマイページを活用する

/** Geminiが自動生成した概要 **/
SOY Appで予約フォームに会員機能を追加する際、SOY Shopのマイページ機能を活用することで開発工数を削減できる。ログイン画面への遷移は、URLパラメータ`r`にリダイレクト先を指定することでログイン後に元の予約フォームへ戻れる。本記事では、会員登録後も同様に`r`パラメータでリダイレクト先を指定することで、登録完了後に予約フォームへ戻れるよう改良したパッケージをGitHubで公開している。この仕組を活用すれば、会員限定ページへのアクセス制御なども容易に実装できる。

 

EC CUBEからSOY Shopにデータベースを引っ越す

/** Geminiが自動生成した概要 **/
EC-CUBEの動作遅延に悩むユーザーが増加し、高速なSOY Shopへの移行ニーズが高まっている。そこでEC-CUBEからSOY Shopへのデータ移行プラグインが開発された。このプラグインはEC-CUBEのデータベースから直接データを読み込み、SOY Shop用に変換・挿入する。パスワードはセキュリティ上、ランダムに設定され、ユーザーには再設定を促すメルマガ送信が推奨される。EC-CUBE2系と3系のデータ移行実績があり、フォーラムで配布されている。

 

SOY Shopで非同期カートボタンプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopで非同期カートを実現するプラグインが開発されました。以前の記事で紹介された非同期カートボタンの実装方法では、特定IDの要素がない場合に動作が停止したり、カート追加時の商品個数が1に固定される問題がありました。このプラグインは、これらの問題を解決し、商品個数の指定も可能にします。インストールするだけで必要なスクリプトが自動挿入されるため、導入も簡単です。ダウンロードはsaitodev.co/soycms/soyshop/ から可能です。

 

SOY Shopで非同期で商品をカートに入れたい2

/** Geminiが自動生成した概要 **/
SOY Shopで商品を非同期にカートに追加するJavaScriptのカスタマイズ方法。カートの表示部分にIDを付与し、JavaScriptで非同期通信(XMLHttpRequest)を使ってカート情報を更新する。非同期通信に対応していないブラウザのために同期処理へのフォールバックと、タイムアウト時の処理も追加。さらに、ボタンの連打防止策として実行中フラグを用いて多重リクエストを防いでいる。これらの機能をプラグイン化することも検討中。

 

SOY Shopで非同期で商品をカートに入れたい1

/** Geminiが自動生成した概要 **/
SOY Shopで非同期に商品をカートに入れる方法を解説。Ajaxを用いて、カートボタンクリック時にページ遷移なしでカートに追加する。まず、JavaScriptでカート操作URLへの非同期通信を行う関数を定義。次に、カートボタンのHTMLを書き換え、この関数を実行するように変更する。これによりカートへの追加自体は非同期で行われるが、画面上のカート情報は更新されない。次回、この点を改善し、カート追加をユーザーに分かりやすく表示する方法を解説予定。

 

SOY Shopで高度な検索フォームを設置してみよう

/** Geminiが自動生成した概要 **/
SOY Shop用のプラグイン「カスタムサーチフィールド」の紹介。このプラグインは、高度な検索フォームをサイトに簡単に設置できる。カスタムフィールドのように項目を追加し、生成されたタグを貼り付けるだけでフォームが表示される。商品カタログサイトでの活用が想定され、複数選択可能なチェックボックスフィールドをタグのように使う事例もある。カスタムフィールドからのデータ移行も可能。プラグインはsaitodev.co/soycms/soyshop/ からダウンロードできる。

 

SOY Shopでキャンペーンプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のキャンペーンプラグインが開発されました。管理画面でブログのようにキャンペーンコンテンツを作成・編集し、公開期間を設定できます。自動バックアップ機能も搭載。トップページやフリーページ、マイページ、カートページなど、表示場所を自由に指定可能です。キャンペーン詳細は専用のページに表示されます。利用にはSOY Shop 1.17.3p7.3以降、SOY CMS 1.8.12p7.6以降が必要です。GitHubからパッケージを入手できます。意見・要望はフォーラムへ。

 

SOY Shopの商品一覧ページでカスタムフィールドの値で商品の並び替え

/** Geminiが自動生成した概要 **/
SOY Shopのソートボタン設置プラグインでカスタムフィールドの値によるソートが可能になりました。商品カスタムフィールドの「高度な設定」で「ソートに使用する」にチェックを入れると、プラグイン管理画面にソート用タグが表示されます。このタグを商品一覧ページテンプレートに貼り付けることで、カスタムフィールド値に基づくソートボタンが設置できます。機能はsoyshop_1.17.3p7.2.zip以降のパッケージか、フォーラムの修正ファイルで利用可能です。

 

Webデザイナー向けのSOY CMSとSOY Shopのユーザ会を行いました

/** Geminiが自動生成した概要 **/
大阪でWebデザイナー向けにSOY CMS/Shopの勉強会が開催されました。主催のアップライン株式会社のご厚意で会場を提供いただき、SOY CMSのインストール時の注意点と開発者向け隠し機能の活用方法について講演しました。

 

土壌分析アプリsoil2 by Go

/** Geminiが自動生成した概要 **/
Go言語で開発された土壌分析Webアプリ「soil2」の紹介。 入力された土壌分析値をグラフ化し、将来的にはサードパーティアプリとの連携も視野に入れている。Go言語採用理由は、コンパイル言語のためサーバー環境によるコード変更の手間を省き、処理速度の向上も見込めるため。REST APIと管理者機能を実装し、グラフ表示にはChart.jsを使用。当初は身内向け公開予定だったが、最終的にはSOY Shopのマイページ機能に統合された。

 

SOY Shopの商品レビュープラグインでレビュー投稿時にポイントを付与

/** Geminiが自動生成した概要 **/
SOY Shopの商品レビュープラグインに、レビュー投稿時にポイントを付与する機能が追加されました。 プラグイン設定画面で付与ポイント数を指定し、簡易ポイント制設定プラグインと併用することで、レビュー投稿時にユーザーにポイントが付与されます。ポイントはレビューが公開されたタイミングで付与され、誹謗中傷対策として、管理画面でレビューを承認後に公開する設定も可能です。この機能を含むパッケージはsaitodev.coからダウンロードできます。また、以前の改修では、スパム対策としてCAPTCHAも追加されています。

 

SOY CMSのカテゴリページでカテゴリごとに画像の出し分けを行う

/** Geminiが自動生成した概要 **/
SOY CMSのブログカテゴリページで、カテゴリごとに画像や文章を出し分ける方法を紹介します。各カテゴリページに異なるコンテンツを表示するには、モジュール機能を活用します。モジュール内にPHPコードを記述し、`$htmlObj->mode == "_category_"`でカテゴリページかどうかを判断、`$htmlObj->label->getCaption()`で現在のカテゴリ名を取得します。switch文でカテゴリ名ごとにcaseを追加し、それぞれに表示したいHTMLをechoで出力します。モジュールタグ(`<!-- cms:module="モジュール名" -->`)をテンプレートに挿入すれば完了です。HTMLコメントタグで記述されるため、テンプレートをPHPで汚染しません。

 

大阪の北浜でSOY Shopの勉強会を行いました

/** Geminiが自動生成した概要 **/
大阪北浜のレンタルスペース「SPINNING NAKANOSHIMA」にてSOY Shopの勉強会を開催。SOY Shopでサイト構築する際の初期設定、特にSOY CMSとの連携に焦点を当てた内容を実施。ネットショップ運営と並行したブログでの商品紹介、ブログ新着情報のショップ側表示など、具体的な構築方法や運用事例を紹介した。

 

SOY Shopでログインしているお客様へポイントの使用期限を表示する

/** Geminiが自動生成した概要 **/
SOY Shopでログイン中のお客様にポイント残高と使用期限を表示するモジュール作成方法を紹介。モジュールID「parts.point_limit」を作成し、提供されたPHPコードを記述することで実現。コードは、ログイン状態、ポイントプラグインの有効性を確認後、ユーザー情報を取得し、ポイント残高と使用期限を表示。期限切れや無期限の場合の表示も追加可能。コードにはコメントが添えられており、カスタマイズのヒントも提供。ポイントはログインユーザーのみに表示され、未ログイン時は何も表示されない。より詳細なカスタマイズや機能要望は問い合わせフォームから。

 

SOY Shopで商品詳細ページの下に同じカテゴリの商品一覧を表示する

/** Geminiが自動生成した概要 **/
SOY Shopの商品詳細ページ下部に、同カテゴリ商品一覧を表示する方法を解説。 パーツモジュールを追加し、IDを「parts.item_list」、モジュール名を「商品一覧モジュール」とする。 モジュール内では、商品詳細ページの場合のみ、表示商品のカテゴリIDを取得し、DAOで同カテゴリの公開商品を取得、`SOYShop_ItemListComponent`を用いて商品一覧ブロックを生成する。 商品詳細テンプレートに`shop:module="parts.item_list"`を記述し、内部に`block:id="item_list_by_detail"`と商品表示用のcms:idを記述することで、一覧表示を実現する。 カート追加機能も確認済。 パーツモジュールを活用すれば、簡単なプラグイン機能を開発可能。

 

SOY CMSの常時SSL化で対応したこと

/** Geminiが自動生成した概要 **/
さくらインターネットの共有サーバーでSOY CMSを常時SSL化するために実施した手順を紹介。画像パスの修正、SNI SSL対応、リダイレクト設定、サイトURLの変更、サイトマップ作成とSearch Console登録を行った。画像パスは絶対パスに変更し、SNI SSLのためにSOY CMS本体のコードを修正。リダイレクトはindex.phpに記述、サイトURLもhttpsに変更した。最後にサイトマップを作成しSearch Consoleへ登録。SOY Shopの場合は別途対応が必要。

 

SOY Shopで商品カテゴリの一括設定

/** Geminiが自動生成した概要 **/
SOY Shopで商品数が増えると、CSVでのカテゴリ編集が困難になる。特にカスタムフィールドを多用するとCSVファイルが肥大化し、作業効率が低下する。複数カテゴリ設定もSOY Shopでは非対応。 そこで、商品一覧画面で複数商品を選択し、一括でカテゴリを設定・変更・解除できる機能が開発された。このシンプルな機能追加により、カテゴリ分け作業が大幅に効率化される。ダウンロードはSOY CMSフォーラムにて提供されている。

 

そもそもSOY CMSを使っていると特定されないために

/** Geminiが自動生成した概要 **/
SOY CMS使用の痕跡を隠す方法を紹介。404 Not FoundページはCMS、ショップ共にデザイン変更可能。ブログ記事URLも設定で変更できる。お問い合わせフォームはCMSスタイルシートを停止すればSOY Inquiryタグは消える。ただし、フォーム設置プラグイン使用時はSOY CMS特有の文字列がソースコードに残るため、完全な隠蔽は難しい。

 

SOY CMSであれば、管理画面のURLを特定したい

/** Geminiが自動生成した概要 **/
SOY CMSの管理画面URLは`/cms/admin/`が一般的だが、変更可能。そのため、攻撃者は`/soy/admin/`なども試す。管理画面URLを`/c!_m-s/admin/`のように複雑にするのが安全。既存サイトで`/cms/admin/`を使っている場合は、`cms`ディレクトリ名を変更し、`cms`フォルダ内、`index.php`、`shop/index.php`、`site/index.php`内のパスを修正することで変更できる。さらに、Basic認証やIP制限を追加すればより安全。

 

Webでの肥料の販売の開始です

/** Geminiが自動生成した概要 **/
京都農販のWebサイトが公開されました。SOY Shopで構築されたこのサイトは、現在は商品カタログですが、将来的にはネットショップとして運用予定です。開発者はSOY Shopに5年間携わっており、そのノウハウを活かし、特に商品詳細ページに注力しています。商品情報に加え、「この肥料を使うために、これは知っておきたい!」セクションでは、SOY CMSで作成した関連コラム記事を自動表示。肥料の使用方法や実際の栽培事例を学ぶことができます。これにより、ショップ管理者は商品情報に集中し、営業担当者はブログ投稿でサイトを盛り上げることが可能になります。スマホ対応も実装済みです。今後はコンテンツ拡充に注力していきます。

 

Golangのsessionの取り扱いの際の型で苦戦した

/** Geminiが自動生成した概要 **/
Go言語でgorilla/sessionsを使ってセッションを扱う際、セッションから取得した値の型がinterface{}となり、string型の構造体フィールドに代入できない問題が発生した。ログ出力ではstring型に見えたが、構造体への代入時に型エラーが発生。stringへの型アサーションを試みても解決せず、最終的に構造体のフィールド型をinterface{}に変更することで回避した。セッション値取得時の動的な型定義と構造体の静的な型チェックの不一致が原因と考えられる。より良い解決策を模索中。

 

ヨガスタジオCORE様サイトの予約管理アプリを開発しました

/** Geminiが自動生成した概要 **/
池田・川西・箕面・北摂の空中ヨガスタジオCORE様の予約管理アプリを開発。SOY ShopとSOY Calendarをベースに、複数インストラクター・レッスンの登録、会員による予約状況確認・予約機能を実現。会員管理はSOY Shopの顧客管理機能を活用し、ネットショップ展開やSOY Mail連携によるメルマガ配信も容易に実現可能。少ない労力で多様なニーズに対応できる設計となっている。予約ページは https://ys-core.com/schedule/ 。

 

SOY ShopでGoogle+の投稿ウィジェットを作成してみた

/** Geminiが自動生成した概要 **/
SOY ShopでGoogle+の投稿を表示するウィジェットを作成する方法を紹介しています。Google+は投稿表示ウィジェットを公式に提供していないため、自作する必要があります。 SOY Shopのパーツモジュール機能を利用し、PHPで記述することで実現しました。`http://rss2lj.net/g+/{Google+ID}` からGoogle+の投稿をXML形式で取得し、PHPの`simplexml_load_file()`関数で解析、整形して表示します。具体的には、日付とタイトル、リンクを取得し、リスト形式で5件まで表示する処理を実装しています。

 

SOY Shopで商品規格毎に在庫数と価格を設定する

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

 

さくらのレンタルサーバでSOY Shopをバージョンアップしたら画面が真っ白になった時の対処

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

 

SOY Shopにステップメールを追加してみた

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

 

SOY Shopの商品レビュープラグインにCAPTCHAを追加

/** Geminiが自動生成した概要 **/
SOY Shopの商品レビュープラグインに、スパム対策としてCAPTCHA機能が追加されました。GDライブラリを利用した画像認証タイプで、GDが利用できない環境ではキーワード入力方式に切り替え可能です。 この機能はSOY CMSフォーラムからダウンロードできます。スパム投稿に悩まされているユーザーは導入を検討すると良いでしょう。

 

SOY Shopでセール販売期間設定を追加

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

 

SOY Shopで販売期間設定を追加

/** Geminiが自動生成した概要 **/
SOY Shopの販売終了商品の管理画面操作忘れを防止するため、販売期間設定機能が追加された。商品は登録画面でカレンダーから販売開始・終了日時を設定可能になり、期間外は注文エラーとなる。 従来のカート非表示プラグインは手動操作が必要だったが、この機能により自動で販売制御が行える。販売期間開始前も同様に注文が制御される。ダウンロードはSOY CMSフォーラムから可能。

 

SOY CMSでどのページでも使えるブログのサイドバーを作ってみた

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


Powered by SOY CMS   ↑トップへ