FROM CACHE - jp_header

cart apiを外部から叩かせないようにしたい

toi4
遊覧客
26 3 4

現在私が運用しているサイトではメタフィールドとjsを用いて特定の時間までカートボタンがクリックできないようにし、カートインできないような仕組みを作っています。

https://qiita.com/br-to/items/255018403ffd437785d4

あまり具体的には話せませんが、↑とjsを組み合わせています。

しかし、最近設定していた販売開始日時よりも前に商品が購入されているという事件が起こりました。

原因は定かではないですが、恐らくshopifyのcart api(https://shopify.dev/docs/themes/ajax-api/reference/cart#post-cart-add-js)を検証ツールか何かで叩いて商品をカートインしているのではないかと考えられました。

let formData = {
'items': [{
'id': 38048806600855, // variant_id
'quantity': 2
}]
};fetch('/cart/add.js', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(formData)
})
.then(response => {
return response.json();
})
.catch((error) => {
console.error('Error:', error);
});

 

実際上のコードをchromeの検証ツールで入力したらカートインすることができました。

cart apiを外部から入力できないようにすることはできないでしょうか?

ちなみにshopifyのサポートにも連絡したところlaunchpadのようなアプリを使ってみたらどうでしょうかと言われましたが、

アプリでやっていることは特定の時間になったら商品ページを公開すると言ったものだったので少し違うなという印象でした。

知見のある方がございましたらお力添えしていただければ幸いです。

1件の返信1
Jizo_Inagaki
Shopify Partner
578 236 551

趣旨が違う上に検証していませんが、以下のような方法も考えられるかなと思いました。

  • MatrixifyなどCSVを日時指定でインポートできるアプリを使う
  • 該当の商品の在庫を0にしておき、指定日時になったら該当のアプリで在庫を増やす

APIがどうであっても在庫がなければ買えませんので、在庫自体をどうにかできないかなと考えた次第です。

実現の可否含めてお役に立たない情報でしたら申し訳ありません。

参考:
https://matrixify.app/tutorials/schedule-import-to-shopify-from-google-sheets/

Jizo_Inagaki | フリーランスのwebデザイナー
- テーマのカスタム承れます。
- 記載した回答で解決できましたらベストソリューションの承認をお願いします。
- DMや指名による対応はご依頼として有料でのみ承ります。