Hoe uitgaande verzendlabels direct op een Zebra-printer af te drukken terwijl retourlabels als PDF-bestanden worden gegenereerd die in een map worden opgeslagen.
Dit kan worden bereikt met behulp van Shipment Server samen met DropZone.
De bijbehorende Postman-collectie toont zowel de klassieke Shipment Server API als de Shipment Server REST API, evenals de vereiste configuratie in DropZone.
https://nshiftship.helpcenter.nshift.com/hc/en-us/article_attachments/28207250192156
Omgevingsvariabelen
De Postman-collectie gebruikt de volgende omgevingsvariabelen:
| Variabele | Doel |
|---|---|
| ActorID | Shipment Server Actor ID |
| KEY | Shipment Server API-sleutel |
| Username | Shipment Server gebruikersnaam |
| Password | Shipment Server wachtwoord |
| TicketUserName | DropZone-gebruiker die printopdrachten ontvangt |
| WorkstationID | DropZone werkstation installatie-ID |
| DropZoneLabelPrinterKey | DropZone printer sleutel gebruikt voor het routeren van retourlabels |
| SSAPIBaseURL | Basis-URL voor Ship API (v1) |
| SSRESTAPIBaseURL | Basis-URL voor Ship REST API (v2) |
Verschil tussen de twee Shipment Server API's
De collectie laat twee verschillende manieren zien om zendingen aan te maken.
Klassieke Shipment Server API
Endpoint:
POST https://demo.shipmentserver.com/ship
Kenmerken:
- Maakt gebruik van multipart/form-data.
- Authenticatie wordt geleverd via de aanvraagparameters.
- Een command-parameter specificeert de actie:
"command": "SubmitShipment"
- Zendinggegevens en opties worden als JSON-strings verzonden.
Shipment Server REST API
Endpoint:
POST https://demo.shipmentserver.com:8080/shipServer/{ActorID}/shipmentsKenmerken:
- Maakt gebruik van application/json.
- Maakt gebruik van Basic Authentication of OAuth.
- Actor ID maakt deel uit van de URL.
- Gegevens en opties worden als native JSON-objecten verzonden.
Functioneel verschil
Vanuit zakelijk oogpunt voeren beide API's dezelfde handeling uit:
- Een zending aanmaken.
- Labels genereren.
- Labels routeren via DropZone.
Het verschil zit alleen in de API-stijl, authenticatiemechanisme en het formaat van de payload.
DropZone-configuratie
Voordat de API-aanvragen kunnen worden gebruikt, moet DropZone worden geïnstalleerd en geconfigureerd op het werkstation dat de printopdrachten ontvangt.
1. Inloggen op DropZone
Log in met hetzelfde account dat in de API-aanvragen is opgegeven.
Voorbeeld:
"TicketUserName": "first.last.company.owner"
De werkstation installatie-ID die in DropZone wordt weergegeven, moet overeenkomen met de waarde die in de API-aanvragen wordt gebruikt.
Voorbeeld:
"WorkstationID": "014AFB70-1234-1234-1234-9CB1A646C6D0"
2. Configureer de Zebra-printer
Navigeer naar:
Printers → Nieuw
Selecteer de Zebra-printer die uitgaande verzendlabels zal afdrukken.
Voorbeeld:
Printernaam: ZDesigner GK420d
Printertype: GK240
Standaard labelprinter: True
Deze printer ontvangt labels die in Zebra-formaat zijn gegenereerd.
3. Configureer een PDF-printer voor retourlabels
Maak een Bestandprinter aan in DropZone.
Voorbeeld:
Printernaam: ZDesigner GK420d
Uitvoermap: C:\Data\PrintToFile
Printertype: PDF Label
Standaard labelprinter: False
Import Key: return-labels
De Import Key is belangrijk omdat deze direct vanuit de API-aanvraag wordt verwezen.
Voorbeeld:
"DropZoneLabelPrinterKey": "return-labels"
Wanneer Shipment Server deze waarde ontvangt, routeert DropZone het gegenereerde PDF-label naar deze printerconfiguratie.
4. Activeer Cloud Print
Open het tabblad Cloud Print in DropZone en schakel de service in.
Zonder Cloud Print ingeschakeld kan Shipment Server geen labels naar de DropZone-client leveren.
Scenario 1 – Uitgaande zending afgedrukt op Zebra-printer
Voor uitgaande zendingen specificeert de API-aanvraag:
{
"Labels": "ZPLGK",
"TicketUserName": "first.last.customer.owner",
"WorkstationID": "014AFB70-1234-1234-1234-9CB1A646C6D0"
}Processtroom
- Shipment Server maakt de zending aan.
- Er wordt een Zebra (ZPL) label gegenereerd.
- Het label wordt via Cloud Print verzonden.
- DropZone ontvangt de printopdracht.
- De Zebra-printer drukt het verzendlabel automatisch af.
Resultaat
De magazijnmedewerker ontvangt direct een fysiek label en kan dit op het pakket bevestigen.
Scenario 2 – Retourzending gegenereerd als PDF
Voor retourzendingen specificeert de API-aanvraag:
{
"Labels": "PDF",
"TicketUserName": "first.last.customer.owner",
"WorkstationID": "014AFB70-1234-1234-1234-9CB1A646C6D0",
"DropZoneLabelPrinterKey": "return-labels"
}Processtroom
- Shipment Server maakt de retourzending aan.
- Er wordt een PDF-label gegenereerd.
- De PDF wordt via Cloud Print verzonden.
- DropZone routeert het document naar de printerconfiguratie met de sleutel
return-labels. - De PDF wordt opgeslagen in de geconfigureerde map.
Resultaat
Het klantenserviceteam kan de PDF ophalen en toevoegen aan een e-mail die naar de eindklant wordt gestuurd.
Diagram
flowchart TD
A[Klantsysteem / Postman-collectie] --> B{Type zending}
B -->|Normale uitgaande zending| C[Verzendingsaanvraag indienen]
C --> C1[Opties: Labels = ZPLGK]
C1 --> C2[TicketUserName identificeert DropZone-gebruiker]
C2 --> C3[WorkstationID identificeert DropZone-installatie]
C3 --> D[Shipment Server maakt zending aan]
D --> E[Shipment Server genereert Zebra ZPL-label]
E --> F[Cloud Print verzendt label naar DropZone]
F --> G[DropZone routeert opdracht naar Zebra-printer]
G --> H[Fysiek label wordt afgedrukt]
B -->|Retourzending| I[Retourzending aanvraag indienen]
I --> I1[Opties: Labels = PDF]
I1 --> I2[DropZoneLabelPrinterKey = return-labels]
I2 --> I3[TicketUserName identificeert DropZone-gebruiker]
I3 --> I4[WorkstationID identificeert DropZone-installatie]
I4 --> J[Shipment Server maakt retourzending aan]
J --> K[Shipment Server genereert PDF-label]
K --> L[Cloud Print verzendt PDF naar DropZone]
L --> M[DropZone routeert PDF naar ReturnLabels-printer]
M --> N[PDF wordt opgeslagen in geconfigureerde map]
N --> O[PDF kan worden toegevoegd aan klantmail]