Pre-orders
A pre-order is any order that contains a new item which has been not released yet and it is still not in stock. It has a street date (StreetDate
attribute) in which the item is expected to be in stock.
StreetDate
is the date in which the item is expected to be available, in stock, or released. You must configure the streetDate
attribute during the order setup phase, or it cannot be modified (or visible) later.
The StreetDate
attribute can be modified in your OMS Admin or via the magento.sales.preorder_management
specification.
See Pre-orders for more info about modifying the streetDate
attribute.
Enable pre-orders
Unlike backorders, your System Integrator (SI) does not need to pre-enable the pre-order feature by sales channel. You can include the StreetDate
attribute in your new order (OrderCreate
):
Example of a pre-order line
....
"line_number": 1,
"payment_reference": "xxxxx ",
"pre_order_street_date": "2019-02-05T00:00:00+00:00",
"product_name": "thank u, next (CD)",
"product_type": "PHYSICAL",
"product_url": null,
"promotions_info": {
"original_price": 20,
"promotions": []
},
"shipping_address_reference": "xxxx",
"sku": "00602577378034",
...
The pre-order element must have a StreetDate
child, which indicates when the item is expected to become available. You can use the magento.sales.preorder_management
specification to modify it.
Configure pre-orders
Similar to backorders, these pre-orders are configured at the order item level, by adding the applicable attribute (in which order items that do not allow a pre-order are canceled if there is not stock). You receive this information via the magento.sales.order_management.create
specification.
Pre-orders are also available at the store level.
If the pre-order functionality is enabled, your OMS will hold back the preorder lines in a unallocated stock status
while the rest of the order lines without a street date will be sourced according to normal sourcing flow. This will result in an order splitting into several shipments. The logistics provider must be able to support multiple shipment requests for the same order.
Once the street date is reached for the pre-ordered line, the line will be sourced according to configured sourcing rules. At this point the stock is not yet available in any source and the line will be back ordered and added to the sourcing queue for later attempts, as per configured sourcing waves.
The store needs to know how much stock of a specific SKU is available and when they will be available for delivery. The OMS only needs to know the street date of the order and that the SKU is a pre-order. With that info the store can easily provide this in the new order feed.
Example of a pre-order line in an
OrderCreate
{
"order": {
"addresses": [
{
"address1": "156 Pendle Way",
"address2": "",
"address_type": "customer",
"city": "Pendle Hill",
"country_code": "AU",
"email": "ally.tsalikis@hotmail.com",
"first_name": "Ally",
"last_name": "Tsalikis ",
"phone": "0401500901",
"reference": "xxxx",
"state": "NSW",
"zip": "2145"
},
{
"address1": "156 Pendle Way",
"address2": "",
"address_type": "customer",
"city": "Pendle Hill",
"country_code": "AU",
"email": "ally.tsalikis@hotmail.com",
"first_name": "Ally",
"last_name": "Tsalikis ",
"phone": "0401500901",
"reference": "xxxx",
"state": "NSW",
"zip": "2145"
}
],
"custom_attributes": [
{
"attribute_code": "mdc_shipping_method",
"name": "mdc_shipping_method",
"value": "flatrate_flatrate"
},
{
"attribute_code": "mdc_shipping_description",
"name": "mdc_shipping_description",
"value": "Flat Rate - Fixed"
}
],
"customer": {
"id": "xxxx",
"segment": "B2C",
"type": "GUEST"
},
"customer_service_agent": null,
"id": "64600006036",
"ip": "172.194.124.142",
"language": "en_AU",
"lines": [
{
"amount": {
"currency": "AUD",
"gross_amount": 20,
"net_amount": 18.18,
"tax_amount": 1.82,
"tax_rate": 10,
"taxes": [
{
"amount": 1.82,
"rate": 10,
"type": "GST 10%"
}
]
},
"id": "9334",
"line_number": 1,
"payment_reference": "xxxx",
"pre_order_street_date": "2019-02-05T00:00:00+00:00",
"product_name": "thank u, next (CD)",
"product_type": "PHYSICAL",
"product_url": null,
"promotions_info": {
"original_price": 20,
"promotions": []
},
"shipping_address_reference": "xxxx",
"sku": "00602577378034",
"source_id": null,
"status": null
},
{
"amount": {
"currency": "AUD",
"gross_amount": 6.82,
"net_amount": 6.14,
"tax_amount": 0.68,
"tax_rate": 10,
"taxes": [
{
"amount": 0.68,
"rate": 10,
"type": "GST 10%"
}
]
},
"id": "SHIPPING",
"image_url": null,
"line_number": 2,
"payment_reference": "xxxx",
"pre_order_street_date": null,
"product_name": "Shipping",
"product_type": "SHIPPING",
"product_url": null,
"promotions_info": {
"original_price": 6.14,
"promotions": []
},
"shipping_address_reference": "xxxx",
"sku": "STANDARD",
"source_id": null,
"status": null
}
],
"origin": "FRONTEND",
"origin_date": "2019-01-31T20:31:25+11:00",
"payments": [
{
"currency": "AUD",
"reference": "xxxx",
"transactions": [
{
"amount": 27.5,
"billing_address_reference": "xxxx",
"gateway_information": {
"account": null,
"authorization_status": "AUTHORIZED",
"custom_attributes": [
{
"attribute_code": "card_expiration_date",
"name": "card_expiration_date",
"value": "2021-07"
}
],
"gateway_id": "BRAINTREE",
"original_auth_request_id": null,
"payment_account_unique_id": null,
"payment_service_response": null,
"transaction_id": null
},
"payment_method": "CC",
"payment_submethod": "MC"
}
]
}
],
"status": null,
"store": "xxxx",
"vat_country": "AU"
}
}