Ship-from-Store Orders
Orders are one of the most commonly used entities in the fulfillmenttools platform. Orders are typically used to trigger the DOMS and furthermore to start the overall fulfillment process.
Last updated
Was this helpful?
Orders are one of the most commonly used entities in the fulfillmenttools platform. Orders are typically used to trigger the DOMS and furthermore to start the overall fulfillment process.
Last updated
Was this helpful?
Ship-from-Store (SfS) are shipped from a facility by a (logistics) carrier to the customer's address. Whether this facility is actually a store or a warehouse does not matter for this example. When placing an order with the fulfillmenttools platform, the deliveryPreferences
are used to mark the order for shipping. Typically, a shipping label is needed for the parcels to be sent.
The other type of orders are Click-and-Collect (C&C) orders which are described in another .
Here's an example on how to create a Ship-from-Store (SfS) order:
Some details on the example:
The deliveryPreferences
mark this order as a shipping order:
The preferredCarriers
is used to select the (logistics) carrier that was chosen for delivery.
The serviceLevel
: This could be either DELIVERY
for standard shipping, or SAMEDAY
for sameday delivery.
Note there is no targetTime
attribute as this is calculated by the fulfillmenttools platform depending on the facility and carrier configuration.
The desiredDeliveryTime
contains the selected delivery time of the customer within the checkout of the shop. This in combination with the reservation preference mode defines when we check for stock reservation.
The email
address is forwarded to the logistics carrier when a shipping label is requested. Make sure you have the customer's consent to process this data. Otherwise, supply a generic email address.
The "reservationPreferences" are used in case the order should not be fulfilled and the respective stock should not be reserved directly after the routing was performed. This is the case if the consumer places an order where the delivery date is further in the future (see desiredDeliveryTime ) and the stock should not be reserved instantly (e.g. if the items do have a best before date).
For most carriers and countries, Home Delivery is requested simply by setting the addressType
to POSTAL_ADDRESS
.
Here are some examples (carrier = DHL_V2, DHL_BENELUX, POSTNL, GLS
):
The next example is for delivery to a DHL parcel locker. The PARCEL_LOCKER
address must include the ServicePoint ID (including prefix) of the locker in the additionalAddressInfo
field.
Here's an example for delivery to a bpost Pick-up Point (carrier = BPOST
):
Another option is to specify an address of type PARCEL_LOCKER
with the actual customer address but without an additionalAddressInfo
field. In this case, when the shipping label is requested the point of delivery is chosen automatically by determining the nearest service point. This address will then be printed on the shipping label instead of the customer's address.
Some carriers offer additional service options to be requested with the shipping labels, e.g. "signature required", "insurance", "cash on delivery", etc. You can specify these services in the preferredCarriersWithProduct
element of the deliveryPreferences
within the order.
Here's an example how to request the "signature" option for Belgian carrier bpost:
The list of supported options/services depends on the chosen carrier. Please contact us if you find an option missing that you would like to use for your labels.
This section explains some carrier/country specific details for the consumer address. See for an overview of all available carriers.
In Germany, it is possible to have the parcel shipped to a DHL . The consumer address must contain the customer's DHL "Postnummer" so make sure that information is provided by the customer during the checkout process. The "Postnummer" must be set in the additionalAddressInfo
field and the street
must be "Packstation" (fixed value). The houseNumber
must be the number of the selected Packstation.
Here's an example (carrier = DHL_V2
):
In the Netherlands, the customer can pick up her parcel at a DHL or (pakketautomaat). For this to work, the order needs to include two consumer addresses: one of typeINVOICE_ADDRESS
, the other of type PARCEL_LOCKER
. The PARCEL_LOCKER
address must be the customer's address and it must include the ServicePoint ID in the additionalAddressInfo
field. In the INVOICE_ADDRESS
you should also provide the real customer name because it is used on the label so that the customer can be identified when picking up the parcel at the service point. Check the DHL BeNeLux for details.
Here's an example for delivery to a DHL service point (carrier = DHL_BENELUX
):
In the Netherlands, the customer can pick up her parcel at a PostNL (PostNL-punt) or parcel locker (pakketautomaat). For this to work, the order needs to have two consumer addresses: one of typeINVOICE_ADDRESS
, the other of type PARCEL_LOCKER
. The PARCEL_LOCKER
address should be the address of the pickup point and it must include a companyName.
In the INVOICE_ADDRESS
you should also provide the real customer name because it is used on the label so that the customer can be identified when picking up the parcel at the service point. Check the PostNL for details.
Here's an example for delivery to a service point (carrier = POSTNL
):
The next example is for delivery to a The PARCEL_LOCKER
address should be the address of the parcel locker and it must include a companyName
. The additionalAddressInfo
must contain the customer's PostNL ID number.
Example (carrier = POSTNL
):
In Belgium, bpost offers the customer to pick up the parcel at a or a . The order must contain an address of type PARCEL_LOCKER
and the additionalAddressInfo
must contain the service point id as determined by the bpost API. At the moment, we support bpost service points of type 1 (PostOffice), 2 (Post Point & Parcel Point), 4 (Pack Station/Parcel Locker), and 16 (Kariboo/Parcel Point).
As always, you can provide an optional INVOICE_ADDRESS
. Check the bpost for details.
In the Nordics, e.g. Denmark, Finland, Sweden, the customer can choose to pick up the parcel at a postnord Service Point or (Pakkeboks/Nærboks). For this to work, the PARCEL_LOCKER
address must include the Service Point ID (e.g. 105926) in the additionalAddressInfo
field. Optionally, you can provide an INVOICE_ADDRESS
. Check the postnord for more information.
Here's an example for delivery to a postnord Service Point (carrier = POST_NORD
):
In Denmark and many other countries, the customer can pick up the parcel at a GLS depot or (PakkeShop). For this to work, the PARCEL_LOCKER
address must be the address of the parcel shop and it must include the ParcelShopID (e.g. 2080099016, 0560013596) in the additionalAddressInfo
field. First name and last name must be of the customer so he can be identified when picking up the parcel. Optionally, you can provide an INVOICE_ADDRESS
. Check the for more information on parcel shops.
Here's an example for delivery to a GLS parcel shop (carrier = GLS
):
Full specification of the orders endpoint in our