セット商品プラグイン¶
目的¶
- SMILE からインポートされる通常商品(商品コード=SKU)をベースにしつつ、Vendure 側で セット商品 を定義できるようにします。
- 顧客(Storefront・帳票)には 「セット商品×数量」 として見せます。
- 内部的には 構成品(商品コード=SKU)へ分解して扱い、在庫減算・購入制限判定・SMILE 連携出力を行います。
データモデル(Vendure)¶
- セット商品の定義は、商品バリアント(ProductVariant)のカスタムフィールド
setComponentsに保存します。 setComponentsは JSON 文字列で、以下の形式を想定します(管理画面から自動生成されます)。
{
"components": [
{ "productCode": "00030048", "quantity": 2 },
{ "productCode": "00010001", "quantity": 1 }
]
}
用語:
productCode: 構成品の 商品コード(=SKU)quantity: セット 1 つあたりの構成数量(整数)
挙動(Shop / 顧客に見える世界)¶
- カート、注文完了、購入履歴、注文メール、帳票では セット親の行のみ を表示します。
- 在庫は 構成品側 で引き当て/減算します(セット親は在庫追跡を行いません)。
- 購入制限(例: 上限、最小数量など)は、単体購入数量 + セット構成品としての数量 を合算して判定します。
SMILE 連携出力¶
- SMILE への出力は 構成品の行のみ(A+B+C)を出力し、セット情報は出力しません。
セット商品構成の編集(Vendure Dashboard)¶
商品バリアント詳細画面に 「セット商品構成」ブロックを追加しています。
- 構成品は SKU/名称で検索して追加できます。
- 構成数量を入力して保存すると、
customFields.setComponentsが更新されます。 - セット商品は、在庫を構成品で管理する前提のため、在庫追跡(trackInventory)は無効化してください。