Liquid、JavaScriptなどに関する質問
Product Variantにメタフィールドをつくって商品上代を登録しているので、
Orderが入った際にValiantからメタフィールドのvalueを参照し、
各行の商品数量×上代(メタフィールドvalue)を出して合計値を算出したいのですがうまくいきません。
現在記述のliquidは下記となります。
{% assign total_price = 0 %}
{% for fulfillmentLineItems_item in fulfillment.fulfillmentLineItems %}
{% for metafields_item in fulfillmentLineItems_item.lineItem.variant.metafields %}
{% assign total_price = total_price | plus:metafields_item.value | times:fulfillmentLineItems_item.lineItem.currentQuantity %}
{% endfor %}
{% endfor %}
{{ total_price }}
全て上代が同じ15,500円と仮定し下記のように注文が入ったとします。
商品Valiant A:1点
商品Valiant B:2点
商品Valiant C:2点
商品Valiant D:2点
商品Valiant E:2点
商品Valiant F:1点
すると先述のliquidの記述では合計値が728,500円となってしまいます。
正しくは155,000円のはずです。
恐らく、 各行での計算ではなく先に計算した行に更に掛け算をされているようです。
※商品Valiant B~Eで3点→6点→12点→24点と増加していっています。
正しく出すにはどのようにすればよろしいでしょうか?
お力添えいただけると幸いです。
解決済! ベストソリューションを見る。
成功
質問拝見しました。
コードを拝見してtotal_price を更新する際に、plus ではなく times を使用する必要があルカと思われます。また、total_price の初期値は、各商品の数量と上代を掛け合わせた値を合計するために使用する必要があります!
以上のこと修正したコードが下記になりますので一度お試しいただけたらと思います!
{% assign total_price = 0 %}
{% for fulfillmentLineItems_item in fulfillment.fulfillmentLineItems %}
{% for metafields_item in fulfillmentLineItems_item.lineItem.variant.metafields %}
{% if metafields_item.key == '上代' %} {# 上代部分にメタフィールドのキーを適切なものをいれる #}
{% assign unit_price = metafields_item.value | times: 1 %}
{% assign total_price = total_price | plus: (unit_price | times: fulfillmentLineItems_item.lineItem.currentQuantity) %}
{% endif %}
{% endfor %}
{% endfor %}
{{ total_price }}
ご参考までにしてください。
なにかご質問があれば、お気軽にご相談ください。
お悩み解決できましたら、ベストアンサー、いいねいただけると励みになります。
何卒よろしくお願いします。
株式会社フルバランス
成功
質問拝見しました。
コードを拝見してtotal_price を更新する際に、plus ではなく times を使用する必要があルカと思われます。また、total_price の初期値は、各商品の数量と上代を掛け合わせた値を合計するために使用する必要があります!
以上のこと修正したコードが下記になりますので一度お試しいただけたらと思います!
{% assign total_price = 0 %}
{% for fulfillmentLineItems_item in fulfillment.fulfillmentLineItems %}
{% for metafields_item in fulfillmentLineItems_item.lineItem.variant.metafields %}
{% if metafields_item.key == '上代' %} {# 上代部分にメタフィールドのキーを適切なものをいれる #}
{% assign unit_price = metafields_item.value | times: 1 %}
{% assign total_price = total_price | plus: (unit_price | times: fulfillmentLineItems_item.lineItem.currentQuantity) %}
{% endif %}
{% endfor %}
{% endfor %}
{{ total_price }}
ご参考までにしてください。
なにかご質問があれば、お気軽にご相談ください。
お悩み解決できましたら、ベストアンサー、いいねいただけると励みになります。
何卒よろしくお願いします。
株式会社フルバランス
ご返答いただきありがとうございます。
内容拝見して追加で質問させてください。
{% assign total_price = total_price | plus: (unit_price | times: fulfillmentLineItems_item.lineItem.currentQuantity) %}
こちらの部分の()はどのように表現すればよいでしょうか?
ShopifyFlow内でliquidをかいているのですが、()が効きません。
※エラーではじかれて保存が押せません。
初心者で大変恐縮ですがご教示いただけますと幸いです。
すみません、こちらの件頂いたヒントをもとにliquidの書き方を変え解決いたしました!
ありがとうございました!
即対応できず申し訳ございません。
ただいま確認したところ解決したようで安心しました。
また何かありましたらご気軽にご相談ください!
いいね、ベストアンサーをいただけますと励みになりますのでよろしければよろしくお願いします!
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 29, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024