Klarna Shipping Assistant

Klarna Shipping Assistant

Klarna Shipping Assistant for WooCommerce is not compatible with Klarna External Payment Methods.

Introduction


Klarna Shipping Assistant for WooCommerce (previously Klarna Shipping Service) is an add-on plugin to Klarna Checkout for WooCommerce. This add-on plugin makes it possible to display shipping options in the Klarna Checkout (KCO) iframe provided by your Transport Management System (TMS).

Support

English: use the support form on krokedil.com to get help.

Svenska: använd supportformuläret på krokedil.se för att få hjälp.

Helpful information before you contact us can be found in the How to prepare a support ticket article.

Useful internal links

Technical information – plugin data and changelog

Useful external links

English product page on krokedil.com

Svensk produktsida på krokedil.se


Requirements


  • Your Klarna account needs to be activated for Klarna Shipping Assistant with TMS before using this plugin.
  • Requires WooCommerce together with Klarna Checkout for WooCommerce to be used.
  • Klarna Shipping Assistant is used for handling the shipping methods in your store. However, it is still required to have at least one native WooCommerce shipping method active for each shipping zone you enabled KSA.
  • HTTPS is not required on your site, but strongly recommended.

Installation


To install this plugin you first need to have Klarna Checkout for WooCommerce installed.

  1. Download the .zip file
  2. Go to: WordPress Admin → Plugins → Add New and upload the file via Upload plugin.
  3. Install Now and Activate.

Configuration


  1. Navigate to WooCommerce > Settings > Payments and select Klarna Checkout.
  2. Make sure that the checkbox Shipping methods in iframe is ticked in the Shipping settings section.
  3. Save the payment gateway settings.
  4. Navigate to WooCommerce > Settings > Shipping.
  5. For every shipping zone you have created you need to add Klarna Shipping Assistant as a new shipping method.
  6. Make sure that the Klarna Shipping Assistant shipping method is the first shipping method in the list of available shipping methods for the zone that you are configuring.

If everything is working fine you should be able to see the shipping methods provided by your TMS in the KCO iframe now:

Each TMS system has its own configuration process to connect to Klarna.


Shipping data in WooCommerce order


When an order has been created in WooCommerce, the name and price of the selected shipping method in the KCO iframe is added to the order.

The entire shipment data sent from Klarna for the order is also stored in the WooCommerce order, as an order meta field with the name _kco_kss_data. This data is stored as a json object with the following structure:

{
	"id": "id-1000",
	"name": "Pickup Box",
	"price": 500,
	"tax_amount": 0,
	"tax_rate": 0,
	"preselected": false,
	"shipping_method": "BoxUnreg",
	"delivery_details": {
		"carrier": "instabox",
		"class": "economy",
		"product": {
			"name": "MyPack",
			"identifier": "10"
		},
		"pickup_location": {
			"id": "loc-2",
			"name": "Coop Loet",
			"address": {
				"street_address": "Storgatan 59",
				"postal_code": "97232",
				"city": "Luleu00e5",
				"country": "se"
			}
		}
	},
	"tms_reference": "100"
}

Product dimensions and shipping classes


When you have KSA activated it adds the product dimensions and shipping classes to the cart items. Dimensions the plugin looks for and adds are weight, width, height and length.

The shipping options presented in the checkout is based on your TMS configuration for the dimensions above.


Free shipping coupons


tag named ksa_free_shipping is sent to Klarna if a coupon code is used that enables the customer free shipping.

Different TMS is handling this in different ways so get in touch with your TMS-system to know how they handle free shipping coupons and how to set it up correct.


Tax settings


Since Klarna takes over the shipping cost fully with Klarna Shipping Assistant it is important that the tax settings in WooCommerce that apply to shipping matches what you have in the TMS system.

For example, if you have 25% tax applied to shipping costs in the TMS system, this tax needs to exist in WooCommerce. It is also recommended to set the tax calculations for shipping to only use this tax class to prevent any issues when using multiple different taxrates in WooCommerce.

First you need to create the tax that you want to use for the shipping method. 

After this you will want to set this tax class as the only one that can be applied to shipping.

If you have “Shipping tax class based on cart items”, it could cause a mismatch between the Klarna order and the WooCommerce order due to different taxes being applied to the shipping price in Klarna then to WooCommerce.


Subscription support


Subscriptions are supported with Klarna Shipping Assistant.

However, there might occur issues with your TMS or a third party plugin. One example is when the TMS tries to reuse the ID for the shipment of the first item for consecutive shipments, which will then fail.

When using the plugin Krokedil Shipping Connector together with Klarna Shipping Assistant this is not an issue as the shipment ID is not reused.


Tracking ID & Tracking URL reporting to Klarna


The Tracking information is sent to Klarna when the order is set as “Completed” in WooCommerce through the Klarna Order Management plugin. In order to send the Tracking data in this sequence to Klarna you will need to save the Tracking ID and the Tracking URL of the shipment to the order as a post meta before the order is set as “Completed” in WooCommerce. The post meta key we are expecting is _kss_tracking_id and _kss_tracking_url.


No booking of shipments


This plugin enables the possibility to display the shipping options provided by your TMS in the Klarna Checkout iframe. However, the actual booking of the shipment in your transport administration system is not handled in this plugin. There are a lot of TMS services available and every system has their own API. That’s why we don’t to connect to a specific TMS in this plugin.

However, if you use Klarna Shipping Assistant and have nShift (previously Unifaun) as a logistics partner, you can use our Krokedil Shipping Connector to book deliveries in Unifauns sytemprint shipping labels and see tracking link and status of delivery directly in your WooCommerce store.

Klarna Shipping Assistant is also compatible with the plugin Unifaun för WooCommerce by Redlight Media as well as Shipmondo.


Compatibility issues


Dynamic shipping VAT

Issue with dynamic shipping VAT when selling products with different VAT rates in PostNord and Klarna Shipping Assistant (KSA)

If you are using Postnord as the TMS (in Klarna’s portal) and KSA together with Klarna Checkout for WooCommerce and have mixed VAT rates on the products, there is a high risk of having a mismatch in the shipping price between Klarna’s iframe and WooCommerce in the checkout.

The core problem is that taxes in WooCommerce are not dynamic in the same way, and instead need to be set up manually. In this case, it would require the store to configure all VAT rates from 0% to 25%. That means rates like 0.00, 0.01, 0.02, 0.03 … 24.99, 25.00 would need to be set for it to work correctly. This is not feasible.

The reason for the issue with PostNord is that they calculate the shipping VAT dynamically, based on the products in your cart. Which is then sent from PostNord to Klarna and displayed in Klarna’s iframe.

In other TMSs, like nShift and Shipmondo, there is the option to set a fixed VAT rate, as referenced here. This avoids mismatches at checkout.

An example:
If there is a mixed cart with products taxed at 6%, 12%, and 25%, the VAT rate on the shipping will be a very odd amount, for example 16,57%. This is because an average value is calculated based on the number of products of each tax rate the order contains. The issue in WooCommerce is that this VAT rate does not exist (as WooCommerce cannot handle dynamic VAT rates), so the totals will differ.

Our recommendation is to contact PostNord or Klarna regarding this issue so that they can address it internally.

Giftcards

Currently there are issues when using a giftcard and Klarna Shipping Assistant together.

Since the plugin do not use the callback, we have to remove the shipping lines from the order data we send to Klarna. This causes us to either have to send a negative order value or an incorrect order value when applying a giftcard that covers the entire order, due to the shipping line cost not being added to the order data.