Configure and Manage Backorders
Backorders refer to orders for products that are currently out of stock but are still allowed to be sold. By enabling backorders, sellers can commit to fulfilling these orders once the product becomes available again.
This page will guide you through this process, from enabling the feature to managing incoming backorders.
Configuring backorders
Configuring backorders involves enabling the feature and setting backorder thresholds for each product variant.
Step 1: Enable backorders on the marketplace
Use the marketplaceConfiguration.enableBackorders
boolean field to control if the backorders feature is available in your environment. By default, this field is set to false
. Change it to true
to activate backorders.
(Optional)Check if backorders are enabled
Enable the marketplace configuration setting
To turn on the backorders feature, use the marketplaceConfigurationUpdate
mutation and set enableBackorders
to true
.
mutation marketplaceConfigurationUpdate {
marketplaceConfigurationUpdate(
input: {
enableBackorders: true
marketplaceAccruesShippingRevenue: true
maxCheckoutLineQuantity: 50
maxCheckoutQuantity: 100
maxProductsInGroup: 10
payoutAutomationStrategy: AUTOMATED_BY_FULFILLMENT
requireProductApproval: false
}
) {
marketplaceConfiguration {
enableBackorders
}
marketplaceConfigurationErrors {
field
message
code
}
}
}
Step 2: Configure backorders for variants
Once backorders are enabled at the marketplace level, sellers or marketplace operators can control which product variants are eligible for backorders and limits.
Enable backorders for a variant
You can control which items are eligible for backordering through the allowBackorders
boolean field when creating or updating a product variant.
mutation {
productVariantUpdate(
id: "UHJvZHVjdFZhcmlhbnQ6Mjc2",
input: {
allowBackorders: true
}
) {
productVariant {
id
name
description
sku
nauticalStockNumber
trackInventory
allowBackorders
quantityAvailable
}
productErrors {
field
message
code
}
}
}
Set backorder limits
The amount of variant stock that can be backordered is stored under productVariant.stock
. Because it's stored on the stock
object, you can fine-tune how many backorders you will accept for each product variant at each warehouse.
The outOfStockThreshold
field allows you to set a negative value for how far stock levels can go below zero for each stock
record. It defaults to 0
and can accept a negative integer.
mutation {
productVariantStocksCreate(
stocks: {
warehouse: "V2FyZWhvdXNlOjE1NGIwOGMwLWFhOTEtNDUzNC1hNTAwLTljM2E3MjEwMDViZA=="
quantity: 5
outOfStockThreshold: -10
}
variantId: "UHJvZHVjdFZhcmlhbnQ6Mjc2"
) {
productVariant {
id
name
sku
stocks {
warehouse {
name
id
}
quantity
quantityAllocated
quantityAvailable
outOfStockThreshold
}
allowBackorders
trackInventory
}
bulkStockErrors {
field
message
code
}
}
}
Result
The product variant can now be backordered up to the defined outOfStockThreshold
.
In the above example, there are 5
units of stock in the warehouse, with an outOfStockThreshold
of -10
. This means, up to 15 units of the product variant can be ordered from the warehouse (5 units, plus up to 10 units for backorder).
The productVariant.trackInventory
field must be set to true
for the out of stock threshold to have any effect.
If you disable backorders for a variant, the outOfStockThreshold
resets to 0
. However, if you re-enable backorders, the outOfStockThreshold
returns to the previously set value.
Managing backorders
You can tell when a variant is on backorder when the productVariant.stock.quantityAvailable
field takes on a negative value. The quantityAvailable
can go as far into negative as defined by the outOfStockThreshold
.
Fulfilling backorders
You can only fulfill the amount of quantity that is in stock. Backordered stock units cannot be fulfilled until you replenish the necessary amount of stock.
You can use the productVariantStocksUpdate
mutations to add stock, then use the orderFulfill
mutation to fulfill the order.
Inventory tracking
The following diagram illustrates inventory updates during order and fulfillment with backorders:
Storefront considerations
Backorders are not implemented in the reference storefront. Customize your storefront to let customers buy out-of-stock items.
Consider if and how you will implement the following:
- Displaying out-of-stock items available for backorder.
- Clear communication about backordered items at checkout.
- Possible delivery dates for backordered products.
- Regular updates for customers on backordered items.
- Notifications to the seller or marketplace operator when
stock.quantityAvailable
is negative.tipYou could utilize the
stock_allocated
webhook to configure custom notifications when an item is backordered.