: Staging
: Production
✨ New
Decline fulfillments API
Added the orderDeclineFulfillment mutation and object to remove order lines that cannot be fulfilled. A new field, quantityDeclined, has been added to the OrderLine object to track declined quantities.
When this mutation is called, the order total and taxes are recalculated, omitting the unfulfillable line items. However, shipping costs remain unchanged. This mutation must be used before payment has been captured.
The existing ORDER_FULFILLED webhook is triggered by the orderDeclineFulfillment mutation. You may need to update your webhook consumption to check the fulfillment status.
The DECLINED status is added to the FulfillmentStatus enum. Both order.fulfillments and nauticalOrder.fulfillments will now include declined fulfillments. Please note that the quantity value for these declined fulfillments is a positive integer. You may need to adjust your calculations involving fulfillment quantities accordingly.
mutation {
orderDeclineFulfillment(
order: "T3JkZXI6MTMzMDk="
input: {
notifyCustomer: true
lines: {
orderLineId: "T3JkZXJMaW5lOjMwMzIy",
quantityDeclined: 1
}
}
) {
order {
id
status
}
fulfillments {
id
status
totalLinesQuantity
lines {
id
quantity
}
}
orderErrors {
field
code
message
orderLine
}
}
}
💎 Changed
Checkout performance improvements
Introduced significant optimizations to checkout API calls, with the following changes:
- Leveraging cached shipping rates for quicker calculations
- Utilizing cached foreign exchange rates for multi-currency support
- Elimination of multiple N+1 queries for checkout line items, reducing database load
- Improvements to
checkoutCompleteexecution time.
Asynchronous webhooks
The following webhooks are now asynchronous: SELLER_AGREEMENT_ACKNOWLEDGED, PAYOUT_UPDATED, VENDOR_PAYOUT_UPDATED, PRODUCT_CREATED, and PRODUCT_UPDATED.
🚫 Deprecated
quantity
The quantity field has been deprecated on the following types, and replaced with a more explicit name quantityOrdered:
OrderLineSecondaryOrderLineNauticalOrderLineNauticalSecondaryOrderLine
quantityFulfilled
The quantityFulfilled field has been deprecated on the following types:
NauticalOrderNauticalOrderLine
Instead, retrieve quantityFulfilled from the underlying seller orderLine. To make this easier, nauticalOrder.lines now returns sellerOrderline with the underlying seller order lines.
🪲 Fixed
Fixed an issue where stock could be deallocated from a warehouse different from the one it was originally allocated to.
Fixed an issue that prevented editing prices for product variants.