Loading Light/Dark Toggle
ブログに戻ります

バリアントごとのShopify商品の在庫状況を追跡する方法

Alex Johnson
Alex Johnson

Senior Web Scraping Engineer

10-Nov-2026

要約:

  • Shopify の商品在庫状況はバリアントごとに異なる。 商品全体としては購入可能でも、特定のサイズやカラーが在庫切れの場合がある。
  • 在庫なしのバリアントと決済失敗は別のイベント。 不明な観測結果はそのまま残し、誤った在庫変動を出さない。
  • ストアフロント上の「購入可能かどうか」は、オファー状態の観測結果。 在庫数やフルフィルメントの詳細は、別途認可された情報源が必要。
  • バリアント ID とマーケットが、使える履歴の中核。 表示用に選択オプションを、結合用に ID を保持する。

はじめに

青いジャケットは S サイズが在庫ありで、L サイズは売り切れとする。同じ商品ページを共有している場合、商品レベルの在庫フラグだけを読むモニターはジャケットを「在庫あり」と報告し、買い手が実際に気にする状態を見落としてしまう。

各観測ごとにバリアント ID とマーケットを収集する。ラベルやデフォルト選択、ストアフロントのロケールが変わっても、これらのフィールドが安定した比較基準になる。

バリアントとマーケットごとに 1 行

承認済み商品のそれぞれについて、バリアントを解決し、選択したマーケットにおけるストアフロントの「購入可能性」シグナルを取得する。生の観測値と正規化した状態の両方を保持する。アラートジョブは、同じストア・マーケット・バリアント間の観測だけを比較するべきである。

バリアント ID はストアフロントから読む

バリアントの同一性は、ストアが利用可能にしている、文書化されたストアフロント表現から取得する。Shopify の Ajax Product API リファレンス では、ロケール対応の product ルートを文書化し、ID と availability フィールドを持つバリアントオブジェクトを示している。ストアの文書化されたアクセスパスを使用し、レスポンス失敗は「不明」として扱う。

ストアフロントが文書化された product レコードを公開している場合、それを使ってバリアントを列挙する。オプションが動的にレンダリングされるときは、JavaScript ストアフロント向けブラウザで、表示されている選択内容を観測できる。マーケットリストを拡張する前に、カバレッジプランを Scrapeless の料金と比較する。

ストア、商品ハンドルまたは安定した商品識別子、バリアント ID、選択されたオプション値を追跡する。大きな数値 ID を異なる方法で扱うシステム間でレコードを移動する際は、識別子を文字列として保持する。表示ラベルは可読性のために正規化しつつ、元のオプション値はレビュー用に残す。

ProductGroup 語彙は、バリアントを product group のメンバーとしてモデル化している。データセットでも同じ区別を使い、商品レベルの観測結果が、特定バリアントのレコードを置き換えてしまわないようにする。

在庫状況を読む前に、選択オプションを確認する

バリアントの観測は、観測されたコンテキストにおけるストアフロントの「購入可能性」を記述する。文書化されたデータ面が明示的な availability フラグを返す場合は、それを選択マーケットとともに記録する。レンダリングされたページが証拠を提供する場合は、通常どおりのオプションでバリアントを選択し、その選択が反映されていることを確認してから購入ボタンを読む。

予約注文 (プリオーダー) でも購入可能な場合がある。明示的な予約・取り寄せ (バックオーダー) の文言は、別フィールドに保持する。Offer 語彙は、在庫状況をオファーに紐づけており、一部のバリアントやマーケットだけ状態が異なり得る理由を説明するのに役立つ。配送や店舗受け取りの観測が重要な場合は、それらも別々に保存する。

Scrapeless ではじめるスクレイピング

Scrapeless で Web スクレイピングと自動化ワークフローを強化しましょう。
今すぐ登録して、$5 分の無料クレジットを獲得 — クレジットカードは不要です。

今すぐ Scrapeless ダッシュボードから無料クレジットを受け取りましょう。

不明な取得結果を在庫履歴に含めない

在庫状況の履歴には、観測元とその解釈の両方が必要である。使える 1 行には、ストア、マーケット、バリアント ID、選択オプション、観測時刻、取得元の面、取得状態を含める。通常の在庫ありと予約注文を区別する場合は、レンダリングされた購入文言も追加する。

