Articles on: nShift Delivery - WooCommerce
This article is also available in:

nShift Delivery - WooCommerce / MANUAL

nShift Delivery - WooCommerce

Latest version: 1.3.52 that was released on 2023-12-08]

System requirements

PHP 5.6+
WooCommerce: 5.6.0+
Wordpress: 3.9.0+


Shipping selector widget for ordering or shopping cart at checkout
Create reserved shipments
Create booked shipments
Create shipping labels
Create tracking links
Include tracking links in order emails
Change shipping option after incoming order
Add shipping options on incoming order using other carrier
Single or Bulk-print shipping labels
Print multiple shipping labels as one document
Process deliveries on several orders simultaneously

Before we start

To be able to use this plugin you will need a nShift Online (Standard or Plus) with OrderConnect.

Questions and support regarding nShift Delivery

Questions or support regarding nShift services or settings at, please contact nShift directly. Use e-mail: [email protected] or phone: +46-31-725 35 50

Create your nShift Delivery account

If you don’t have any nShift Delivery account today, you will be able to create one during the setup of this plugin or contact our support. Note: You don't need to pay any starting fee for the OrderConnect add-on if you create your account via the plugin or our support.

Regarding this manual and instructions

This manual does not cover all possible angles of the extension, just the basics. Since many options and add-ons are depending of your choice of carrier you may have to contact us or nShift for further instructions. If you have any questions about this plugin, please feel free to contact us.


After you have purchased our plugin, you will receive an email with a download link. You also get license information that you need to use to download the extension. Download the extension and save it on your computer.
Login to your WooCommerce administration dashboard and click Extensions > Add New, select the downloaded file and click Install.
Activate the extension in the list of installed extensions


After you have installed this plugin you need to follow these steps.

Login to the WordPress dashboard as administrator and click WooCommerce/Settings.
From the Shipping tab page, click the option nShift Delivery.
Check Enabled: If you want to use plugin.

If you don’t have an nShift Online account click the link in the text “create one by clicking here.” See Onboarding on the next page and then continue at this point.

Enter API Key Id: Your nShift REST API Key Id from nShift in* 1.3.39 [2022-02-24] Plugin now updates status of stored shipments in the background every 15 minutesterface.
Enter API Secret: The nShift REST API Key Secret.
Enter User Id: Your username to nShift interface.

Enter Quick Id: Your id to your consignor in nShift interface. (Maintenance > Sender > Search)

We also have a tutorial "How to use nShift Delivery" with english subtitle.


To create an nShift Delivery follow the wizard on the screen. Start by pressing the link “Account”. Then you will be asked to enter your organization number, after that you will select the type of account you need and to enter customer numbers for selected partners.

Once you are done your API credentials will be automatically saved in plugin and can continue with Configuration from step 7.

Shipping zones

Now you need to create or edit shipping zones, it’s a standard WooCommerce procedure read more here:

Go to “Shipping zones”.
If you don’t have any shipping zones at all or want to create a new one... click “Add shipping zone”.
If you have one, click on the “Zone name”, ex Sweden.

Add Shipping zones

Add a “Zone name”, ex. Sweden.
Add “Zone regions”, ex. Sweden.
Click “Add shipping method” and choose nShift Online, then click “Add shipping method” to add the new shipping method.
Now you have created a new shipping method called nShift Online, now click to edit this method.

Configure shipping method

After you click on the shipping method called nShift Online. Follow these steps.

In “Method title”, enter your prefered name of the shipping method, ex. DHL SERVICEPOINT
In Service select your shipping service
Add-ons will be updated when you select a service, use the fields to activate shipping add-ons. You can use dynamic values, list them by moving your mouse over the question mark symbol
Check "Create Stored Shipments" if you want to store shipments at nShift Delivery, with the possibility of changing them there before they are finalized.
If you want to use a stand-alone return-shipment select desired service in “Return Service”
If you have selected a return-service and want the return-shipment to be created at the same time as the turn-shipment check the box “Automatic Returns”
Click “Automation enable” (check box) to enable automation (creation of shipment on orders that has a specified order-status)
IMPORTANT! About the Automation orders status. If you enable automation (step 7) you need to set which status the order will need to be processed by automation. This is depending on the payment method, so please check this closely.
Tax status, Taxable shipping cost or not.
Continue to fill out the fields below.

Cost: Your shipping cost for this shipping method.

Availability Logic (AL)

Availability Logic sets the rules for the shipping method. Ex. If you want free shipping or maybe a more expensive shipping cost if the weight is over 20 kg. See examples below:

Ex 1. Free shipping at €40 and above

If you want free shipping when "Cart subtotal" has a value equal or above €40 you can put 40- in "Cart subtotal"- field. And add 0 to the "Cost"-field. That means if a customers buy things from your shop that has a value equal or more than €40 or more the cost for the shipping method will be €0. Here you can read more about it and see a tutorial with english subtitle - följ denna länk.

Ex 2. Shipping Cost if total order weight is at 20 kg or more

If you want a more expensive shipping cost when the weight is equal or more than 20 kg, then add 20- in the "Weight-field". Then add the cost that you want in "Cost"-field".

Note! Remember that you also need to make a shipping method that has the standard shipping cost (without AL rules). In Ex 1. above the standard cost for shipping could be set to 9 and "Cart Subtotal"-field -40. This means that if cart value is below 40 the cost for the shipping method will be €9, and if it equal or more than 40 it will be €0 for shipping.

AL values

Weight: If you have weight based shipments. Values that can be used ex. -10 (up to 10), 10-20 (between 10-20), 20- (20 and above). Else leave blank (standard).

Width: If you have width based shipments. Values that can be used ex. -100 (up to 100), 100-200 (between 100-200), 20- (200 and above). Else leave blank (standard).

Height: If you have height based shipments. Values that can be used ex. -100 (up to 100), 100-200 (between 100-200), 200- (200 and above). Else leave blank (standard).

Depth: If you have depth based shipments. Values that can be used ex. -100 (up to 100), 100-200 (between 100-200), 200- (200 and above).

Volume: If you have volume based shipments. Values that can be used ex. -100 (up to 100), 100-200 (between 100-200), 200- (200 and above). Else leave blank (standard).

Cart Subtotal: If you have shipments based on order value. Values that can be used ex. -500 (up to 500), 500-1000 (between 500-1000), 1000- (1000 and above). Else leave blank (standard).

Other important fields

Custom Pick Up Location: Select your pick-up location service to make it possible for customers to select their pick up location in checkout, you need to have this on your account as well, contact nShift if you are not sure if you have Pick Up Location on your account.

Free shipping support: Makes it possible to use free shipping coupons with this method

Package type: Choose your package type that will be used with this shipment method.

Extra shipment data in JSON format: Blank as standard. For special cases.

Shipping class costs: These costs can optionally be added based on the product shipping class in WooCommerce. Read more here:

Then click “Save changes.

Orders and printing

We recommend that you turn on Automation when you configure your shipping method, it will make printing shipping labels easier.

If you have automation turned on. Follow these steps below.

As you receive an order, booking of shipment and shipping labels are created by auto. But you still need to print the labels.
To print shipping labels, mark the orders.
Choose “Bulk Actions” and “Download shipping labels”. It will create a PDF-document with all shipping labels.
If you want to download and print just one order, click the “Label”-link under the nShift Online column.
If you want to track an order, click the Tracking-link in the nShift Online column.

If you don’t want to use Automation follow these steps to create a shipping label and booking.
1.3.42 [2022-04-28] Improved WPML support when creating shipments
When you receive an order. Click the “Process”-button or go into the order and click “Process”-button up in the right corner.
When you click the “Process”-button it will create a booking and shipping label.
Click the “Return” button in the order-list or on the order-page in admin to create return-shipment.
Choose “Bulk Actions” and “Download shipping labels”. It will create a PDF-document with all shipping labels.
If you want to download and print just one order, click the “Label”-link under the nShift Online column.
If you want to track an order, click the Tracking-link in the nShift Online column.


