Introduction

Introduction

Krokedil Shipping Connector is a plugin which makes it possible for you as a merchant to create or store shipments in nShift Delivery (previously Unifaun Online) directly from WooCommerce.

You can use Krokedil Shipping Connector (KSC) together with nShift Checkout, or you can use KSC with Klarna Shipping Assistant (KSA) which is a part of Klarna Checkout.


Requirements


  • Requires a nShift Delivery (previously Unifaun Online) account with nShift Checkout (previously Unifaun DeliveryCheckout) activated.

Installation


You install this plugin just like any other WordPress plugin:

  1. Download and unzip the latest release zip file.
  2. If you use the WordPress plugin uploader to install this plugin skip to step 4.
  3. Upload the entire plugin directory to your /wp-content/plugins/ directory.
  4. Activate the plugin through the ‘Plugins’ menu in WordPress Administration.

Configuration – plugin


Navigate to WooCommerce Settings Shipping.

Now Krokedil Shipping Connector is displayed as an available option in the horizontal menu at the top. Click on this link to access the Krokedil Shipping Connector settings.

The settings are divided into several subcategories, currently General settings, nShift settings and (optionally) Printnode settings.

General settings

  1. Debug log – Log events in the module. You can find the log by navigating to → WooCommerce → Status → Logs.
  2. Printnode – Check this box to enable the Printnode settings section.

nShift settings

  1. nShift id – Your nShift API ID. Available from your nShift Delivery account. 
    In your nShift Delivery account, navigate to → Maintenance → API keys, and click on the search button. Now you will see a list of the API Keys in your account. Click on the “Pen” next to API Id. Now you will find the ID.
  2. nShift secret id – Your nShift Secret API ID. Available from your nShift Delivery account. 
    In your nShift Delivery account, navigate to → Maintenance → API keys, and click on the search button. Now you will see a list of the API Keys in your account. Click on the “Pen” next to API Id. Now you will find the Secret ID.
  3. nShift quick id – Your nShift Quick ID. Available from your nShift Delivery account.
    In your nShift Delivery account, navigate to  → maintenance → senders → and click on the search button. Now you will see a list of the API Keys in your account. Now you will see a list of the companies you have added and there you will see the Quick ID for each individual company.
  4. nShift printing favorite mapper – Map Delivery Option Title with Printing favorite Name.
    – The key in each object (e.g. DHL Service Point and Bring hemleverans) is the name of the shipping method. It is only used for you to remember which shipping method this is. It will not be used by the plugin.
    shipment_id is the id of the shipping method used by nShift. A collection of shipping methods and their id’s can be found in your nShift Delivery account by navigating to Help Code lists.
    printing_favorite is the Printing favorite Name available in your nShift Delivery account. In your nShift Delivery account, navigate to → Maintenance → Printing favorites → and click on the search button. Now you will see a list of your printing setups. You should add the Name on the one you want to use as a favorite in the plugin settings.
    return_shipment_id is the id of the return shipping method used by nShift. If entered, a button will appear in the Krokedil Shipping Connector metabox in the WooCommerce order, where you can create return shipments manually.
    – Enable the the possibility to add delivery date in create shipment request (if supported by the shipping service) per shipping method by adding enable_delivery_date and set it to “yes“. Set “no” to disable.
    – Enable the the possibility to add delivery time in create shipment request (if supported by the shipping service) per shipping method by adding enable_delivery_time and set it to “yes“. Set “no” to disable.

    The data saved in this setting must be saved as valid JSON for the mapper to work. You can check if your text is valid JSON at jsonlint.com. Here is an example how to enter the text:
{
	"DHL Service Point": {
		"shipment_id": "ASPO",
		"printing_favorite": "Avisering",
		"return_shipment_id": "ASPOR",
		"return_shipment_printing_favorite": "Returnfavorite",
		"package_code": "BOX"
		"enable_delivery_date": "yes",
		"enable_delivery_time": "no",

	},
	"Bring hemleverans": {
		"shipment_id": "BOXCD",
		"printing_favorite": "",
		"return_shipment_id": ""
	}
}
  1. Fallback printing favorite – Enter your default nShift Printing favorite Name. Will be used if no match is found in the “nShift printing favorite mapper”. 

