Liquid、JavaScriptなどに関する質問
cart-template.liquidに独自のアンケート項目を
https://ui-elements-generator.myshopify.com/pages/cart-attribute
から作成してフォーム内に入れました。管理画面でも確認が出来たのですが、そこから
外部の在庫連動システム(ネクストエンジン)の備考欄への取り込みが出来ません。
ネクストエンジンに問い合わせをしたところ現在のデータ形式は
--------------------
[note_attributes] => Array
(
[0] => stdClass Object
(
[name] => attributes[deliverytime]
[value] => 平日
)
--------------------
になっているが、ネクストエンジンでは
--------------------
[note_attributes] => Array
(
[deliverytime] => stdClass Object
(
[name] => attributes[deliverytime]
[value] => 平日
)
--------------------
でないとデータを取り込めないとの回答でした。
stdClass Objectの[0]を変更できる箇所や方法はありますでしょうか。
解決済! ベストソリューションを見る。
成功
すいません、確認したいのですが、ネクストエンジンさんがおっしゃっているデータ形式とは、どのレベルでの形式でしょうか?
お見受けしたところ、共有されているログは、JavaScriptやPHPなどのプログラミング言語の展開形式で書かれているものですので、この情報だけですと正確なデータ形式が分かりません。
ネクストエンジンさんが、note_attributesを取得しているのが、REST APIなのか、GraphQLなのか、Webhookなのか確認いただき、これらのAPIやWebhookでのフォーマットで提示していただかないと対応は難しいと思います。
ちなみに私の方で、同様のコードをテーマに入れてREST APIでOrderのデータを参照した時のデータ構造は以下です。
"note_attributes": [
{
"name": "Your name",
"value": "NAMENAME"
},
{
"name": "Your birth date",
"value": "20011\/11\/11"
}
],
1点、現時点で気になるのは、ラジオボックスを使われているので、同じ名前のname(name="attributes['deliverytime']")が複数あるので、それが他の連携できているマーチャントと差異があるのかもしれません。
UI generstorで作って実際テーマに貼り付けたコードはどういったものでしょうか?それによってnote attributes の構造は変わるかと思います。
APIで、note_attributesを変更する方法はありますが、ちょっと大袈裟ですよね。。
https://shopify.dev/docs/admin-api/rest/reference/orders/order#update-2020-07
ご返信有難うございます。実際にカートに貼ったのは下記になります。
----ここから----
<p class="cart-attribute__field">
<label>■修理品の集荷ご希望日</label><br>
<input type="radio" name="attributes['deliverytime']" value="最短※現在●/●"{% if cart.attributes['deliverytime'] == "最短※現在●/●になります" %} checked{% endif %}> <span>最短※現在●/●になります</span><br>
<input type="radio" name="attributes['deliverytime']" value="平日"{% if cart.attributes['deliverytime'] == "平日" %} checked{% endif %}> <span>平日</span><br>
<input type="radio" name="attributes['deliverytime']" value="土日"{% if cart.attributes['deliverytime'] == "土日" %} checked{% endif %}> <span>土日</span><br>
<input type="radio" name="attributes['deliverytime']" value="その他"{% if cart.attributes['deliverytime'] == "その他※下記に希望をお書き下さい。" %} checked{% endif %}> <span>その他※下記に希望をお書き下さい。</span><br>
</p>
----ここまで----
[0] => stdClass Object
を
[deliverytime] => stdClass Object
に変更する方法はありますでしょうか。
アプリでもその部分を変更出来そうなものが見当たらず
何度も申し訳ありません。よろしくお願いいたします。
成功
すいません、確認したいのですが、ネクストエンジンさんがおっしゃっているデータ形式とは、どのレベルでの形式でしょうか?
お見受けしたところ、共有されているログは、JavaScriptやPHPなどのプログラミング言語の展開形式で書かれているものですので、この情報だけですと正確なデータ形式が分かりません。
ネクストエンジンさんが、note_attributesを取得しているのが、REST APIなのか、GraphQLなのか、Webhookなのか確認いただき、これらのAPIやWebhookでのフォーマットで提示していただかないと対応は難しいと思います。
ちなみに私の方で、同様のコードをテーマに入れてREST APIでOrderのデータを参照した時のデータ構造は以下です。
"note_attributes": [
{
"name": "Your name",
"value": "NAMENAME"
},
{
"name": "Your birth date",
"value": "20011\/11\/11"
}
],
1点、現時点で気になるのは、ラジオボックスを使われているので、同じ名前のname(name="attributes['deliverytime']")が複数あるので、それが他の連携できているマーチャントと差異があるのかもしれません。
ネクストエンジンに確認をし「note_attributesを取得について REST API より取得」と回答を得ました。
回答と別途にif cart.attributesの後にdeliverytimeを入れることでお蔭様で回避出来ました。
(現時点でネクストエンジンの備考欄にshopifyから受け付けるのは希望時間帯の1項目のみでした)
丁寧な回答を日本語で頂き大変助かりました。有難うございました。
ユーザー | ランク |
---|---|
46 | |
30 | |
22 | |
4 | |
4 |
山田繊維株式会社(むす美)は京都の地で風呂敷製造卸売業:山田貫七商店として昭和12年に創業。メイン商材は1000年以上前から使われているという記録がある風呂敷で、その他ハンカチや袱...
By Nanami Jan 12, 2023過去に失われた売り上げを回復するには?Shopifyの新しい自動化機能を活用し、失われた売り上げを簡単に回復する方法を学びましょう!
By Mirai Jan 10, 2023オンラインストアの構築が完了しましたら、一般公開をする前にいくつかのテスト注文を行い、チェックアウトプロセスを確認することが大事です。Shopifyペイメントをご利用いただいている...
By rinaflora Dec 4, 2022