1.3.52 [2022-12-08] Fixed crash when using PickUpPoints without a nShift License for it
1.3.51 [2023-12-04] Support for WooCommerce HPOS mode, made tracking-links harder to guess, using transients as cache storage
1.3.50 [2023-09-18] Support for making shipping method available for customer or business
1.3.49 [2023-09-06] Improved admin CSS
1.3.48 [2023-01-02] Support for WooCommerce below 5.6.0
1.3.47 [2022-12-13] Added $order_total variable to dynamic expressions
1.3.46 [2022-10-93] Optimized product category loading
1.3.45 [2022-07-11] Now previewing carrier and shipping service on order page
1.3.44 [2022-07-06] Improved support for third-party customizations
1.3.43 [2022-06-22] New shipping method option for parcel contents, support for bulk print in PHP 8+
1.3.42 [2022-04-28] Improved WPML support when creating shipments
1.3.41 [2022-03-28] Fixed rare race condition issue
1.3.40 [2022-03-04] New setting to specify custom customs document codes
1.3.39 [2022-02-24] Plugin now updates status of stored shipments in the background every 15 minutes
1.3.38 [2022-02-01] Added setting for detecting customs currency. Now handles decimal values entered with comma for custom packages. Added two new fields for custom data in customs declarations. Replaced Unifaun logo with nShift logo in checkout
1.3.37 Improved upgrading procedure
1.3.36 Added new availability logic field: Cart Contents Total, which is cart price after discount codes
1.3.35 General improvements
1.3.34 Product customs value is now the price on the invoice. Shipment reference for first turn-shipment of order is now without suffixe. New option for package description to use custom field on category or products
1.3.33 Added option for stacking dimension. Removed options for weight and dimension unit. Added notice on order when ignore automatically generated dimensions is enabled
1.3.32 Fix for bug with SMS add-ons were phone number contained dash. Automatically formats phone numbers in shipment data
1.3.31 Renaming of company. Renaming of Unifaun to nShift\. Added support for optional anonymous statistics
1.3.30 Added goodsDescription to all shipments
1.3.29 Added filters to enable control of order actions
1.3.28 Added Swedish to 'Get Options'. Added new setting for automatically setting zip-code from custom region selector. Improved checkout payment method support
1.3.27 Custom parcels now does not require package-code
1.3.26 Added support for stand-alone return-shipments. Added options to toggle logos in checkout. Fixed bug with saving order custom parcels. Fixed bug with bulk-printing labels
1.3.25 Using get_option instead of get_woocommerce_currency() to avoid plug-in interaction for customs declarations
1.3.24 Product customs value now excludes VAT if order is paid without VAT
1.3.23 Products value in customs declarations are now loaded from order instead of product
1.3.22 Fixed bug with wrong weight calculation in customs declarations
1.3.21 Onboarding support for new Wordpress jQuery version
1.3.20 Fixed bug with selected admin service not being saved in some circumstances\n' Customs declarations now have one line per unique product instead of unique HS-code
1.3.19 Fixed bug with Customize Parcels checkbox on orders
1.3.18 Fixed bug with customs declarations information in variable products attributes
1.3.17 Fixed bug with Onboarding with first-time users
1.3.16 Added FedEx logo. Fixed bug with not saving selected package type
1.3.15 Released nShift Onboarding Support
1.3.14 Orders with company name now uses company name in shipment name field
1.3.13 Added order argument to third-party filters
1.3.12 Now loads carriers, services, add-ons and package-types from API
1.3.11 Added new shipping method option: Custom Quick Id Field that makes it possible to control quick id on product basis
1.3.10 Fixed some log notices
1.3.9 Fixed issue with product identification when order was placed in different language than admin dashboard
1.3.8 Fixed issue with static call to non-static method
1.3.7 Added option for tracking-links in order-emails
1.3.6 Improved shipping package item identification
1.3.5 Improved customs declaration support for product variations
1.3.4 Improved volume calculation. Improved support for shipping packages with multiple attributes per variant
1.3.3 Fixed issue with processing orders with products no longer in system
1.3.2 Fixed issue with DB Schenker agents for invalid zip-codes
1.3.1 Fixed potential bug with not saving agent on session
1.3 Added support for package shipping
1.2.24 Added support for using fields for customs information
1.2.23 Fixed issue with PostNord agents by not sending street address for custom pick up agent lists
1.2.22 Now possible to customize package width, height, contents and length
1.2.21 Fixed minimum weight support when below zero
1.2.20 Added support for percent-based shipping costs
1.2.19 Bulk printing now includes additional order shipping labels
1.2.18 Added message field to options and made general fields dynamic
1.2.17 Added support for multiple labels for a shipment
1.2.16 Added support for Pacsoft Online tracking links. Added support for turn, turn and return and return shipments
1.2.15 Added service Postnord - Varubrev Norge (P79)
1.2.14 Added support for automatic updates
1.2.13 Changed logic for agents, now only sends quickId
1.2.12 Fixed bug where agent was missing but PUPOPT selected
1.2.11 Receiver state is only included when country has required states
1.2.10 Product customs attributes now works with variable products
1.2.9 Pick-up agents are displayed with address1 and city as well
1.2.8 Added dimension priority setting to force dimensions in certain order. Made first agent pre-selected. Reference prefix is not required any more. Added another dynamic prefix reference option
1.2.7 Improved cart single method design. Added ajax-loader to Klarna Checkout v3 checkout. Using get_order_number() instead of id as order-reference
1.2.6 Added checkbox to make custom packages optional. Added support for setting a orders shipping when it does not have any
1.2.5 General options send email to now supports dynamic value. Added Parcel Contents option Product SKUs
1.2.4 Now possible to use variables inside custom JSON data
1.2.3 Fixed bug with custom package type not automatically being used
1.2.2 Fixed issue were shipping went blank when pressing Get options
1.2.1 Optimized JavaScript event triggers in checkout
1.2.0 Added support for disabling sending calculated dimensions. Improved dimension calculations. Added calculated dimensions preview. Added automatic weight and unit conversions. Added support for minimum weight
1.0.17 Added translation support with text-domain: msunifaunonline. Improved design when only one method exists
1.0.16 Added add-ons for DHL Paket (AEX)
1.0.15 Added support for shipping state
1.0.14 Fixed bug with availability filter
1.0.13 Added support for address line 2. Third-party customizations with filters mediastrategi_unifaun_api_shipment and mediastrategi_unifaun_shipment_available
1.0.12 Fixed potential issue with disappearing add-ons
1.0.11 Added support for free shipping coupons
1.0.10 Added support for custom quick id per shipping method
1.0.9 Added support for customs value attribute
1.0.8 Added support for customs source country code
1.0.7 Added security customs document and collect products with same HS Code
1.0.6 Fixed potential bug with unintentional shipping processes. Added support for additional labels and customs
1.0.5 Updated library with more package-types and add-ons. Improved multi-site support
1.0.4 Fixed issue where get_instance_id() was not available
1.0.3 Added support for tax prices on shipping methods
1.0.2 Updated REST library with more carriers, services and add-ons
1.0.1 Added support for Stored Shipments, fixed bug with notice on PHP Strict Standards

Updated on: 08/12/2023

Was this article helpful?

Share your feedback


Thank you!