cart attributesを削除するコードについて

Topic summary

課題: カートページでの特定操作時に、Shopifyのcart attributes(チェックアウト完了まで保持されるカスタム属性)をjQueryなしで削除したい。

解決策: ShopifyのAJAX Cart APIを利用し、cart/update.js へPOST。FormDataで attributes[キー] に空文字(“”)を送信して当該属性をクリアする。fetchで送信し、response.json()で結果を確認。公式ドキュメントの参照案内あり。

条件付き実行: クリックイベントのハンドラ内でif文により条件分岐し、そのブロック内で上記fetch処理を呼び出せばよい。非同期制御は.thenチェーンで足り、async/awaitは必須ではない。

結果・現状: 提示コードで属性の削除は確認済み。条件付き呼び出しの実装方針も明確化。依頼者は解決に至り、スレッドは実質クローズ。

Summarized with AI on January 7. AI used: gpt-5.

@Anonymous_876e90207c84eec074dc8f1fbdf1c908

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));

ご参考まで。

(キュー田辺)

1 Like