Admin APIのOrderとLineItemリソースにおけるプロパティの廃止
1. 技術的課題の定義
Shopify APIのバージョン2022-07の更新により、ProductVariantとFulfillmentServiceの関係性が変更され、一つのProductVariantが複数の納品サービスにストックされるようになりました。これにより、ProductVariant.fulfillment_serviceとLineItem.fulfillment_serviceフィールドの使用が推奨されなくなり、新たな実装手段が必要となりました。
2. 現状の技術スタックと問題分析
現状、商品の在庫管理や納品状況の確認には、ProductVariant.fulfillment_serviceとLineItem.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_location、destination_location、total_price_usdなどのプロパティも廃止予定となっていますので、これらについても早めに対策を講じることを推奨します。
参考記事: Property deprecations in the Admin API Order and LineItem resource






Share:
新たに追加された`Cart.discountAllocations`フィールドと`CartLine.discountAllocations`の変更点について
Admin APIのProductVariantリソースにおけるプロパティの非推奨化