🐕

Shopify で売り切れ(在庫切れ)商品を非表示にする方法を調べてみた

2024/01/29に公開

はじめに

今回は、Shopify で売り切れ(在庫切れ)商品を非表示にする方法について調べてみました。

主に、Shopify の標準機能であるコレクションを使って売り切れ(在庫切れ)商品を非表示にする方法と、Shopify のアプリを使って売り切れ(在庫切れ)商品を非表示にする方法の二つがあります。

ちなみに、Shopify アプリを使って売り切れ(在庫切れ)商品を非表示にする場合には、売り切れ(在庫切れ)になった商品を自動で下書き状態にすることができます。

また、Shopify アプリを使って売り切れ(在庫切れ)商品を非表示にする場合を、カスタムアプリを使って実装する場合の実装方法についても解説していきます。

それでは、頑張っていきましょう。

コレクションを使って売り切れ(在庫切れ)商品を非表示にする方法

まずは、商品管理からコレクションに移動しましょう。

コレクションを作成するより、新しいコレクションを作成しましょう。

コレクションの種類より、在庫数が 0 より大きいという条件を設定しましょう。

この条件で、コレクションを作成して下さい。この方法でコレクションを作成すれば、在庫数が0になった商品が、このコレクションから非表示になります。

しかし、複数のコレクションが有る場合には、全てのコレクションで上記の設定が必要になります。また、手動を選択した場合は、上記の設定を行うことができないので、売り切れ(在庫切れ)商品がストアに表示されてしまいます。

また、在庫切れ商品が0以上の商品を全て表示したい場合は、以下のようにコレクションを設定して下さい。

上記のように、価格が 0 より大きいという条件を入れると、在庫数が0より大きい全ての商品を含むコレクションを作成することができます。

Shopify アプリを使って売り切れ(在庫切れ)商品を非表示にする方法

次は、Shopify アプリを使って売り切れ(在庫切れ)商品を非表示にする方法について解説していきます。

使用するアプリは、シンプル売り切れ非表示|在庫切れ商品の表示変更というアプリです。

https://apps.shopify.com/sa-028-ur-sold-out-hidden?locale=ja

上記のアプリは、売り切れ(在庫切れ)の商品を自動でストアから非表示にできるアプリです。

ユーザーの購入をイベントの発生条件として、商品が売り切れ(在庫切れ)状態かどうかを判定します。商品が売り切れ(在庫切れ)状態である場合に、商品を自動的に下書き状態にすることができます。

シンプル売り切れ非表示|在庫切れ商品の表示変更 の使い方

ここから、シンプル売り切れ非表示|在庫切れ商品の表示変更の使い方を説明します。

公式のご利用ガイドがあったので、こちらを参考にさせて頂きます。

https://unreact.jp/shopify-apps/sa-028-ur-sold-out-hidden/guide

アプリのインストール

アプリストアの検索画面で、シンプル売り切れ非表示|在庫切れ商品の表示変更と入力sいます。

該当のアプリが見つかったので、こちらを選択して下さい。

インストールより、アプリのインストールを行いましょう。

ここからはいつも通りです。アプリのインストールを行って下さい。

アプリの管理画面が表示されます。

アプリの有効化

アプリの有効化を行いましょう。

アプリのを有効状態にして、保存するをクリックしてください。

ここまでで、アプリの有効化は完了です。

ここまでの設定を行うと、顧客の購入により売り切れとなった商品が自動的に下書き状態になるようになります。

テストとして、商品の在庫が残り一つの商品を購入してみます。

購入を行いました。

そうすると、以下のように「下書き」状態に変更あれ、商品がストアに表示されなくなります。

ちなみに、在庫を追跡していない商品や、在庫切れでも販売を続ける商品は、下書き状態にはなりません。これらの商品は売り切れ状態にならないので、当然の挙動ですね。

カスタムアプリを使って売り切れ(在庫切れ)商品を非表示にする方法

それでは次に、カスタムアプリを使って売り切れ(在庫切れ)商品を非表示にする方法について解説していきます。

ここからは、上記のアプリの考察になります。

売り切れ(在庫切れ)商品の非表示の「有効」「無効」の切り替えについて

恐らく、売り切れ(在庫切れ)商品の非表示の「有効」「無効」の状態を、shop のメタフィールドに格納して管理しているかと思います。

https://help.shopify.com/ja/manual/custom-data/metafields

メタフィールドには様々な値が入るので恐らくこちらに格納することになるかと思います。自作の DB に格納して頂いても構いません。

売り切れ(在庫切れ)商品の自動的な非表示について

こちらは、恐らく Webhookを用いて実装されているかと思います。

https://shopify.dev/docs/api/admin-graphql/2023-07/enums/WebhookSubscriptionTopic

こちらのORDER_CREATEというイベントに対して処理を仕込み、顧客の商品オブジェクトを取得します。その中で、売り切れ状態になっているものを見つけて、商品を下書き状態にする API を叩くことで実装できるかと思います。

上記をカスタムアプリを使わずに実装する場合は、まずはカスタムデータより、メタフィールドを編集しましょう。

上記でメタフィールドの設定が可能です。

また、通知より、Webhook を手動で設定することも可能です。

自作の API に対して、任意の Webhook を送ることが可能です。

終わりに

ここまでで、売り切れ(在庫切れ)商品を非表示にする方法についてまとめました。少しでも皆様のお役に立てれば幸いです。お疲れさまでした。

Discussion