Order management settings

  1. Create shipment action – Select when the shipment for an order should be created. Manually by the merchant or automatically when order status changes to Processing or Completed.
  2. Create Shipment or Store Shipment – Select where you want to handle the shipments and printing of the pdf shipment labels.
    Create Shipment: Handle Shipments and PDF printing in WooCommerce.
    Store Shipment: Handle Shipments and PDF printing in nShift.
    Detailed explanation here.
  3. Stored shipment status interval – Enter the interval in minutes, how often the plugin should check for stored shipment status changes in nShift. Leave blank to disable this feature.
  4. Choose status on orders with Krokedil Shipping Connector – Check this box to enable if you want the order status in WooCommerce to change on orders when the shipment is edited, created/stored, with Krokedil Shipping Connector plugin.
    When enabled the following to settings are activated:
    • Order status when Shipment is created – Select which status the order should get when Shipment is created.
    • Order status when Shipment is cancelled – Select which status the order should get when Shipment is cancelled.

Shipment config

  1. Use order data – Check this to use WooCommerce order data, instead of data stored in the prepared shipment order in nShift, when creating a shipment.
  2. Multiple parcel booking – Enable the possibility to book multiple parcels in one shipment. Note: Not all shipping services support multiple parcels. If enabled this logic is handled via WooCommerce order view.
  3. Delivery date – Enable the possibility to add delivery date in create shipment request (if supported by the shipping service). If enabled this logic is handled via WooCommerce order view.
  4. Delivery time – Enable the possibility to add delivery time in create shipment request (if supported by the shipping service). If enabled this logic is handled via WooCommerce order view.
  5. Prenotification message – Enable the possibility to add prenotification message in create shipment request. If enabled this logic is handled via WooCommerce order view.
  6. Delivery instruction – Check this box to enable the possibility to add delivery instruction in create shipment request. If enabled this logic is handled via WooCommerce order view.
  7. SMS notification – Check this box to enable SMS notification and send SMS to the customer when their package is shipped. Requires specific addon (NOTSMS) to be activated in your nShift account.
  8. Email notification – Check this box to enable email notification and send email to the customer when their package is shipped. Requires specific addon (NOTEMAIL) to be activated in your nShift account.
  9. Sync address state – Select the countries where you want the customer address state to be sent in the create shipment request.
  10. nShift parcel content text – General description of the content. Used when creating the shipment.
  11. Enable customs product fields – Check this box to add customs specific settings fields in product pages. Fields for Tariff code, Tariff description, Y code and Manufacturing country will be added if enabling this setting.
  12. Manufacturing country – Default country code, used for customs declaration document. Will be used if no Manufacturing country is entered on product level.

Please note that when Delivery date and/or Delivery time is checked, it/they will always be a visible option in the Krokedil Shipping Connector Status metabox. Regardless of whether the shipping method supports it or not. Please see nShift printing favorite mapper in the nShift settings section above on how to enable it per shipping method.

Label config

  1. Label size – Select shipment and return shipment label size.
  2. Label X offset – Enter label X offset in mm. Use 0 for no offset.
  3. Label Y offset – Enter label Y offset in mm. Use 0 for no offset.

Customer message

  1. nShift Track & Trace – Tracking link of the shipment will be available for customer and merchant. (Requires you to have the additional “Track & Trace” service active on your nShift-plus account).
  2. Send customer note – Send customer note email to customer when shipment is created.
  3. Customer note text – The text you want to send with the customer note email. Use {customer_name} where you want the customer name to be, and {tracking_link}, {tracking_id}, {pickup_point} for the link, ID and pickup location respectively.

Configuration – nShift and Klarna Shipping Assistant


For more information on how to configure nShift Checkout and Klarna Shipping Assistant, please see the specific pages for these settings:


Conditional shipping methods


In some cases you might want to enable or disable specific shipping methods if a certain condition is met. For instance if an order contains bulky goods then delivery by bicycle might not be an option. To be able to handle these conditions the Klarna Shipping Assistant plugin sends WooCommerce Product Shipping Classes to Klarna/nShift. I you would like to disable a specific shipping method if a certain product shipping class exist in an order you can do the following:

  1. Add a shipping class to a product. In this case we call it Bulky.
  2. Navigate to nShift Delivery and edit the delivery checkout you are using for the KSA integration.
  3. Add a new Parameter. Give it the same name as the WooCommerce Shipping Class slug (in our case bulky). Set the Type to Boolean and specify the default value (in our case false).
  4. Now you need to configure each delivery option and specify the Condition.

    The shipping options that should be available only when an order doesn’t contain Bulky goods you enter bulky = false in the Condition box. 

    The shipping options that should be available only when an order does contain Bulky goods you enter bulky = true in the Condition box. 
  5. After saving the changes you can first test the Delivery checkout directly in nShift online test tool. When you see that it is working you can test it in Klarna Checkout.

Free shipping coupons 


