: 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
checkoutComplete
execution 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
:
OrderLine
SecondaryOrderLine
NauticalOrderLine
NauticalSecondaryOrderLine
quantityFulfilled
The quantityFulfilled
field has been deprecated on the following types:
NauticalOrder
NauticalOrderLine
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.