FROM CACHE - jp_header
このコミュニティはピアツーピアサポートに移行しました。Shopify サポートは今後、このコミュニティへのサービスを提供いたしません。これからもぜひ、他のマーチャントやパートナーとつながり、サポートし合い、経験を共有してください。 当社の行動規範に違反する行動や削除を希望するコンテンツがありましたら、引き続きご報告ください

shopifyflowで3SKU以上の注文が発生した場合に注文タグを付ける方法について

shopifyflowで3SKU以上の注文が発生した場合に注文タグを付ける方法について

nr7
Shopify Partner
3 0 0

shopifyflowにて、1つの注文で3SKU以上の商品の注文が発生した場合に、

注文タグ「3点以上の購入」などのタグを付ける方法についてご存知の方いらっしゃいますでしょうか。

 

「3SKU以上の商品の注文が発生」という条件の設定ができず、苦戦しています。

※1注文で商品点数が3点以上ではないです。

例)商品Aを2点、商品Bを1点購入した際にはタグは不要。

商品Aを1点、商品Bを1点、商品Cを1点など、3種類以上の注文のみに付与したい。

4件の返信4

Jizo_Inagaki
Shopify Partner
1136 415 723

恐らく以下のような感じで対応できるのではと思います。

 

■方法1

  1. Order createdトリガー → Add order tagsアクションを設置
  2. Add order tagsアクション内で、lineitemからskuを取り出して配列にし、uniqフィルターで重複は排除
  3. 重複を排除した配列にsizeフィルターで要素数を取得し、if文でタグを出し分ける

ご希望の形そのままではなく、「3以上」「3未満」のどちらかのタグを付与する形です。

この形であれば Add order tagsアクション単体で対応できます。

 

Shopifyの配列の作り方は検索でいろいろ情報が出てきますのでそれらを参考にされるとよいかと思います。

sizeやuniqフィルターも同様ですが、ドキュメントとしては以下が該当します。

https://shopify.dev/docs/api/liquid/filters/uniq

https://shopify.dev/docs/api/liquid/filters/size

 

 

■方法2

  1. 事前に注文にSKU数を保存するメタフィールドを作成しておく
  2. Order createdトリガー → Update order metafieldアクションを設置し、前述のメタフィールドを選択
  3. lineitemからskuを取り出して配列にし、uniqフィルターで重複は排除
  4. 重複を排除した配列にsizeフィルターで要素数を取得し保存
  5. ConditionでSKU数を保存したメタフィールドを選び、Add order tagsアクションを実行

上記は試作していないので実際に動作するか確証はありませんが、一旦どこかにSKU数を保存しないとConditionによる分岐は実行できないのではと思います。

 

 

以上ですが、SKUを配列に入れてuniqフィルターを用いればどうにかなるので、その辺りを主軸に検討すると良いかなと思います。

 

Jizo_Inagaki | フリーランスのwebデザイナー
- テーマのカスタム承れます。
- 記載した回答で解決できましたらベストソリューションの承認をお願いします。
- DMや指名による対応はご依頼として有料でのみ承ります。
nr7
Shopify Partner
3 0 0

 Jizo_Inagaki様

 

ご享受いただきありがとうございます!

 

しかしながら、当方Liquidの知識がまったくなく色々調べても書き方が検討もつきませんでした...

そこでチャットGPTの力をかりて方法1で試すべく以下のようなタグを出してもらいました。

しかしエラーでタグ自体を登録できず、「「line_items」は無効です。この変数を置き換えてください。」とのエラーとなってしまいました。

 

あと一歩のところまできているのかどうかもわからない状況なのですが、、、、

もし直せる部分の検討がつくようでしたら大変恐縮ですがご享受いただくことは可能でしょうか。

 

{% assign skus = "" %}
{% for item in line_items %}
  {% assign skus = skus | append: item.sku | append: "," %}
{% endfor %}

{% assign sku_array = skus | split: "," | uniq %}
{% assign sku_count = sku_array | size %}

{% if sku_count < 3 %}
  {% assign order_tags = order_tags | append: "3未満" %}
{% else %}
  {% assign order_tags = order_tags | append: "3種類以上の注文" %}
{% endif %}

 

フローとしては以下のように作成しております。

 

nr7_0-1717071560009.png

 

Jizo_Inagaki
Shopify Partner
1136 415 723

個人的な理由に基づきますが状況的に無料対応は難しく詳細な回答ができかねる点をご了承ください。

 

とりあえずパッとみた感じでは以下あたりに注意いただければどうにかなるかできるのではと思います。

 

 

以上です。

回答は以上となりますので、このまま他の方の回答を待たれるか、エキスパートやパートナーに依頼されることをお勧めします。

または回答が得られるかわかりませんがShopifyサポートに質問することも検討できるかもしれません。

Jizo_Inagaki | フリーランスのwebデザイナー
- テーマのカスタム承れます。
- 記載した回答で解決できましたらベストソリューションの承認をお願いします。
- DMや指名による対応はご依頼として有料でのみ承ります。
nr7
Shopify Partner
3 0 0

 Jizo_Inagaki様

 

アドバイスありがとうございます。

頂いた情報を元に再度できないか確認させていただきます。

 

無理なお願いをしてしまい大変お手数おかけいたしました。

ありがとうございました。