nShift Ship

Integration with nShift Ship (Consignor) for shipment booking in Omnium.

Omnium integrates with nShift Ship V1 (formerly Consignor Shipping Advisor) for shipment booking, label generation, and pickup point services.

nShift Ship API V1


Configuration Steps

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

Required Settings

FieldDescriptionExample
NameInternal provider nameConsignor
Display NameName shown to usersnShift Ship
Shipping ProviderSelect provider typeConsignor
Merchant IDActor CSID from nShift3996
Merchant SecretAPI Key from nShiftyour-api-key
Base URLnShift Ship API endpointhttps://www.shipmentserver.com/ship/ShipmentServerModule.dll

Optional Settings

FieldDescription
API TokenOptional additional token
Tracking URLTemplate for tracking links
Is TestEnable test mode

Shipment Options

Adding shipment options for each market

Configure shipping options under each market:

FieldDescription
Shipping ProviderSet to Consignor
Delivery TypeDelivery (sent to customer) or Pickup (collected at store)
Display NameUser-friendly name
Shipping MethodInternal name for mapping
Shipment ProductProduct Concept ID from nShift (integer)
Shipment Return ProductProduct Concept ID for returns
Shipping CompanyCarrier name (e.g., DHL) for special handling

Service Configuration

Add provider services as a comma-separated list of service IDs:

  • Provider Services: 442021, 442022

ConsignorServiceId Property

For pickup point filtering, add to shipment option properties:

{
  "key": "ConsignorServiceId",
  "value": "442021"
}

Store Configuration

Actor ID Override

Override the default Actor ID per store using External IDs:

  • Provider Name: ConsignorActorId
  • ID: Store-specific Actor CSID

Multi-tenant Authentication

Configure store or market-specific authentication in the shipping provider's AuthSettings:

{
  "AuthSettings": [
    {
      "Id": "store-id",
      "AuthLevel": "Store",
      "MerchantId": "store-actor-id",
      "MerchantSecret": "store-api-key"
    },
    {
      "Id": "market-id",
      "AuthLevel": "Market",
      "MerchantId": "market-actor-id",
      "MerchantSecret": "market-api-key"
    }
  ]
}

Store-level authentication takes priority over market-level.


Pickup Points (Drop Points)

Configuration

The Consignor provider supports pickup point lookup via the GetDropPoints API.

Request Parameters

ParameterDescription
ProdConceptIDProduct concept ID from shipment option
ResultCountMaximum results (default: 10)
ServicesOptional service ID filter from ConsignorServiceId property

Pickup Point Data

Returned pickup points include:

  • Service point ID (OriginalID)
  • Name and address
  • Latitude/longitude coordinates
  • Distance from search location
  • Contact information (phone, email)

Booking Process

Standard Shipment Booking

  1. Shipment request is built from order and shipment data
  2. Addresses are mapped (sender from store, recipient from order)
  3. Package weights converted to grams (kg * 1000)
  4. Services parsed from shipment option configuration
  5. Request submitted via "SubmitShipment" command
  6. Labels uploaded to Azure Blob Storage (consignorshippinglabels container)
  7. Tracking URL retrieved

Return Shipment Booking

  1. Uses ShipmentReturnProduct instead of ShipmentProduct
  2. Addresses reversed (customer becomes sender, store becomes recipient)
  3. Additional return documentation handled (waybills)

DHL-Specific Features

When Shipping Company is set to DHL:

  • Pickup times are automatically set (14:00-16:00 next business day)
  • Driver messages can be added via store property ConsignorMessageToDriver

Label Management

Label Storage

Labels are uploaded to Azure Blob Storage:

  • Container: consignorshippinglabels
  • Format: PDF
  • Naming: {shipment-id}.pdf

Multiple Labels

For shipments with multiple packages:

  • First label (index 0): Main shipment label
  • Additional labels: Named as "Additional return doc. #1", "#2", etc.
  • If second label has PkgCSID == 0: Named "Waybill"

API Commands

CommandPurpose
SubmitShipmentBook shipment and generate labels
GetDropPointsRetrieve available pickup points
GetTrackingURLGet tracking link for booked shipment

Request Format

All requests are sent as HTTP POST with form-encoded content:

POST {BaseUrl}
Content-Type: application/x-www-form-urlencoded

options={options}&data={json}&actor={merchantId}&key={merchantSecret}&command={command}

Error Handling

Error Key

Error KeyDescription
ConsignorBookingErrorBooking failure

Error Logging

Failed bookings are logged to order events with detailed error information and the booking request for debugging purposes.


Address Mapping

Sender (Normal Shipment) / Recipient (Return)

Mapped from store:

  • Uses store's shipping address if available
  • Falls back to main store address
  • Phone/mobile from store.PhoneNumber

Recipient (Normal Shipment) / Sender (Return)

Mapped from order shipment address:

  • Customer name and address
  • Phone and email from order

Pickup Point (Drop Point)

When delivery type is pickup:

  • The pickup point address is mapped as a drop point
  • ServicePointId is included in the booking request

Goods Description

When IncludeGoodsDescription is enabled on the shipment option:

  • Order line items are added as references
  • Format: Product codes with quantities

Supported Features

FeatureSupported
Outbound shipment bookingYes
Return shipment bookingYes
Label generation (PDF)Yes
Pickup point lookupYes
Tracking URLYes
Multi-package shipmentsYes
DHL-specific handlingYes
Multi-tenant (store-level auth)Yes
Direct printingNo
Label downloadNo
Shipment status trackingNo

Troubleshooting

Common Issues

  1. Missing Product Concept ID: Ensure ShipmentProduct is set as an integer representing the Consignor Product Concept ID.

  2. No pickup points returned: Verify the ConsignorServiceId property matches available services for the product.

  3. Authentication errors: Check Actor CSID and API Key. For multi-store setups, verify store-level AuthSettings.