Shipping data can be confusing with all the different objects and attributes involved in the process. This document provides a concise explanation of which partner, retailer or supplier, provides which data in which objects.
Retailer creates an order
The retailer can also provide these dates which tell Dsco and thus the supplier expectations around when the end customer should receive the order:
All packages of an order are expected to arrive on or before this date
All packages of an order are expected to arrive on this date, not before and not after
Dsco computes shipping
Dsco will choose a shipping method if it wasn't provided by the retailer. These Dsco computed shipping attributes will be put at the top level of the Order JSON Object by Dsco:
It's possible that Dsco will populate these attributes to improve it's learning algorithm even if the retailer provided shipCarrier, shipMethod and shippingServiceLevelCode.
Dsco sets final values to give supplier
Dsco will then set the shipping values that the supplier should use on the order object based on what the retailer provided and what Dsco computed as these attributes...
Supplier provides shipment
A supplier will receive the Order JSON Object, either by requesting it directly via an API or from a Webhook and will then know how to ship the order by looking at shipCarrier, shipMethod and shippingServiceLevelCode. The other sets of shipping attributes may also be present, the retailer attributes and the Dsco computed attributes, but the supplier should only look at shipCarrier, shipMethod and shippingServiceLevelCode.
The supplier will then call the Update Order Shipment API passing in a Shipment JSON Object where each Package JSON Object inside the Shipment JSON Object will include how the supplier shipped the package with these attributes:
The top level of the Shipment JSON Object may contain the shipCarrier, shipMethod, shippingServiceLevelCode, dscoShipCarrier, dscoShipMethod and dscoShippingServiceLevelCode, retailerShipCarrier, retailerShipMethod, retailerShippingServiceLevelCode that were present on the order if the supplier wants to provide them, although they will be ignored.
When a retailer or a supplier asks for a Shipment JSON Object from Dsco using an API all nine of these attributes will be included from the order if Dsco has them at the top level of the object.
Dsco carrier-provided actual shipping
At some point after Dsco receives a Shipment JSON Object with one or more packages from a supplier, Dsco will attempt to get the actual shipping information from the carrier that shipped each package and will then populate these attributes on each package: