Skip to main content

Shipping

docs image

Shipping

Managing carriers, shipping methods, costs and restrictions

There are many aspects to shipping, some required for your flows and some optional. Whatever it is you need, can be found in this Admin Suite chapter.

The Shipping chapter, and this namesake docs page, is subdivided by three tabs:

  • Carriers
  • Shipping method & costs
  • Shipping restrictions

Carriers

The chapter opens up with the Carriers on display. These represent the various companies you are partnered with to physically bring your packages from A to Z.


static/img

The creation modal only has three fields, which are all displayed in the overview as well.

PropertyDescription
NameName of the carrier (e.g. FedEx, UPS, PostNL). This is the name that is displayed in front-ends (e.g. POS, App Suite).
Code(Optional) Add a Code to the carrier. This is a reference code (e.g. FED_EX) for use in your interfaces, and can be mapped to internal codes used in your WMS.
BackendIDThis is an extra field to be used to match the carrier to an ID used in your external (backend) systems.

Shipping methods & costs

This overview shows all currently active shipping methods and the attached carrier.


When you click the '+' icon to add a new one, you start off by creating the method.


The following table gives you some context and options as to the available fields.

PropertyDescription
CarrierOne of the previously created carriers.
NameName of the shipping method (e.g. Standard Delivery, Express Delivery). This is the name that is displayed in front-ends (e.g. POS, Companion App).
Code(Optional) Add a Code to the shipping method. This is a reference code (e.g. STAND_DEL, EXPRESS_DEL) for use in your interfaces, and can be mapped to internal codes used in your WMS. Note that this can be used to bypass the carrier.
Delivery typeSpecify the appropriate delivery type.

Shipping methods can have one of the following delivery types attached:
- None
- Default
- ShipFromStore
- Interbranch
HandlerSelect a handler from the list of available ones.
Carrier handles shippingMark this if the shipments created with this method need to be kept pending instead of being shipped automatically. EVA expects the carrier to ship the shipment.
Carrier handles payment(Optional) Mark if this is a shipping method in which the customer pays to the carrier upon delivery.
Carrier handles invoicing(Optional) Mark this if the carrier creates the invoice for the customer.
When your carrier handles payment and/or invoicing

If you let your carrier handle payment and invoicing, your order state will not go to Completed, but remain Shipped until the carrier informs EVA the package has been paid and delivered. If your carrier handles shipping only, payment will be required up-front.

Additional information

Regarding delivery types

By default, all delivery types are set to None, meaning the type will show up for each shipping method. By selecting a specific type however, it will only show up when it's relevant based on the order type and OU. By selecting Default it will be specifically excluded from Interbranch and SFS.

If you want to enable Interbranch shipping, you need to perform a few additional steps aside from choosing it as the relevant Delivery type:

  • Set Interbranch:ShippingOption to one of the following values:
    • 1 (Manual) - This default value means shipping will happen right away (if all requirements are met).
    • 2 (ManualWithShipmentIDs) - You'll have to manually scan a ShipmentID after which all lines are shipped.
    • 3 (ManualWithDetailInspection) - You'll have to manually scan a ShipmentID plus all product barcodes.
  • Create the relevant supplier relations for interbranch orders.

Regarding shipping methods in POS

POS specifically requires you to set OrderLineCreator:SetDefaultShippingMethod to true before any shipping methods will become available at all.

Regarding shipping methods in PushSalesOrder

When passing the shipment information on the PushSalesOrder service it looks like this:

        "ShippingInformation": {
"Method": "STAND_DEL",
"UnitPriceInTax": 1,
"TaxRate": 1.21
},

The Method entry corresponds with the Code configured on the shipping method.

Costs

Once you've created your basic shipping method, you can attach costs to it. This way you might set a different shipping cost based on the order amount for example.

Any created shipping costs will be shown on the Logistics tab of the OU in question automatically.


Show shipping costs without attached shipping address

It is possible for your front ends to display a range of shipping costs, even when no shipping address has been attached yet.

  • Set ShippingCosts:CalculateWithoutShippingAddress to true
  • Create a shipping method with shipping costs without a country attached. You can do this per OU

Prevent rising shipping costs in out-of-stock situations

When order lines are cancelled after they have been exported, due to an out-of-stock situation for example, customers wouldn't expect to have to pay (increased) shipping costs.

  • Set ShippingCosts:ExportedLinesCanIncreaseShippingCosts to false

This will prevent rising shipping costs after lines have been exported. Mind that the reverse is still possible: cancelled lines which warranted high shipping costs will lead to reduced shipping costs.

Context-based shipping costs

There are some cases where you do not want your shipping costs to include tax. This is mostly applicable when working with external tax providers such as Avatax and Vertex. In that case, it is recommended to enable this feature to prevent situations with open orders based on rounding issues during re-calculation of an in-tax configuration and an ex-tax order context.

  • Set CalculateShippingCostsBasedOnExTax to true

Once set to true, configured shipping costs will be considered EX TAX when inside a CalculateAmountsBasedOnExTax context.

Attaching your shipping method to your store

You have to attach your new shipping method to your store manually. To do so, go to Organizations, pick your store and head over to its Logistics tab. Amongst all these cards, you can find Shipping methods. Click the '+' icon to select one of your available shipping methods and to set a priority.

In there you can select your store, enable the appropriate shipping method and set its priority. Mind that a higher number equals a higher priority.


Create a checkout option

If you want to be able to change your shipping method in an order in your Checkout App or POS' checkout, you will additionally need to create the corresponding Checkout option.

Shipping restrictions

EVA supports the use of restrictions on shipments to customers.

Authorization

To use this feature, you need the ShippingRestriction functionality along with the desired scope.

Permissions are managed from the Roles and Rights chapter, specifically from the functionalities card of a user's role.


This can be used to block certain addresses, such as specific zip codes, from receiving a delivery. It can also prevent specified products from being shipped to certain addresses using zip codes. Importantly, carry-out orders are not affected by such address shipping restrictions.

Shipping restrictions are configurable at the organization unit(set) level. This means you could create a situation where restrictions apply only to Online orders, for example, by selecting your webshop organization unit or set.

  • Zip code resstriction: This is an address restriction that also adopts use of a range value for zip codes. For example, 1234AA till 1234ZZ would be a valid range in the Netherlands. For single zip codes you can set the start and end with the same zip code.
  • Script restriction: This can be used to apply a customizable shipping restriction using the ShippingRestriction extension point. If any existing ShippingRestriction scripts are available, you can select one from the drop-down list of Existing Script. Alternatively, you can create a new one using the New Script button. More information and a sample can be found here.


Every restriction needs an effective country to block the addresses, so if you want the same restriction in Germany as you have in the Netherlands, you need to add it twice.

The product restrictions themselves are done based on PIM properties, which are specified either in bulk (pasting multiple values of a specific product property) or by means of the product filter.

The following example shows you a useful example of properties you could restrict (though this example's UI is based on Admin Suite's predecessor).


Once a restriction has been created for a specific OU, it will automatically be added in the Logistics tab of the OU in question.

Caching

Changing restrictions can take up to 30 minutes to take effect, due to caching them for speedy checkouts.

Limiting deliveries to same country

Shipping restrictions tie into the available countries for deliveries.

The countries which are allowed for deliveries are configured in the OU's Logistics tab, specifically the Available countries card.

You can however override this, allowing OUs to only deliver to addresses in the same country.

You can do so by setting RequiredData:ValidateAvailableCountries to true.

To make it even more clear: when set to true, you allow only domestic shipping such as NL to NL and DE to DE but not NL to DE.