Pre-shipped products

The ability to pre-ship products is an existing feature in the Order Management System (OMS) that allows for products that are not allocated before a shipment request is created in your OMS. Once the order is placed, the products are directly processed. This order flow capability provides a solution for:

  • Virtual or downloadable products such as tickets or music albums.
  • Products purchased in physical stores.

These pre-shipped products (or their order lines) do not need to be stock allocated, so sourcing logic is not applied to sort product sources. Virtual products, like tickets, do not need to be allocated before processing the order in your OMS. A product purchased in a physical store does not need to be sourced, but your OMS inventory feature will take into account its stock.

Your OMS still generates a shipment request for these types of orders and expects a response denoting whether the product was shipped or canceled.

Enabling pre-shipped products

Pre-shipped products can be enabled in your order by defining a specific status:

},
...
"status": "PRESHIPPED"
},
....

It is possible to do this by defining the magento.sales.order_management.create message. See the Import an order with pre-shipped lines section for more information.

The PRESHIPPED status requires a PRESHIPPED shipping method for each pre-shipped product order line:

"product_type": "SHIPPING",
"sku": "PRESHIPPED",
"product_name": "PRESHIPPED",

Import an order with pre-shipped lines

To create an order with pre-shipped lines the magento.sales.order_management.create message must contain:

  • A PRESHIPPED status for each line that is pre-shipped (this status ensures the line skips the sourcing and stock allocation process).
  • A xxx source_location for each line that is pre-shipped, which defines which source provides the item.
  • The order needs to include a shipping method like "sku": "PRESHIPPED" which must be available in your catalog.
  • A reference to the PRESHIPPED shipping line by indicating the correct shipping_line_number.

Example of an order with pre-shipped products

....
"lines": [
            {
                "id": "358",
                "line_number": 1,
                "product_type": "PHYSICAL",
                "sku": "24-WG083-blue",
                "product_name": "Sprite Stasis Ball 75 cm",
                "shipping_line_number": 4,
                "shipping_address_reference": "335",
                "payment_reference": "170",
                "amount": {...},
                "status": "PRESHIPPED",
                "source_location": "WAREHOUSE_1",
                "promotions_info": {...}
            },
            {
                "id": "358",
                "line_number": 2,
                "product_type": "PHYSICAL",
                "sku": "24-WG084",
                "product_name": "Sprite Foam Yoga Brick",
                "parent_line_id": "357",
                "shipping_line_number": 4,
                "shipping_address_reference": "335",
                "payment_reference": "170",
                "amount": {...},
                "promotions_info": {...}
            },
            {
                "id": "SHIPPING",
                "line_number": 3,
                "product_type": "SHIPPING",
                "sku": "STANDARD",
                "product_name": "Shipping",
                "shipping_address_reference": "335",
                "payment_reference": "170",
                "amount": {...},
                "promotions_info": {...}
            }
            {
                "id": "SHIPPING",
                "line_number": 4,
                "product_type": "SHIPPING",
                "sku": "PRESHIPPED",
                "product_name": "PRESHIPPED",
                "shipping_address_reference": "335",
                "payment_reference": "170",
                "amount": {...},
                "promotions_info": {...}
            },

        ]
....