Liquid、JavaScriptなどに関する質問
LineItemのfulfillmentStatusとfulfillableQuantityについて、下記ドキュメントを参照しております。
https://shopify.dev/docs/api/admin-graphql/2024-10/objects/LineItem#field-fulfillmentStatus
fulfillmentStatus: String!: non-null: Deprecated
Use [FulfillmentOrderLineItem#remainingQuantity] instead
The line item's fulfillment status. Returns 'fulfilled' if fulfillableQuantity >= quantity, 'partial' if fulfillableQuantity > 0, and 'unfulfilled' otherwise.
[[https://]https://]https://shopify.dev/docs/api/admin-graphql/2024-10/objects/LineItem#field-fulfillableQuantity
fulfillableQuantity: Int!: non-null: Deprecated
Use [FulfillmentOrderLineItem#remainingQuantity] instead.
The total number of units to fulfill.
上記項目がDeprecatedになったため、fulfillmentStatusは下記計算ロジックにて求められると認識しました。
「Returns 'fulfilled' if fulfillableQuantity >= quantity, 'partial' if fulfillableQuantity > 0, and 'unfulfilled' otherwise.」
しかし、実際テストデータで検証したところ、上記記述と違って、以下のようになっているようです。
REST Admin APIの場合:
Order.line_items.fulfillment_status = 'fulfilled' if fulfillable_quantity = 0;
Order.line_items.fulfillment_status = 'partial' if fulfillable_quantity > 0 AND fulfillable_quantity < quantity;
GraphQL Admin APIの場合:
fulfillmentStatus = 'fulfilled' if LineItem.unfulfilledQuantity = 0
fulfillmentStatus = 'partial' if LineItem.unfulfilledQuantity > 0 AND LineItem.unfulfilledQuantity < LineItem.quantity
また、fulfillableQuantityの代替についても、上記記述にあるFulfillmentOrderLineItem.remainingQuantityではなく、
LineItem.unfulfilledQuantityの方が合っている気がしますが、その点ご教示いただけないでしょうか。
詳しくないのですが、興味があり調べてみました。
※GraphQLの方だけです。
> GraphQL Admin APIの場合:
> fulfillmentStatus = 'fulfilled' if LineItem.unfulfilledQuantity = 0
> fulfillmentStatus = 'partial' if LineItem.unfulfilledQuantity > 0 AND LineItem.unfulfilledQuantity < LineItem.quantity
合っていらっしゃると思います。
> また、fulfillableQuantityの代替についても、上記記述にあるFulfillmentOrderLineItem.remainingQuantityではなく、
> LineItem.unfulfilledQuantityの方が合っている気がしますが、その点ご教示いただけないでしょうか。
こちらもおっしゃる通り、 LineItem.unfulfilledQuantityの方が合っているかと思います。
計算には、LineItem.quantityが必要なので、LineItem.unfulfilledQuantityの方がQueryがすっきりしますので。
しかし、
一度、Shopifyにもお問い合わせいただいた方が良いかと思います。
パートナーアカウントをお持ちだと思いますので、
パートナーダッシュボードのサポートからShopifyにお問い合わせすると、
通常のサポートよりも技術的な質問に回答してもらえます。
ご参考まで。
(キュー田辺)