現在私が運用しているサイトではメタフィールドと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のようなアプリを使ってみたらどうでしょうかと言われましたが、
アプリでやっていることは特定の時間になったら商品ページを公開すると言ったものだったので少し違うなという印象でした。
知見のある方がございましたらお力添えしていただければ幸いです。