Liquid、JavaScriptなどに関する質問
当方、オーダーメイド商品を扱っています。
商品の発送時期が、当月(N月)から2ヶ月(N+2月)後になるので、
商品ページに表示をさせ、その値を自動更新させたいです。
例)
今日の注文なら「12月後半のお届け」
11月の注文なら「1月後半のお届け」
メタフィールドを使えば可能なのかなと思いつつ、
全く検討がつかないので、ご教授いただきたいです・・・!
解決済! ベストソリューションを見る。
成功
配送時期を自動更新したい件ですが、メタフィールドでの対応では難しいので、
配送時期を商品詳細ページのテンプレートに埋め込む形はいかがでしょうか。
※今回の方法は、全商品詳細ページに配送時期が出力されます。
※テーマはDawnを想定しています。
コードを埋め込むため、管理画面より「オンラインストア > テーマ > カスタマイズボタンの横にある「…」 > コードを編集」からコード編集画面を開きます。
コード編集画面から、セクション(Sections)の「main-product.liquid」を選択します。(テーマにより名称が異なる場合があります。)
「main-product.liquid」の配送時期を表示したい箇所に、下記コードを挿入します。
<div>
{% assign months = 2 %}
{% assign now_month = 'now' | date: '%-m' %}
{% assign after_month = 'now' | date: '%-m' | plus: months | date: '%-m' %}
{% assign delivery_month = now_month | append: '月中にお買い上げの場合、' | append: after_month | append: '月後半のお届け' %}
{{ delivery_month }}
</div>
※ 商品説明の下に配送時期を表示する場合は、下図のようになります。
無事コードが挿入できたら「保存」をクリックし内容を保存します。
以上で商品詳細ページに配送時期が表示されます。
上記コードをお使いいただくと、配送時期の文言は下記のようになります。
“11月中にお買い上げの場合、1月後半のお届け”
“X月中にお買い上げの場合、”を追加した理由は、例えば、11/30 23:59に商品詳細ページを見た際には「1月後半のお届け」と記載があり、そのあと購入が完了したのが12/01 00:05になった場合、実際のお届けが2月後半になる可能性もあると考えたためです。
また、Shopifyのサーバキャッシュの影響で、12/01 00:01に商品詳細ページにアクセスした際、
「1月後半のお届け」と表示されてしまう可能性もあるため、「いつまでの購入であれば、1月後半のお届け」なのかを明示した方が良いのではないか、と考えた次第です。
なお、「11月中にお買い上げの場合、1月後半にお届け」という文言は、上記コードに記載されている文言を編集するだけでカスタマイズできますので、お好きな文言にご変更ください。
もし、「ファイルのどの部分に上記コードを埋め込めば、配送時期を表示したい箇所に表示できるか分からない」場合は、テーマ名と表示したい箇所をお教えいただけましたら、より具体的な回答ができるかもしれません。
(しかし、解決のお約束はできません。特に有料テーマの場合は回答できない可能性が高いです。)
ご参考まで。
(キュー小坂)
成功
配送時期の月に関しましては、{% assign months = 2 %}の「2」部分の変更で問題ございませんが、
お送りしたソースで年跨ぎの処理に漏れがありましたので、下記コードに変更ください。
<div>
{% assign months = 2 %}
{% assign now_month = 'now' | date: '%-m' %}
{% assign after_month = now_month | plus: months %}
{% if after_month > 12 %}
{% assign after_month = after_month | minus: 12 %}
{% endif %}
{% assign delivery_month = now_month | append: '月中にお買い上げの場合、' | append: after_month | append: '月後半のお届け' %}
{{ delivery_month }}
</div>
ご参考まで。
(キュー小坂)
成功
配送時期を自動更新したい件ですが、メタフィールドでの対応では難しいので、
配送時期を商品詳細ページのテンプレートに埋め込む形はいかがでしょうか。
※今回の方法は、全商品詳細ページに配送時期が出力されます。
※テーマはDawnを想定しています。
コードを埋め込むため、管理画面より「オンラインストア > テーマ > カスタマイズボタンの横にある「…」 > コードを編集」からコード編集画面を開きます。
コード編集画面から、セクション(Sections)の「main-product.liquid」を選択します。(テーマにより名称が異なる場合があります。)
「main-product.liquid」の配送時期を表示したい箇所に、下記コードを挿入します。
<div>
{% assign months = 2 %}
{% assign now_month = 'now' | date: '%-m' %}
{% assign after_month = 'now' | date: '%-m' | plus: months | date: '%-m' %}
{% assign delivery_month = now_month | append: '月中にお買い上げの場合、' | append: after_month | append: '月後半のお届け' %}
{{ delivery_month }}
</div>
※ 商品説明の下に配送時期を表示する場合は、下図のようになります。
無事コードが挿入できたら「保存」をクリックし内容を保存します。
以上で商品詳細ページに配送時期が表示されます。
上記コードをお使いいただくと、配送時期の文言は下記のようになります。
“11月中にお買い上げの場合、1月後半のお届け”
“X月中にお買い上げの場合、”を追加した理由は、例えば、11/30 23:59に商品詳細ページを見た際には「1月後半のお届け」と記載があり、そのあと購入が完了したのが12/01 00:05になった場合、実際のお届けが2月後半になる可能性もあると考えたためです。
また、Shopifyのサーバキャッシュの影響で、12/01 00:01に商品詳細ページにアクセスした際、
「1月後半のお届け」と表示されてしまう可能性もあるため、「いつまでの購入であれば、1月後半のお届け」なのかを明示した方が良いのではないか、と考えた次第です。
なお、「11月中にお買い上げの場合、1月後半にお届け」という文言は、上記コードに記載されている文言を編集するだけでカスタマイズできますので、お好きな文言にご変更ください。
もし、「ファイルのどの部分に上記コードを埋め込めば、配送時期を表示したい箇所に表示できるか分からない」場合は、テーマ名と表示したい箇所をお教えいただけましたら、より具体的な回答ができるかもしれません。
(しかし、解決のお約束はできません。特に有料テーマの場合は回答できない可能性が高いです。)
ご参考まで。
(キュー小坂)
ありがとうございます。
いただいたコードで表示されるのを確認できました。
>{% assign months = 2 %}
ここの数字を2から例えば、3に変えれば、
届く時期も3ヶ月後に変更出来るのかと思ったのですが、うまく動かないようです。
配送時期の変化はどの部分を触ればいいのでしょうか。
成功
配送時期の月に関しましては、{% assign months = 2 %}の「2」部分の変更で問題ございませんが、
お送りしたソースで年跨ぎの処理に漏れがありましたので、下記コードに変更ください。
<div>
{% assign months = 2 %}
{% assign now_month = 'now' | date: '%-m' %}
{% assign after_month = now_month | plus: months %}
{% if after_month > 12 %}
{% assign after_month = after_month | minus: 12 %}
{% endif %}
{% assign delivery_month = now_month | append: '月中にお買い上げの場合、' | append: after_month | append: '月後半のお届け' %}
{{ delivery_month }}
</div>
ご参考まで。
(キュー小坂)