コンテンツにスキップ

セット商品プラグイン

目的

  • 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)は無効化してください。