バリエーションの一つが注文されたら、全バリエーションを在庫切れとしたい

Topic summary

課題: バリエーション商品の1つが購入された際、他のバリエーションも自動的に在庫切れにしたい(例:色違いの赤/青/黄のうち、赤が購入されたら青と黄も在庫切れにする)。

提案された解決策:

  1. Shopify Flowを使用した方法

    • 在庫を0にするのではなく、注文された商品の販売チャンネルを全て無効化して非表示にする
    • 商品タイトルで検索するため、同名商品があると巻き込まれる可能性がある
    • バリエーション数だけHide Productが実行されるため非効率
    • フロー:Order Created → Get product data → For each → Hide Product
  2. 商品構造の変更(推奨)

    • 「色」をバリエーションではなくLine item propertyで管理
    • 商品自体はバリエーションを持たない構造にする
    • Shopify Flowが不要になり管理が簡単
    • 実装にはLiquid/HTMLの知識とコードカスタマイズが必要
    • Shopifyアプリ(有料含む)の利用も選択肢

結果: 質問者は提案された方法を参考にする意向を示した。

Summarized with AI on November 14. AI used: claude-sonnet-4-5-20250929.

商品のバリエーションを登録し

そのうちの1つが購入されたら

他のバリエーションも在庫切れと設定はできないでしょうか?

例)

商品A

バリエーション 色:赤/青/黄

※各在庫1で設定

商品A 赤 を購入

商品A 青/黄 も赤が購入された時点で在庫切れ扱いとする

shopifyflowでできないか試してみましたが、トリガーがわからず苦戦しています・・・。

@tatsuki_ttt

ご要望を完全に叶えるFlowは考えつきませんでした。

しかし、条件の変更と精度の劣化が許容いただけるなら下記で可能です。

上記で、下記のようになります。

  • 在庫を0にするのではなく、注文に含まれる商品の販売チャンネルを全て無効化し、非表示にします。
  • 注文に含まれる商品の検索を「商品のタイトル」で行っているため、タイトルが同じ商品が存在すると、巻き込まれてその商品も非表示になります。

[フローの流れ]

  1. Order Created
  2. Get product data で、order.lineitems.product.titleを元に、商品を検索
  3. For each で、繰り返し処理
  4. Hide Product で、その商品の販売チャンネルを全て無効化。

上記のうち、Get product dataについては、下図のようにします。

  • Maximum number of products を最大数の100に設定。
  • クエリは「高度なクエリ」を選択し、下記を入力。
{%- for lineItems_item in order.lineItems -%}
(title:{{lineItems_item.product.title}}) {% unless forloop.last %}OR {% endunless %}
{%- endfor -%}

このやり方ですと、商品のバリエーションの数だけ、Hide Productが実行されてしまうのが、非常に無駄なのですが、実行に問題はないので、一旦、このままご提示させていただきました。

(クエリの書き方を工夫すれば、そうならないようにもできるはずです。)

ご要望通りの結果にはなりませんので、これでは問題があるようでしたらスルーしてください。

ご参考まで。

(キュー田辺)

1 Like

ありがとうございます!

実際に操作してみて、商品が非表示になりました。

他対応方法が見つからなければ、こちらを参考にさせていただきたいと思います。

ご丁寧に教えていただきありがとうございます!

@tatsuki_ttt

商品の扱い方、そのものを変更する、というのも良いかもしれません。

現在、「色」でバリエーションを作成されていますが、

「色」をLine item propertyで管理し、

商品自体はバリエーションを持たないようにすれば、

Shopify Flowを組む必要もなく管理が簡単です。

Line item propertyについては下記のブログをお読みにいただくのが良いです。

https://www.shopify.com/jp/blog/partner-shopify-theme-customize-cart-attributes-line-item-property-customer-note

コードカスタマイズが必要ですが、

HTML, Liquidの知識があれば、

それほど難しくはありません。

Shopifyアプリも多数ありますが、

例: https://apps.shopify.com/custom-options?locale=ja

有料のものしかないかもしれません。

(キュー田辺)

1 Like