商品紹介ページに送料のテーブルを表示させたい

ayaMatsu
観光客
6 0 0

お世話になります。初歩的な質問かもしれないですが。。どなたか教えて頂けると幸いです。

 

  • ストア構築中です
  • 使用テーマ:Venture
  • やりたいこと:送料の目安をチェックアウト以前に知ってもらうために、商品紹介ページ(詳細ページ?)にその商品に該当する国内の各地域の送料を表示させたい
  • 商品の重量、各地域用の配送プロファイルは予め登録しておく
  • イメージは下記のようなもの
 北海道東北関東甲信越〜略〜
送料700600500600〜略〜

 

対応したこと

下記ページを見て、「shipping_method.handle」「shipping_method.price」を使用すれば表示できるのかなと思ったのですが、
product-template.liquid ファイル内に例えば {{ shipping_method.price | money }} と記述しても、表示させることができませんでした。

→ https://shopify.dev/docs/themes/liquid/reference/objects/shipping_method

 

shipping_methodは使用できる場所が限られていますでしょうか?

 

お手数をおかけします。宜しくお願いいたします。

0 件の「いいね!」
さんつ
Shopify Partner
32 7 40

同じような質問と回答がありましたので、リンクを記載しておきます。
Shipping Method for Product Page 

shipping_methodオブジェクトは、商品ページではなく注文確認用のオブジェクトのようです。
また、Liquid を使用して配送プロファイルにアクセスすることもできないようです。
宜しくお願い致します。

ayaMatsu
観光客
6 0 0

さっそくありがとうございます!!英語で調べることが難しかったので、とても助かりました><

liquidとHTML,CSSだけで、各地域用の配送プロファイルと連動したテーブルを作ることは難しいということですね。

アプリ開発の勉強をしたらできるようになりますでしょうか?

0 件の「いいね!」
jizo
先駆者
229 80 249

少々興味があり調べまして、バッドノウハウだと思いますが一案記載します。
ちゃんとした回答ではありませんので、その点留意ください。

 

https://shopify.dev/docs/themes/ajax-api/reference/cart#generate-shipping-rates

上記URLの内容を利用して、以下のように特定の設定(例は「都庁のZIPコード」「日本」「東京」で指定)で送料関連の情報を呼び出すことはできました。
実行すればブラウザのコンソールで送料含めて値を確認できるかと思います。

 

<script>
jQuery.get('/cart/shipping_rates.json?shipping_address[zip]=1638001&shipping_address[country]=Japan&shipping_address[province]=Tokyo',function(data){
    console.dir(data);
  }); </script>

 

これを利用して、全都道府県の分だけ上記コードを繰り返し、ここから値を得て不足を補いつつHTMLで整形すれば、一応表にはできるかもしれません。

なお、お勧めしない理由は以下の通りです。

  •  Shopifyの送料関係は複雑な条件の組み合わせが可能なため一覧作成自体が難しいと思われる
  • 同様の理由で一定の値が取れると保証できるか不明
  • 表示速度に悪影響が出る可能性がある
  • この方法自体が想定された使い方とは思えない

 

以上ですが、もしも私がお勧めするのであれば以下になりそうです。

  • 実現可能性の検証含めてパートナーやエキスパートの方に相談する
  • 連動を断念して静的HTMLで表を作成する

あまり役に立たない情報で申し訳ありません。

jizo
先駆者
229 80 249

申し訳ありません。

こちらカートに商品がないと値が取れませんね...。

junichiokamura
Community Manager
Community Manager
928 208 346

APIであれば配送設定周りのデータを取れますが、Liquidは難しいかと思います。

https://shopify.dev/docs/admin-api/graphql/reference/shipping-and-fulfillment

custom appを作ってapp proxy経由でAjax通信でデータを取得するか、一定期間で設定を見てデータをMetafiledsに格納して、Liquidで参照などのアプローチが取れますが、とても大がかりなので、シンプルに設定を見て内容をハードコーディングして表示するのが一番無難な気がします。

 

Technical Partner Manager, Japan
ayaMatsu
観光客
6 0 0

色々とお調べ頂きありがとうございます^^勉強になりました!!

0 件の「いいね!」
ayaMatsu
観光客
6 0 0

APIやcustom appの勉強が必要になるのですね・・!

マーチャント様が運用を自走し始めたときに配送設定「だけ」操作すればいいようにしたく、、

一旦はハードコーディングして、APIとアプリの勉強を今後していく方針にします!!

 

ありがとうございます!

0 件の「いいね!」