Liquid、JavaScriptなどに関する質問
配送日時を注文データに反映させるため、カートページに以下Cart attributes(カート属性)コードを設置しています。
※配送希望日はjsライブラリ「flatpickr」使って、商品毎に選択可能な最短配送日を動的に変える処理をしています。
<label for="shipping-day">配送希望日</label>
<input class="flatpickr" id="shipping-day" type="text" name="attributes[希望配送日]" value="配送希望日を選択する">
<label for="shipping-time">配送希望時間</label>
<select id="shipping-time" name="attributes[希望配送時間]">
<option value="希望なし" selected>配送希望時間帯を選択する</option>
<option value="8:00-12:00"{% if cart.attributes["希望配送時間"] == "8:00-12:00" %} selected{% endif %}>8:00-12:00</option>
<option value="14:00-16:00"{% if cart.attributes["希望配送時間"] == "14:00-16:00" %} selected{% endif %}>14:00-16:00</option>
<option value="16:00-18:00"{% if cart.attributes["希望配送時間"] == "16:00-18:00" %} selected{% endif %}>16:00-18:00</option>
<option value="18:00-20:00"{% if cart.attributes["希望配送時間"] == "18:00-20:00" %} selected{% endif %}>18:00-20:00</option>
<option value="19:00-21:00"{% if cart.attributes["希望配送時間"] == "19:00-21:00" %} selected{% endif %}>19:00-21:00</option>
</select>
================
問題点
================
このCart attributesが、注文データの「追加の詳細」に登録されるケースとされないケース(空欄)があります。
(同じ購入商品・同じ決済方法でも、注文データによっては「追加の詳細」が保存されているケースとされていないケースがあり、規則性がありません)
正常に登録されるケース↓
チェックアウト画面に行くには必ずカート画面を経由して配送日時を選択してもらう形で、
配送日時を未選択の場合でもデフォルトのデータ(配送希望時間なら、「希望なし」)が必ず登録されるはずですので、
「追加の詳細」覧が空欄であることはおかしいです。
================
試したこと
================
以下、原因調査のために行ったことです。
■支払い方法による影響がないか
参考:https://community.shopify.com/c/Technical-Q-A/Cart-attributes-not-always-saving/td-p/715733
参考:https://help.shopify.com/en/manual/online-store/os/dynamic-checkout/compatibility#cart-attributes
海外記事では動的チェックアウトボタンが原因と書かれていますが、ShopifyPayment(クレカ決済)でも問題が発生しています。
結果:支払い方法は原因ではない
■ブラウザ毎の購入検証
・PC
GoogleCrome
FireFox
IE
Edge
・スマホ
iOS
Googleアプリ
結果:上記主要ブラウザで購入検証しましたが、全て正常にデータが保存されます。
================
疑問点
================
Cart attributesは何らかの要因で注文データに反映されないケースはあるのでしょうか?
LiquidはDOM構築前の処理を行うものなので、
DOM構築後にユーザーがINPUTタグでアクションする条件分岐には対応してないはずです。
JQueryで条件分岐作りなおしてみてください。
こんにちは。
わたしも、全く同じ現象で、悩まされました。
わたしの場合は、今まで問題がなかったのに、
ある日突然、約半分の注文で、
Cart Attributesの情報が保存されない状況になりました。
おこっている現象は、書かれているとおり、全く同じです。
まったく規則性がないので、ほんとに困りました。
英語でも情報を探しましたが、
情報がとても少なかったので、
レアケースで、Shopify本体の問題では
なさそうな気はしていました。
それで、一番最近インストールした、
数量制限のアプリがあやしいことに気づきまして。
そのアプリは、カートからチェックアウトに進むボタンを押したときに、
判定して、数量制限に引っかかっていたら、モーダルが出て、
次に進めなくするという動作でしたが、
そのアプリのコードを一旦削除してみると、
問題が解決し、すべての注文でCart Attribuitesが保存されるようになりました。
数日様子を見ましたが、完全に解決しています。
一応、アプリの開発元には連絡をしておきましたが、
アプリ自体は削除することにしました。
アプリが原因になるということは、
全く考えてなかったので、解決までに時間がかかりました。
どうして、そういうバグが出るのかまでは、わかりません。
もし、カート内でなにか制御するようなアプリを使っていらっしゃったら、
疑ってもよいかもしれません。
オンラインストアを運営する中で、商品の返品や交換は重要なプロセスとなります。Shopify管理画面を通して簡単に返品や交換が行えることをご存知でしょうか?希望する場合は、お客...
By Mirai Sep 15, 2024Shopifyの請求書の支払いが失敗したという通知を受け取って驚いたことはありますか。初めての支払いでエラーが発生したり、これまで何の問題もなく支払いできていたのに突然失敗し...
By Minami_ Sep 8, 20242023年2月、Shopifyはcheckout.liquidを廃止し、Checkout Extensibilityに移行することを発表いたしました。この新しいチェックアウト...
By JasonH Aug 15, 2024