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. However, this item has a street date (attribute StreetDate) where the item is expected to be in stock.

StreetDate is the date where the item is expected to be available, in stock, or released. The StreetDate can be changed after an order is placed. However, this change does not contain any mechanism to inform customers affected, like an automatic email. In order to avoid any ambiguity concerning time zones, StreetDate should be UTC date format. You modify the attribute in the SKU of that item, which changes all pre-orders containing that SKU.

The StreetDate attribute can be modified:

Enabling 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. The specification used is magento.sales.preorder_management.

Configuring 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 needs to be able to support multiple shipment requests for the same order.

Once the street date is reached for the preordered line then 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. 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 a 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"
    }
}