Admin APIのOrderとLineItemリソースにおけるプロパティの廃止

1. 技術的課題の定義

Shopify APIのバージョン2022-07の更新により、ProductVariantFulfillmentServiceの関係性が変更され、一つのProductVariantが複数の納品サービスにストックされるようになりました。これにより、ProductVariant.fulfillment_serviceLineItem.fulfillment_serviceフィールドの使用が推奨されなくなり、新たな実装手段が必要となりました。

2. 現状の技術スタックと問題分析

現状、商品の在庫管理や納品状況の確認には、ProductVariant.fulfillment_serviceLineItem.fulfillment_serviceが使用されています。しかし、これらのフィールドの廃止に伴い、新たな方法でこれらの情報を管理する必要が出てきました。

3. 技術的ソリューションの提案

商品の在庫や納品状況を管理するために、代わりに在庫アイテムと在庫レベルを使用することを推奨します。これらを利用することで、商品がどこで在庫されているかを確認したり、管理したりすることが可能となります。

4. 実装手順とコード例

在庫アイテムと在庫レベルを使用するためには、REST Admin APIやGraphQL Admin APIを使用します。これらのAPIを使用することで、在庫状況の確認や管理が可能となります。

具体的なコード例としては下記のようになります。

・REST APIの例
GET /admin/api/2022-07/inventory_levels.json
{
  "inventory_item_id": 808950810
}

・GraphQL APIの例
{
  inventoryItem(id: "gid://shopify/InventoryItem/808950810") {
    id
    sku
    tracked
  }
}

5. パフォーマンス・コスト分析

新たなAPIの利用により、在庫管理の柔軟性が向上し、商品の在庫状況をより正確に把握することが可能となります。コスト面では、APIの利用に伴う追加コストは発生しません。

6. 実装時の注意点・ベストプラクティス

ギフトカードの判定については、現状ではProductVariant.fulfillment_serviceフィールドを引き続き使用してください。代替手段が利用可能になるまでの間、このフィールドを使用することを推奨します。

7. 次のステップ・発展案

今後、origin_locationdestination_locationtotal_price_usdなどのプロパティも廃止予定となっていますので、これらについても早めに対策を講じることを推奨します。

参考記事: Property deprecations in the Admin API Order and LineItem resource