/** Geminiが自動生成した概要 **/
SOY Shopと荷物の追跡サービスTrackingmoreを連携するプラグインが作成されました。このプラグインにより、代行倉庫サービスを利用して出荷された商品の発送状況をリアルタイムで確認できるようになります。ただし、現時点では連続でAPIを叩く制限があるため、トラッキング件数の制限や実行間隔の調整が必要です。今後、Webhookを使用した配送状況確認機能が追加される予定です。この機能により、サーバのリソース占有が軽減されることが期待されています。利用に際しては、課題点に留意してください。
カテゴリー : SOY_Shop/page-3
SOY ShopでTrackingmore連携を試作中
SOY Shop内でパイプハウスの施工管理アプリを開発しました
/** Geminiが自動生成した概要 **/
SOY Shopの在庫管理機能と管理画面からの注文登録機能を拡張し、パイプハウスの見積書作成アプリを開発。従来のエクセル管理では、膨大な部品の仕入れ値確認に時間と手間がかかっていたが、新アプリでは商品登録時に仕入れ値を記録することで、次回以降の見積書作成時の再確認作業を大幅に削減。商品名検索によるカート追加や、検索結果にない場合の即時商品登録機能も実装。さらに、見積書の商品一覧の並び替え機能、注文内容の自動バックアップ機能も追加することで、作業効率と正確性を向上。これらの機能はパイプハウス以外にも応用可能で、既存のネットショップ運営における経費削減にも貢献する。開発したパッケージは専用サイトからダウンロード可能。
SOY Shopで返金管理プラグインを作成しました
/** Geminiが自動生成した概要 **/
SOY Shop向け返金管理プラグインが開発されました。注文詳細画面から返金・増額の振込額や銀行口座情報を登録可能になり、管理画面の注文一覧検索で返金関連情報による絞り込み検索もできるようになりました。 プラグインはsaitodev.coからダウンロードできます。このプラグインは、注文毎のキャンセルや変更に伴う返金・増額を記録し、処理状況を追跡する機能を提供します。注文状態に「返金処理待ち」ステータスも追加され、より詳細な注文管理が可能になります。 これは、既存の注文検索フォーム拡張ポイントと注文状態・支払状況フラグ追加拡張ポイントを利用して実現されています。
SOY CMSで記事のCSVエクスポート・インポートを作成しました
/** Geminiが自動生成した概要 **/
SOY CMS開発秘話前編は、創業期の資金難の中、受託開発で得たノウハウを活かし、低価格で高機能なCMSを開発しようと奮闘する様子を描いています。開発当初はPHPの知識も乏しく、試行錯誤しながらコードを書き進め、徹夜作業も当たり前でした。クライアントワークで培った「使いやすさ」へのこだわりは強く、ユーザーインターフェースにも注力。限られたリソースの中、機能と使いやすさのバランスを追求しながら、徐々にSOY CMSの原型が形作られていきました。オープンソース化を目指し、試用版配布でユーザーを獲得していく戦略も、資金力に乏しい状況を打破するための工夫でした。
SOY Shopの注文詳細の編集で代金合計に含む項目を追加できるようにしました
/** Geminiが自動生成した概要 **/
SOY Shopの注文詳細編集機能に、代金合計に含めるかどうかのチェックボックスを追加しました。これにより、内税のように明細には表示するものの、合計額には含まない項目を指定できます。ただし、注文詳細表示ではどの項目が合計額に含まれているかわかりにくいという課題があります。今後、わかりやすい表示方法の検討が進められます。
SOY2HTMLでリンクを出力する - HTMLLink編
/** Geminiが自動生成した概要 **/
SOY2HTMLのHTMLLinkクラスは、PHPでリンクを生成するためのクラスです。`text`属性でリンクテキストを、`link`属性でhref値を設定します。`SOY2PageController::createLink()`を使うと、管理画面のURLを簡単に生成できます。HTMLには`<a soy:id="detail_link"></a>`と記述します。HTMLActionLinkクラスはHTMLLinkを継承し、URLにトークンを付与することでセキュリティを強化します。`soy2_check_token`と併用し、URL直打ちを防止します。
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でセレクトボックスを設置する - HTMLSelect編
/** Geminiが自動生成した概要 **/
SOY2HTMLのHTMLSelectクラスは、HTMLのセレクトボックスを生成する。`$this->addSelect()`で利用し、オプションは第二引数の配列で指定する。 `options`キーに配列を渡すとoptionタグが生成され、連想配列でない場合はvalue属性が設定されない。`indexOrder`をtrueにすると、数値インデックスがvalue属性となる。`selected`キーで選択状態を指定、複数選択には配列で渡す。多重配列でoptgroupも作成可能。`each`キーで各optionタグに属性を追加できる。
SOY2HTMLでラジオボタンやチェックボックスを設置する - HTMLCheckBox編
/** Geminiが自動生成した概要 **/
SOY2HTMLでラジオボタンとチェックボックスを設置する方法を解説。HTMLCheckBoxクラスを用い、PHP側で`addCheckBox`メソッドを使い、HTML側で`<input type="(radio|checkbox)" soy:id="id名">`を記述する。`addCheckBox`の第二引数配列には、name, value, selected(チェック状態), label(ラベルテキスト)を指定する。ラジオボタンはnameを共通にすることでグループ化される。チェックボックスは単独で動作する。HTMLCheckBoxクラスはHTMLInputを継承し、labelタグを自動生成する機能を持つ。`isBoolean`をtrueに設定すると、値が未送信の場合に備えてhiddenで値0を送信する。
SOY2HTMLでテキストエリアを設置する - HTMLTextArea編
/** Geminiが自動生成した概要 **/
HTMLTextAreaクラスは、テキストエリア要素を生成します。name属性とテキストの内容を指定し、その内容をinnerTextとしてレンダリングします。getTextメソッドはテキストの内容を取得し、オブジェクトを取得するオブジェクトメソッドはHTMLエスケープされたテキストを改行で囲んで返します。
SOY2HTMLでテキストフォームを設置する - HTMLInput編
/** Geminiが自動生成した概要 **/
SOY2HTMLを使用してテキストフォームを作成する方法を説明します。`HTMLInput`クラスを利用して、フォームにテキストフォームを追加できます。`addInput()`メソッドを使用して、フォーム要素のnameとvalue属性を設定します。これにより、PHPの記述混入を回避しつつ、デザインを崩さずにHTMLファイルを直接表示できます。テキストフォームの実際のコードは、`HTMLFormElement`クラスを継承した`HTMLInput`クラスで定義されています。
SOY Shopの各種プラグインの設定を保存する方法
/** Geminiが自動生成した概要 **/
SOY Shopのプラグイン設定を保存するには、SOYShop_DataSetsクラスのputメソッドを使用します。キーバリューストアのようにデータを保存でき、配列もシリアライズして文字列として保存できます。データの取得はgetメソッドで行い、指定したキーに対応する値を取り出します。第二引数で値がなかった場合の代替値を指定することも可能です。
SOY2HTMLでセキュアなフォームを設置する - HTMLForm編
/** Geminiが自動生成した概要 **/
HTMLFormクラスは、HTMLのフォーム要素を生成するためのコンポーネントです。formタグを生成し、メソッド(デフォルトはPOST)やアクション、ターゲットなどの属性を設定できます。POSTメソッドの場合、CSRF対策としてsoy2_tokenという隠しフィールドを自動的に追加します。アクションが指定されていない場合は、現在のリクエストURIがアクションとして設定されます。また、JavaScriptのonSubmitイベントを設定することも可能です。disabled属性の設定も可能です。
プラグイン毎に詳細画面を持たせる拡張ポイント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パラメータを追加してリダイレクトする際に使用します。
プラグイン毎の詳細画面へのリンクの拡張ポイント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")`のように指定することで、注文ステータスが「発送済み」の注文一覧ページへのリンクを生成できます。
SOY2HTMLでsoy:idを作る - HTMLLabel編
/** Geminiが自動生成した概要 **/
SOY2HTMLでPHPの処理結果をHTMLに表示するには、`soy:id`を利用します。PHP側では`addLabel`メソッドを使い、`soy:id`と同じ名前を第一引数、表示する値を`text`か`html`プロパティに設定した配列を第二引数に渡します。`text`は文字列をエンコードし、`html`はHTMLタグをそのまま出力します。`addLabel`は`createAdd`メソッドの簡略形で、本来は第二引数に`HTMLLabel`クラスを指定します。`soy2prefix`を指定すれば`soy:`部分を変更できます。
管理画面の新着に項目を追加する拡張ポイントsoyshop.admin.top.php
/** Geminiが自動生成した概要 **/
SOY Shop管理画面の新着に項目を追加できる拡張ポイント「soyshop.admin.top.php」について解説。インターフェースには、表示可否を制御する`allowDisplay`、タイトルを設定する`getTitle`、コンテンツを設定する`getContent`、リンクURLを設定する`getLink`、リンクテキストを設定する`getLinkTitle`のメソッドが存在する。各メソッドの出力箇所は画像で示され、ショップ情報表示プラグインを例に挙げて説明。`getLink`でURLを指定すると、`getLinkTitle`のテキストがリンク化される。
SOY2HTMLで処理とデザインを切り分ける
/** Geminiが自動生成した概要 **/
SOY CMS/Shopのモジュール内でSQLを実行するには、SOY2DAOを利用します。データベースへの接続情報はSOYShop_DataSetsクラスで管理されており、`getDataSourceName()`でデータソース名、`getDatabaseUserName()`でユーザー名、`getDatabasePassword()`でパスワードを取得できます。データベースに接続するには、`SOY2DAOFactory::create("データソース名")`を使用します。createメソッドの引数は省略可能で、省略した場合はshopデータベースに接続します。SQLを実行するには、`query()`、`executeQuery()`、`execute()`メソッドを使用します。これらのメソッドは、`SOY2DAO`クラスのインスタンスメソッドとして呼び出します。
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の開発秘話前編
/** 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のマイページで注文編集プラグインに商品の削除機能が追加されました。以前は商品追加のみでしたが、今回のアップデートで注文詳細編集画面から商品の削除が可能になりました。削除したい商品を選択し、削除ボタンを押すことで注文から商品を除外できます。変更内容を保存すると、お客様とショップ管理者に変更通知メールが送信され、管理画面の新着にも反映されます。これにより、顧客はコールセンターに連絡することなく、マイページ上で注文内容の変更をより柔軟に行えるようになりました。ただし、商品削除に伴う金額変更など、クレジット決済への対応は今後の開発課題となっています。完全な注文編集機能の実現に向けて開発は継続中です。
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からダウンロードできます。
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 Shopで会員検索サイトを構築しました
/** Geminiが自動生成した概要 **/
SOY Shopの顧客管理機能を活用し、新潟県司法書士会の会員検索サイトを構築。標準機能とプラグイン(ユーザーカスタムサーチフィールド、顧客グループ、顧客住所GoogleMaps連携、ストレージ)を組み合わせ、簡裁代理権などのカスタム項目や事務所情報、地図連携を実現。管理画面は不要な注文・商品関連機能を非表示化し、会員管理に最適化。カート・マイページ機能も無効化。都道府県の標準設定を新潟県に設定するなど、ユーザビリティも向上。構築手順を紹介しつつ、検索結果・詳細ページ作成については問い合わせを促している。