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

カートメモ(備考欄)にデフォルトで入れた文言が2回繰り返し表示されるエラー

カートメモ(備考欄)にデフォルトで入れた文言が2回繰り返し表示されるエラー

e-charity
訪問者
3 0 0

shopifyテーマのDebutをベースにしておりますが、

カートメモ(備考欄)にデフォルトで文言を入れ、注文管理画面のメモ欄にも表示される様にしております。
ここでは例として「★お届け希望日を入力してください」ということにします。

(placeholderでは文言が消えるので、下記の方法で直接記入)

 

cart-template.liquid

 

<textarea name="note" rows="4" id="CartSpecialInstructions" class="cart-note__input" data-cart-notes>お届け希望日を入力してください{{ cart.note }}</textarea>

この状態で問題なくカート画面、注文管理のメモ欄に表示される場合と、

カート画面にも注文管理のメモ欄にも

「★お届け希望日を入力してください★お届け希望日を入力してください」

と2回繰り返し表示されるケースがあります。(店舗側、ユーザー側ともに)

 

同一のパソコンで、アカウントを変えてクロームブラウザを2つ開いた際に、

片方だけ2回繰り返し表示されているケースもありました。

 

また、liquid上で「★お届け希望日を入力せよ!!」と変更したとした場合、

変更直後には実際のカートメモに

「★お届け希望日を入力せよ!!★お届け希望日を入力してください」となり、

後半部分の表示が後追いで更新されて

「★お届け希望日を入力せよ!!★お届け希望日を入力せよ!!」となります。

 

キャッシュの問題かと思って悩んでるうちに自分のPC/スマホでは同事象が発生しなくなりましたが、

未だにユーザーからの実際の注文でダブり表示されるケースがあります。

 

改善出来る方法が分かる方おられましたら教えて頂きたいです。

1件の返信1

Jizo_Inagaki
Shopify Partner
1183 425 720

恐らく手法とコードの理解に原因があると思います。

 

前提として記載されているコードの基本的な動作は以下になります。

  • textareaタグで囲まれた中の文字列がcart.noteに保存される

上記を踏まえ、カートページからチェックアウトページへ進んでから戻るなどの操作を行った場合は以下のようになります。

  1. チェックアウトに移動するとcart.noteに「お届け希望日を入力してください」が保存される
  2. チェックアウトから「カートページに戻った後にリロード」や「別ページに移動してからカートページに戻る」と「お届け希望日を入力してください{{ cart.note }}」の{{ cart.note }}に保存された「お届け希望日を入力してください」が出力される

上記の結果、入力欄には「お届け希望日を入力してくださいお届け希望日を入力してください」と出力されます。

これはエラーではなく書かれたコードに従った正常な動作です。

 

 

■対応策の検討

前述の仮説が正しい場合、以下などの方法が考えられると思います。

  • textarea内に「お届け希望日を入力してください」を入れることを諦める
  • textarea内の{{ cart.note }}を消す
  • cart.attributesを使用する

 

cart.attributesに関しては以下の他にも検索で色々見つかりますので調査ください。

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

 

 

 

以上ですが、liquidがよくわからない場合はエキスパートやパートナーなどの業者に依頼することをお勧めします。

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