観測結果 正規化された結果
明示的な肯定のバリアントフラグ 観測コンテキストで購入可能
明示的な否定のバリアントフラグ 観測コンテキストで在庫なし
バリアントページが予約注文を提供 予約注文の文言付きで購入可能
バリアントの解決に失敗した、または取得が途中で終了 不明
完全な product レコードからバリアントが欠落 そのレコードから欠落、レビュー待ち
大きなジャケットのバリアントが実行中に一度も解決されない場合は、不明な観測として記録します。後から明示的に利用不可フラグが現れた場合は、その情報を証拠として利用できます。この2つの記録を分けておくことで、テーマの問題が在庫変更として現れることを防げます。

最後の有効な観測と比較する

再入荷アラートは、同じストア・マーケット・バリアントに対する有効な観測同士を比較する必要があります。収集ギャップがその間にある場合は、その状態が変化し得た時間幅を保持します。途中に挟まった不明な観測は、収集ログに残しておきます。

購入者がサイズを選んだ後にテーマが購入ボタンを切り替えるタイプでは、ページチェックのためのブラウザ自動化で通常の選択操作を再現できます。ボタンを読む前に、バリアントを示すマーカーが切り替わるのを待ちます。そうしないと、ジョブがデフォルトサイズの在庫状況を選択済みサイズに紐づけてしまう可能性があります。

セレクターのバージョンと元のソース状態を保持してください。Etsy 商品抽出ワークフローは、ブラウザでのキャプチャと構造化正規化を分離する関連プラクティスを示しています。ストアフロントのテーマが変更された場合は、アラートを再度有効化する前に、選択済みバリアントの証拠を検証します。

結論

在庫アラートは、観測された正確なバリアント、そのマーケット、そして最後に比較可能だった状態を特定すべきです。これらのいずれかが解決していない場合は、そのキャプチャを調査用に保持し、在庫履歴は変更しないでおきます。


バリアント在庫モニターを構築する準備はできましたか?

ストアフロントの在庫ワークフローを構築している開発者と話すには、Discord や Telegram のコミュニティに参加してください。Scrapeless ダッシュボードでアカウントを作成して、始めましょう。


FAQ

Q: ストアフロントの在庫状況から、正確な Shopify 在庫数が分かりますか?

ストアフロントの在庫状況は、そのコンテキストでバリアントが購入可能として提供されているかどうかを示すものです。正確な在庫数や配分には、認可された在庫ソースが必要です。

Q: Shopify バリアントを追跡するにはプロキシが必要ですか?

ルーティングが位置情報に依存する場合、許可された地域ルートが有用です。単一マーケットのチェックであれば、ストアの通常の承認済みアクセスパスを利用できます。

Q: ページがアクセスチャレンジを表示したとき、モニターはどうすべきですか?

観測を不明としてマークし、承認済みの収集パスを確認します。最後の有効なバリアント状態を保持してください。

Q: 新しいストアフロントテーマには、モニターはどのように対応できますか?

既知の選択に対して、バリアントセレクターと在庫アサーションをテストします。可能で許可されている場合は、文書化されたストアフロント表現を優先して利用します。

Q: スケジューラは AI エージェントなしでチェックを実行できますか?

スケジューラと決定的なバリアントキーがあれば十分です。ストアごとに制限されたリクエスト予算を使用し、カバレッジを維持して、欠けているバリアントが解釈可能なままになるようにします。

Q: レポートで別のストアの商品データを利用できますか?

ストアの利用規約、許可、および適用法令を確認してください。収集は許可されたサーフェスに限定し、範囲が不明瞭な再利用については弁護士に相談してください。

Scrapelessでは、適用される法律、規制、およびWebサイトのプライバシーポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツは、デモンストレーションのみを目的としており、違法または侵害の活動は含まれません。 このブログまたはサードパーティのリンクからの情報の使用に対するすべての責任を保証せず、放棄します。 スクレイピング活動に従事する前に、法律顧問に相談し、ターゲットウェブサイトの利用規約を確認するか、必要な許可を取得してください。

最も人気のある記事

カタログ