×
×

Shopify APIを利用して在庫管理を行う

Shopify で販売している商品の在庫を一定間隔で指定の在庫に自動で更新してほしいという依頼があったので、Shopify APIについて色々調べてみました。

Shopifyの在庫を更新するには?

Shopify で販売している商品の在庫を更新するにはShopify APIを利用して行います。

APIの使用に関しては「https://shopify.dev/api」で確認することができます。

Shopify APIを利用するには?

Shopify APIを利用するには予め「アクセストークン」を取得しておく必要があります。

在庫に関するAPIは?

在庫更新のためのAPIは2022年9月現在、取得に関しては公開されていますが直接更新するためのものが用意されていないようです。

その為、現在の在庫を取得し、指定の在庫数に足りない在庫数を計算し、商品在庫に加算する方法しかないようです。

Shopify APIを利用する

ではShopify APIを利用して商品の在庫を更新する方法を紹介します。

inventoryItems

まずは[inventoryItems]を利用して商品の「inventory item Id」「SKU」を取得します。

上記クエリーを下記のスクリプトを利用しAPIに送信しレスポンスを取得します。

レスポンスはJSON形式で下記のような感じで返ってきます。

[id]がinventory item Id、[sku]がSKUとなります。

※SKUは必須項目ではないので予め重複しない文字列を登録しておいてください。

productVariants

次に[productVariants]を利用して現在の商品の在庫数を取得します。

下記のクエリーでSKUと在庫数を取得します。

上記の情報が取得できたらロケーションIDも取得します。

locations

ローケーションを複数登録している場合は、割り当てが必要ですが今回は1件のみの登録なので割り当てに必要はありませんでした。

全ての情報が取得できたら、現在の在庫数から加算したい在庫数を商品ごとに計算し「inventory item Id」を利用して在庫を加算していきます。

inventoryBulkAdjustQuantityAtLocation

APIを利用して商品情報の更新にはMutationを利用します。

クエリーは下記のように記載します。「availableDelta」に加算したい在庫数を設定、「inventoryItemId」「locationId」には取得したIDを記載します。

リクエストが正常に受け取られれば下記のレスポンスが返ってきます。

Shopify APIを利用してみて

今回初めてShopify APIを利用し、「GraphQL」を初めて利用しました。

SQLとは異なりますが、構文を理解すれば同じように利用でき便利でした。

しかし、Shopifyの制限により直接在庫を更新できないなどの利用し難い部分もありました。

在庫編集に関する記事があまり見つからなかったので情報共有・備忘録の意味を込めてこの記事を作成しました。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)