In the same way as product shipping classes is passed to Klarna (and then forwarded to nShift), a tag named ksa_free_shipping is sent to Klarna if a coupon code is used that enables the customer free shipping. In the same way as the bulky example in the Conditional shipping methods section above, you can enable free shipping in the nShift Checkout configuration if ksa_free_shipping = true.


Create Shipment or Store Shipment


“Create Shipment” and “Store Shipment” is two different flows of the Krokedil Shipping Connector plugin and will make it possible for you to choose where you want to handle your shipments and pdf shipment labels. 

Create Shipment

If choosing “Create Shipment” the creation of the shipment will be done directly from WooCommerce. The pdf shipment label will be generated as soon as the “Create Shipment” button has been clicked. The pdf shipment label can be accessible through navigating to the specific order or through action buttons on the order overview page in WooCommerce backend.

Store Shipment

If choosing “Store Shipment” the creation of the shipment will be done from your nShift account. The shipment will be sent to a printing queue called “Stored Printings” in nShift. In order to create the shipment you will have to login to your nShift account and once the pdf shipment label is printed the shipment will be created.


Order management


Only orders made through Klarna Shipping Service will have the ability to have the shipment be created or stored.

Create Shipment

  1. Navigate to → WooCommerce → Orders.
  2. You can Create a shipment in multiple ways.
    1. Clicking the truck icon located to the right when viewing all orders.
    2. Selecting the Create Shipment option in the WordPress Bulk Action drop down menu.
    3. Navigating to the specific order and clicking the Create Shipment button located inside the metabox to the right.
  3. If a shipment was successfully created, the order note will display Shipment successfully created.

Store Shipment

  1. Navigate to → WooCommerce → Orders.
  2. You can Store a shipment in multiple ways.
    1. Clicking the arrow icon located to the right when viewing all orders.
    2. Selecting the Create Stored Shipment option in the WordPress Bulk Action drop down menu.
    3. Navigating to the specific order and clicking the Create Stored Shipment button located inside the metabox to the right.
  3. If a shipment was successfully stored, the order note will display Shipment successfully stored.

Cancel Shipment

  1. Navigate to → WooCommerce → Orders.
  2. Navigating to the specific order and clicking the “Cancel Shipment” button located inside the metabox to the right.
  3. If a shipment was successfully cancelled, the order note will display “Shipment successfully cancelled”.

Remove Stored Shipment

  1. Navigate to → WooCommerce → Orders.
  2. Navigating to the specific order and clicking the “Remove Stored Shipment” button located inside the metabox to the right.
  3. If a shipment was successfully removed, the order note will display “Shipment successfully removed”.

Modify data sent to nShift


If yo need to add, remove or edit data sent to nShift when the create shipment request is triggered, you can use the filter  ksc_create_shipment_body.

Here is an example how to add a pickup date (which is required but not provided by Klarna or nShift) if the carrier is Budcompaniett.

<?php
/**
 * Use together with Krokedil Shipping Connector pluign.
 * https://krokedil.se/produkt/krokedil-shipping-connector/
 *
 * Modify the create shipment request body. In this case we add pickupDate if the carrier is Budcompaniet.
 * Add this code to your themes functions.php file or include it in a separate functionality plugin (https://css-tricks.com/wordpress-functionality-plugins/).
 **/
add_filter('ksc_create_shipment_body', 'custom_ksc_create_shipment_body_2', 10, 2 );

function custom_ksc_create_shipment_body_2( $args, $order ) {
	// The shimpment data for the order, selected by the customer in KCO/KSA.
	$kco_kss_data  = get_post_meta( $order->get_id(), '_kco_kss_data', true );
	$shipment_data = json_decode( $kco_kss_data, true );
	
	//Get the carrier for the order.
  	$carrier = $shipment_data['delivery_details']['carrier'];
  
  	if( 'budcompaniett' === strtolower( $carrier ) ) {
		// Send the pickup date to nShift Delivery.
		$args['service']['properties']['pickupDate' ] = date("Y-m-d");
	}
	
 	return $args;
}

Configuration – Automatic label printing via PrintNode


  1. Enable automatic label printing via PrintNode – Check this box to enable automatic label printing via PrintNode.
  2. API key – The PrintNode API key.
  3. Print shipping label – Tick this checkbox to enable printing of shipping label via PrintNode when shipment is created in nShift.
  4. Printer ID – shipment label – Enter the Printer ID used for printing shipment labels.
  5. Print return label – Tick this checkbox to enable printing of return label via PrintNode when return shipment is created in nShift.
  6. Printer ID – return label – Enter the Printer ID used for printing return labels.
  7. Print customs document – Tick this checkbox to enable printing of customs document via PrintNode when shipment is created in nShift.
  8. Printer ID – customs document – Enter the Printer ID used for printing customs document.