Liquid、JavaScriptなどに関する質問
いつもお世話になっております。
現在カートページのコードを編集して、cart attributesを取得できるようにしています。
一度チェックアウト画面に進むとcart attibutesが保存され、特に値を変更しない限り、決済が終わるまでは値が保存されると思うのですが、カートページでお客様が特定の操作をした場合、cart attributesを削除したいです。
どのようなコードを書けば良いでしょうか?
jQueryを使用しないコードでお願いいたします。
よろしくお願いいたします。
解決済! ベストソリューションを見る。
成功
@るん 様
https://shopify.dev/docs/api/ajax/reference/cart
こちらにcart APIについてのドキュメントがありますので、
こちらをお読みいただくのが良いのです。
cart/update.jsでattributeの値を空にすることで、削除できるようです。
例: cartAttribute[hoge]を削除する場合
var formData = new FormData();
formData.append("attributes[hoge]", "");
fetch(window.Shopify.routes.root + 'cart/update.js', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => console.log(data));
ご参考まで。
(キュー田辺)
成功
@るん 様
> クリック時に条件分岐後に呼び出しをしたいのですが、こちらのコードを普通に関数の中に入れれば良いでしょうか?
下記のようにコードを丸々if文で囲むのでしたら、async/awaitのことは気にされなくて大丈夫です。
document.querySelector('.button').addEventListener('click', function{
if (何らかの条件){
var formData = new FormData();
formData.append("attributes[hoge]", "");
fetch(window.Shopify.routes.root + 'cart/update.js', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => console.log(data));
}
});
ご参考まで。
(キュー田辺)
成功
@るん 様
https://shopify.dev/docs/api/ajax/reference/cart
こちらにcart APIについてのドキュメントがありますので、
こちらをお読みいただくのが良いのです。
cart/update.jsでattributeの値を空にすることで、削除できるようです。
例: cartAttribute[hoge]を削除する場合
var formData = new FormData();
formData.append("attributes[hoge]", "");
fetch(window.Shopify.routes.root + 'cart/update.js', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => console.log(data));
ご参考まで。
(キュー田辺)
株式会社Q (キュー)田辺様
いつもお世話になっております。
お返事が大変遅くなってしまい、申し訳ございません。
ありがとうございます。
教えていただいたコードを試したところ、cart attributesを削除することができました。
勉強不足で大変申し訳ないのですが、よろしければもう1点教えていただけますでしょうか?
クリック時に条件分岐後に呼び出しをしたいのですが、こちらのコードを普通に関数の中に入れれば良いでしょうか?
async/awaitを使った方が良いのかよくわかっておりません。
よろしくお願いいたします。
成功
@るん 様
> クリック時に条件分岐後に呼び出しをしたいのですが、こちらのコードを普通に関数の中に入れれば良いでしょうか?
下記のようにコードを丸々if文で囲むのでしたら、async/awaitのことは気にされなくて大丈夫です。
document.querySelector('.button').addEventListener('click', function{
if (何らかの条件){
var formData = new FormData();
formData.append("attributes[hoge]", "");
fetch(window.Shopify.routes.root + 'cart/update.js', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => console.log(data));
}
});
ご参考まで。
(キュー田辺)
株式会社Q (キュー)田辺様
お世話になっております。
ご丁寧に教えていただきまして、ありがとうございました。
大変助かりました。
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 29, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024