nShift Delivery

Integration with nShift Delivery (Unifaun) for shipment booking in Omnium.

nShift Delivery API

Omnium integrates with nShift Delivery (formerly Unifaun) for comprehensive shipping management, including delivery checkout widgets, shipment booking, label generation, and direct printing.


Configuration Steps

  1. Navigate to: Configuration > Settings > Orders > Shipping providers > Add New

Required Settings

FieldDescriptionExample
NameInternal provider namenShift
Display NameName shown to usersnShift Delivery
Shipping ProviderSelect provider typeUnifaun
Merchant IDYour nShift user/merchant IDuser@company.com
Merchant SecretBearer token for API authenticationyour-api-token
Base URLnShift API endpointhttps://api.unifaun.com
Vue TemplateUI template for widget displayunifaun-provider

Optional Settings

FieldDescription
Add Tax On Provider PriceAdd tax to prices returned by nShift
Add Product Names To LabelInclude product names/SKUs on shipping labels
Print LabelEnable label printing (default: true)
Tracking URLTemplate URL with {languageCode} and {orderNumber} placeholders

Widget Configuration

To enable the nShift delivery checkout widget in Omnium:

  1. Set Vue Template to unifaun-provider
  2. Add a property with key UseWidget and value true

Shipment Options

Adding shipment options for each market

Under each market, define the shipping options available in your webshop. You have two booking methods:

If your webshop uses the nShift widget at checkout, retrieve a prepareId from the user session and store it on the Omnium cart or order in the property list:

{
  "properties": [
    {
      "key": "UnifaunPrepareId",
      "value": "6f977858-35b8-4d5f-8fa6-5d46456543"
    }
  ]
}

When using prepareId, configure a single shipping option with:

  • Shipping Method: Unifaun_deliveryCheckout

Option 2: Direct Booking

Configure individual shipping options for each delivery method:

FieldDescription
Shipping ProviderSet to Unifaun
TemplateStandard for home delivery, PickUp Point for pickup points
Delivery TypeDelivery (sent to customer) or Pickup (collected at store)
Display NameUser-friendly name
Shipping MethodInternal name for mapping order shipments
Shipment ProductService ID from nShift
Shipment Return ProductService ID for return bookings

Store Configuration

QuickId Configuration

nShift supports QuickId for simplified sender identification. Configure on the store or shipment option:

PropertyDescription
QuickIdnShift sender quick ID
PreferQuickIdSet to true to use only QuickId without full address details

Printer Configuration

For direct printing, configure the printer ID:

LocationProperty Key
User preferencesUnifaunPrinterId
Store propertiesUnifaunPrinterId

Delivery Checkout / Delivery Options

Custom Fields

Configure custom fields for delivery checkout queries using the DeliveryCheckoutCustomFields property. Use pipe-delimited key:value pairs:

FieldDescription
MaxVolumeMaximum package volume (m³)
TotalWeightTotal shipment weight (kg)
MaxLengthMaximum length (cm)
MaxWidthMaximum width (cm)
MaxHeightMaximum height (cm)
DangerousGoodsBoolean flag for dangerous goods
IsB2BBoolean flag for B2B orders
TotalPriceOrder total price
PickUpInStoreNotPossibleBoolean for pickup availability
AcquisitionGroupProduct acquisition group parameters
FreightClassMinimum freight class from products

Additional Query Parameters

Add custom query parameters to delivery checkout requests using the order property:

  • Key: UnifaunDeliveryOptions_AdditionalQueryStringParameters

Return Shipments

Configuration

  1. Set Shipment Return Product on the shipment option with the nShift service ID for returns
  2. The system automatically reverses sender/recipient addresses for return bookings

Special Handling for Bring Carriers

For Bring carriers (products starting with 'b'), return bookings use direct consignment requests instead of the prepareId method.


Label Management

PDF Configuration

Labels are generated with the following default settings:

  • Target 1: thermo-se (Swedish thermal printer)
  • Target 2: laser-a4 (A4 laser printer)

Label Storage

Labels are uploaded to Azure Blob Storage in the unifaunshippinglabels container.

Direct Printing

To enable direct printing:

  1. Configure UnifaunPrinterId on user preferences or store
  2. Labels are sent to the printer queue automatically
  3. Batch processing supports up to 50 shipments per batch

Dangerous Goods Support

Products can be marked with dangerous goods flags. If ANY flag is true, the order is marked as containing dangerous goods:

  • Explosive
  • Corrosive
  • Oxidizing
  • Toxic
  • Harmful
  • Strong odor
  • Environmentally hazardous
  • Gas under pressure
  • Aerosol
  • Harmful to health
  • Flammable

Store dangerous goods information as JSON in the product's DangerousGoods property.


API Endpoints

EndpointPurpose
GET /rs-extapi/v1/delivery-checkouts/{merchantId}Query delivery options
POST /rs-extapi/v1/shipments/Book direct shipments
POST /rs-extapi/v1/delivery-checkouts/{merchantId}Prepare shipments (creates UnifaunPrepareId)
GET /rs-extapi/v1/prepared-shipments/{orderId}Get prepared shipment data
POST /rs-extapi/v1/prepared-shipments/{prepareId}/shipmentsBook prepared shipment
GET /rs-extapi/v1/shipments/{shipmentId}/pdfs/{pdfId}Download label PDF
POST /rs-extapi/v1/print/shipments/{shipmentId}/prints/{labelId}/printjobsSubmit to printer

Error Handling

Error Keys

Error KeyDescription
UnifaunBookingErrorBooking failure for standard shipments
UnifaunBookingReturnErrorBooking failure for return shipments

Errors are stored on the Order entity and automatically removed on successful booking.


Supported Features

FeatureSupported
Delivery checkout widgetYes
Outbound shipment bookingYes
Return shipment bookingYes
PrepareId-based bookingYes
Direct shipment bookingYes
Label generation (PDF)Yes
Direct printingYes
Pickup point selectionYes (via widget)
Dangerous goods handlingYes
B2B/B2C differentiationYes
Tax calculationsYes
Multi-parcel shipmentsYes

Troubleshooting

Common Issues

  1. Booking fails with invalid phone number: The system validates phone numbers against market patterns. Ensure the phone number matches the destination country format.

  2. PrepareId not found: Verify the UnifaunPrepareId property is set on the order or shipment properties.

  3. Widget not loading: Check that UseWidget property is set to true and Vue Template is unifaun-provider.