Innehåll i denna artikel:
Vad är TimeSlots
Allt fler slutkunder förväntar sig att kunna välja mellan flera leveransalternativ och att kunna välja en specifik leveranstid är något som vissa transportörer börjar erbjuda.
I nShift har vi utvecklat en lösning för att stödja bokning av tidsluckor. Den gör det möjligt för dig att visa produkter som stödjer tidsluckor i din webbshop och låta din slutkund välja den tidslucka som passar dem.
Tidslucktjänster skiljer sig från transportör till transportör. De kan användas för leverans eller upphämtning och vissa transportörer tar ut extra avgifter för att använda dessa tjänster. Fråga din transportör för mer information.
Observera: För närvarande (september 2020) stödjer vi Airmee och Porterbuddy:s tidslucktjänster. Fler är under utveckling.
Hur fungerar det
Beroende på vad du vill göra måste metoderna köras i en viss ordning:
Om du vill skapa en försändelse
1. GetShipAdvise
Extrahera Token och TimeSlotToken från den valda produkten
Se exemplet här eller dokumentationen
2. AllocateTimeSlot
Lägg till Token och TimeSlotToken i options-objektet i förfrågan.
Extrahera AllocatedTimeSlotToken från svaret
Se exemplet här eller dokumentationen
3. SubmitShipment
Lägg till Token och AllocatedTimeSlotToken i options-objektet i förfrågan
Se exemplet här eller dokumentationen
4. TransmitShipment
Se denna artikel eller dokumentationen
Om du vill avboka en försändelse
1. DeleteShipment
2. VoidTimeSlot
Lägg till AllocatedTimeSlotToken i options-objektet i förfrågan.
Se exemplet här eller dokumentationen
Exempel på förfrågningar
Observera: Shipment Server förväntar sig att förfrågningarna är kodade som form-data eller x-www-form-urlencoded
...
GetShipAdvise - Förfrågningsbody
{
"data": {
"Kind": 1,
"Addresses": [
{
"Kind": 1,
"Name1": "Test Name1",
"Street1": "Test Address 1",
"PostCode": "11825",
"City": "Stockholm",
"Phone": "004612341234",
"Mobile": "004612341234",
"Email": "noreply@nshift.com",
"Attention": "Test Attention",
"CountryCode": "SE"
}
],
"Lines": [
{
"Number": 1,
"PkgWeight": 1000,
"Height": 100,
"Length": 100,
"Width": 100,
"References": [
{
"Kind": 23,
"Value": "Test Content"
}
]
}
]
},
"options": {
"ServiceLevel": "default",
"EarliestPickup": "2020-09-22T06:00",
"LatestPickup": "2020-09-22T21:00",
"PickupWindowCount": 1,
"TimeSlots": 1,
"TimeLog": 1
},
"key": "sample",
"actor": "134",
"command": "GetShipAdvise"
}Svarskropp
{
"Products": [
{
"ProdConceptID": 5599,
"ProdCSID": 1632,
"ProdName": "Airmee - Airmee",
"Token": "_-1_0_1603_5799_1632_5599_0_0__0__30/12/1899_30/12/1899___",
"SupportsDropPoint": 0,
"TimeSlots": [
{
"Start": "2020-09-11T17:00:00",
"End": "2020-09-11T22:00:00",
"TimeSlotToken": "eyJzdGFydCI6IjIwMjAtMDktMTFUMTc6MD...",
"Expires": ""
}
]
},
{
"ProdConceptID": 675,
"ProdCSID": 1029,
"ProdName": "UPS - UPS Standard®",
"Services": [
{
"serviceid": 60041,
"name": "Leverans till UPS Access Point"
}
],
"Token": "60041_2_0_1603_5799_1029_675_0_0__0__30/12/1899_30/12/1899___",
"SupportsDropPoint": 1
}
],
"Log": []
],
"Status": 8,
"CSRMessage": "Success : List of valid products returned",
"TimeLog": []
}...
AllocateTimeSlot - Förfrågningsbody
{
"data": {},
"options": {
"TimeSlotToken": "eyJzdGFydCI6IjIwMjAtMDktMTFUM...",
"Token": "_-1_0_1603_5799_1632_5599_0_0__0__30/12/1899_30/12/1899___"
},
"key": "sample",
"actor": "134",
"command": "AllocateTimeSlot"
}Svarskropp
{
"Result": "Success",
"AllocatedTimeSlotToken": "YXRzdDtmZjIxYTlkMi1mM2ZhLTExZWEtYjY3...",
"Information": ""
}...
SubmitShipment - Förfrågningsbody
{
"data": {
"Kind": 1,
"Addresses": [
{
"Kind": 1,
"Name1": "Test Name1",
"Street1": "Test Address 1",
"PostCode": "11825",
"City": "Stockholm",
"Phone": "004612341234",
"Mobile": "004612341234",
"Email": "noreply@nshift.com",
"Attention": "Test Attention",
"CountryCode": "SE"
}
],
"Lines": [
{
"PkgWeight": 1000,
"Height": 100,
"Length": 100,
"Width": 100,
"Number": 1,
"References": [
{
"Kind": 23,
"Value": "Test Content"
}
]
}
]
},
"options": {
"AllocatedTimeSlotToken": "YXRzdDtmZjIxYTlkMi1mM2ZhLTExZWEtYjY3N...",
"Labels": "ZPLGK",
"Token": "_-1_0_1603_5799_1632_5599_0_0__0__30/12/1899_30/12/1899___"
},
"key": "sample",
"actor": "134",
"command": "SubmitShipment"
}Svarskropp
{
"ShpCSID": 5238,
"ShpESID": ...,
"ShpTag": "...",
"InstallationID": "...",
"Kind": 1,
"ShpNo": "...",
"PickupDt": "2020-09-11T00:00:00",
"LabelPrintDt": "2020-09-11T08:58:54",
"SubmitDt": "2020-09-11T08:58:55",
"Weight": 1000,
"ActorCSID": 134,
"Temperature": 1,
"CarriagePayer": 1,
"CarrierConceptID": 658,
"CarrierCSID": 75,
"SubcarrierConceptID": 1388,
"SubcarrierCSID": 275,
"ProdConceptID": 5599,
"ProdCSID": 1632,
"StackCSID": 294,
"Addresses": [
{
"Kind": 1,
"Name1": "Test Name1",
"Street1": "Test Address 1",
"PostCode": "11825",
"City": "Stockholm",
"Phone": "004612341234",
"Mobile": "004612341234",
"Email": "noreply@nshift.com",
"Attention": "Test Attention",
"CountryCode": "SE"
},
{
"Kind": 2,
"Name1": "Test Name1",
"Street1": "Test Address 1",
"PostCode": "11825",
"City": "Stockholm",
"Phone": "004612345678",
"Mobile": "004612345678",
"Email": "noreply@nshift.com",
"Attention": "Test Sender Attention",
"CountryCode": "SE"
}
],
"Amounts": [...],
"References": [...],
"Messages": [...],
"CSEvents": [...],
"Lines": [
{
"LineCSID": 5937,
"LineTag": "A6DE8AB7-292E-4CAA-B5AC-6C8B5F374E32",
"LineWeight": 1000,
"PkgWeight": 1000,
"Height": 100,
"Length": 100,
"Width": 100,
"Pkgs": [...]
}
],
"References": [...]
}
],
"Labels": [
{
"Content": "....",
"Type": 13,
"Copies": 1,
"PkgCSID": 8886,
"PkgNo": "..."
}
]
}...
VoidTimeSlot - Förfrågningsbody
{
"data": {},
"options": {
"AllocatedTimeSlotToken": "YXRzdDtmZjIxYTlkMi1mM2ZhLTExZWEtYjY3N..."
},
"key": "sample",
"actor": "134",
"command": "VoidTimeSlot"
}Svarskropp
{
"Result": "Success",
"Information": ""
}
Vanliga frågor
-
Gör AllocatedTimeSlotToken i en SubmitShipment-anrop något annat än att uppdatera fälten för leveransdatum på en försändelse?
Beror på transportören
- -
Löper en TimeSlotToken ut?
Beror på transportören
- -
Betalar en kund för att reservera en TimeSlot?
Beror på transportören
-
-
Aktiveras AllocatedTimeSlot bara när jag gör en SubmitShipment med den?
Nej, den bör aktiveras när AllocateTimeSlot-metoden anropas
- -
Vad händer om du reserverar en TimeSlot men aldrig anropar VoidTimeSlot-metoden om du inte längre behöver den?
Beror på transportören
- -
Hur vet jag hur många TimeSlots jag har reserverat?
Klienten måste hålla reda på det
- -
Om du har använt AllocatedTimeSlotToken i en SubmitShipment, anropar DeleteShipment-metoden då VoidTimeSlot-metoden eller behöver vi inte göra det?
Beror på transportörens implementation.