Shopify アプリに関する話題はこちら
お世話になっております。現在、自社倉庫システムとの連携を行うプライベートアプリを作成中なのですが、
注文情報の連携にあたり、「配送希望日」と「ラッピング」について質問があります。
(1)Shopify 上の ストア(ECShop)の標準設定では、「配送希望日」および「ラッピング」の指定はできないものでしょうか?
(2)1)の場合、指定できるようにするには「機能拡張用アプリをインストールする」以外に方法は無いのでしょうか?
(3)機能拡張用アプリ毎で、orderエンドポイントのレスポンス内容(配送希望日やラッピングが設定されるプロパティが)異なる場合はありますか?
例) アプリA⇒プロパティ「タグ」に配送日が設定される
アプリB⇒プロパティ「メモ」に配送日が設定される
お忙しいところお手数をおかけしますが、ご回答のほどよろしくお願いいたします。
解決済! ベストソリューションを見る。
成功
私も属性を追加して使うことがあるので参考になればと思います。
拡張アプリは不要でShopify単体でできると思います。
Supplyテーマで確認しました。
なお、できる限りその部分に特化したかったので装飾は行っていません。
1.カートを変更する
モーダルだと属性を追加することが出来ないので「ページ」にする
2.Shopify UI Elements Generator でコードを生成する
URL https://ui-elements-generator.myshopify.com/pages/cart-attribute
コードの中では、
としています。
作成したコード:
<p class="cart-attribute__field"> <label for="deliverydate">DeliveryDate</label> <input id="deliverydate" type="text" name="attributes[DeliveryDate]" value="{{ cart.attributes["DeliveryDate"] }}"> </p> <p class="cart-attribute__field"> <input type="hidden" name="attributes[Wrapping]" value="No"> <input type="checkbox" name="attributes[Wrapping]" value="Yes"{% if cart.attributes["Wrapping"] == "Yes" %} checked{% endif %}> <label>Wrapping</label> </p>
3.cart.liquidにコードを貼り付ける
submitを探して、その前に先のコードを貼り付けて保存する
設定はここまでです。
4.オンラインを開き商品をカートへ入れ開く
以下のように追加した入力項目が表示され入力できる様になる
5.データを確認する
注文管理には以下のように表示される
API /admin/orders.json で参照すると以下のようにデータが入っている
日付入力などはJQueryのDatepickerなども使えるのでカスタマイズを十分に行えます。
ご参考になれば幸いです。
----------
成功
私も属性を追加して使うことがあるので参考になればと思います。
拡張アプリは不要でShopify単体でできると思います。
Supplyテーマで確認しました。
なお、できる限りその部分に特化したかったので装飾は行っていません。
1.カートを変更する
モーダルだと属性を追加することが出来ないので「ページ」にする
2.Shopify UI Elements Generator でコードを生成する
URL https://ui-elements-generator.myshopify.com/pages/cart-attribute
コードの中では、
としています。
作成したコード:
<p class="cart-attribute__field"> <label for="deliverydate">DeliveryDate</label> <input id="deliverydate" type="text" name="attributes[DeliveryDate]" value="{{ cart.attributes["DeliveryDate"] }}"> </p> <p class="cart-attribute__field"> <input type="hidden" name="attributes[Wrapping]" value="No"> <input type="checkbox" name="attributes[Wrapping]" value="Yes"{% if cart.attributes["Wrapping"] == "Yes" %} checked{% endif %}> <label>Wrapping</label> </p>
3.cart.liquidにコードを貼り付ける
submitを探して、その前に先のコードを貼り付けて保存する
設定はここまでです。
4.オンラインを開き商品をカートへ入れ開く
以下のように追加した入力項目が表示され入力できる様になる
5.データを確認する
注文管理には以下のように表示される
API /admin/orders.json で参照すると以下のようにデータが入っている
日付入力などはJQueryのDatepickerなども使えるのでカスタマイズを十分に行えます。
ご参考になれば幸いです。
Takumaさん
ご丁寧にご説明いただきありがとうございます!
手順通りに設定したところ、
orderエンドポイントのレスポンスに「配送希望日」と「ラッピング」が出力されるところまで確認することができました。
本当にありがとうございます。
もし(3)についてもご存知でしたらご教授いただきたいです。
追加した属性は、必ず「note_attributes」として出力されるのでしょうか?
今回は下記のようにデータが出力されましたが、
生成したコードによっては結果が異なったりしますか?
(「note_attributes」以外の属性値に出力される場合もある?)
note_attributes: [ { name: "DeliveryDate", value: "2019/02/20" }, { name: "Wrapping", value: "Yes" } ]
Takuma様
ご返信ありがとうございます。
>私の認識と経験ではそこ「note_attributes」だけだと思います。データの持ち方もnameとvalueの組み合わせです。
こちらの情報ありがとうございます。
大変参考になります。
いただいた情報をもとに色々試してみたいと思います。
ありがとうございました。
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 29, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024