Shipmondo Print Client has two main functions:
Automatic print of shipping labels directly to the printer, through our RESTful API or from your Shipmondo account. Click here to find more info.
Possibility of integration with older accounting and ERP systems by using a simple file exchange (JSON/XML format).
This guide explains how to configure and employ file integration via Shipmondo Print Client.
Note: We recommend that you integrate through our RESTful API directly, instead of using file exchange through Shipmondo Print Client, as this will ensure broader support of features.
Install the Print Client - 5 simple steps
Follow these 5 simple steps to instal the Shipmondo Print Client.
Configuration of Shipmondo for file exchange
Start the Shipmondo app and choose File integration.
Start by enabling the file integration must be enabled. Tick the Activate box in the top right corner.
The next step is configuring the following paths:
Input folder: a path to the folder where new files should be imported
Successful folder: upon successful shipment creation, the file from Input is moved here
Error folder: upon failed shipment creation, the file from Input is moved here
Response folder: upon successful shipment creation, a new file containing shipment data is created and stored in this folder
Note! Don't use the same folder for Input and Success as this can cause issues.
Make sure you restart your app after you've completed the above setup. If there's an error in your setup, it'll be reported under Activity.
File format
The structure of both XML and JSON files is based on Shipmondo's API v3, which is further described in our specification.
In the beginning of the files, there are a few extra fields that describe the endpoint and HTTP method.
Note! Character encoding for the files must be UTF8 for both JSON and XML.
Troubleshooting
If there is an error in a file that fails to load, the file will be moved to the specified error folder, as well as noted under Activity > Activities.
Format of JSON
The file is structured with the following fields:
method: describes the HTTP method to use in this call
endpoint: describes which endpoint to call
data: the data to use for the POST/PUT method
Parameters for the GET method, such as pagination and ID, are specified in the root.
GET examples
Get shipments with a specific ID
{
"method": "GET",
"endpoint": "shipments",
"id": "3520"
}
Get shipments without pagination
{
"method": "GET",
"endpoint": "shipments"
}
Get shipments with parameters (pagination)
{
"method": "GET",
"endpoint": "shipments",
"page": "6",
"per_page": "1"
}
POST examples
Create shipment
{
"method": "POST",
"endpoint": "shipments",
"data": {
"test_mode": true,
"own_agreement": false,
"label_format": null,
"product_code": "GLSDK_SD",
"service_codes": "EMAIL_NT,SMS_NT",
"automatic_select_service_point": true,
"sender": {
"name": "Min Virksomhed ApS",
"attention": "Lene Hansen",
"address1": "Strandvejen 6",
"address2": null,
"zipcode": "5240",
"city": "Odense NØ",
"country_code": "DK",
"email": "info@minvirksomhed.dk",
"mobile": "70400407",
"telephone": "70400407"
},
"receiver": {
"name": "Lene Hansen",
"attention": null,
"address1": "Skibhusvej 52",
"address2": null,
"zipcode": "5000",
"city": "Odense C",
"country_code": "DK",
"email": "lene@email.dk",
"mobile": "12345678",
"telephone": "12345678",
"instruction": null
},
"parcels": [
{
"weight": 1000
}
],
"print": false,
"print_at": {
"host_name": "DESKTOP-Q9L1EEB",
"printer_name": "Brother HL-L2340D series Printer",
"label_format": "a5"
},
"replace_http_status_code": false,
"reference": "Order 10001"
}
}
Format of XML
XML files are structured in the same way as JSON files, except that they have a root element called request. Parameters are specified under the request element.
Arrays are listed as follows:
<parcels>
<parcel>
<weight>1000</weight>
</parcel>
<parcel>
<weight>1000</weight>
</parcel>
</parcels>
GET examples
Get shipments with a specific ID
<?xml version="1.0" encoding="UTF-8"?>
<request>
<endpoint>shipments</endpoint>
<method>GET</method>
<id>3250</id>
</request>
Get shipments without pagination
<?xml version="1.0" encoding="UTF-8"?>
<request>
<endpoint>shipments</endpoint>
<method>GET</method>
</request>
Get shipments with parameters (pagination)
<?xml version="1.0" encoding="UTF-8"?>
<request>
<endpoint>shipments</endpoint>
<method>GET</method>
<page>6</page>
<per_page>1</per_page>
</request>
POST examples
Create shipment
<?xml version="1.0" encoding="UTF-8"?>
<request>
<endpoint>shipments</endpoint>
<method>POST</method>
<data>
<test_mode>true</test_mode>
<own_agreement>false</own_agreement>
<label_format>zpl</label_format>
<product_code>GLSDK_SD</product_code>
<service_codes>EMAIL_NT,SMS_NT</service_codes>
<reference>Order 10001</reference>
<automatic_select_service_point>true</automatic_select_service_point>
<sender>
<name>Min Virksomhed ApS</name>
<attention>Lene Hansen</attention>
<address1>Hvilehøjvej 25</address1>
<address2></address2>
<zipcode>5220</zipcode>
<city>Odense SØ</city>
<country_code>DK</country_code>
<email>info@minvirksomhed.dk</email>
<mobile>70400407</mobile>
</sender>
<receiver>
<name>Lene Jensen</name>
<attention></attention>
<address1>Skibhusvej 52</address1>
<address2></address2>
<zipcode>5000</zipcode>
<city>Odense C</city>
<country_code>DK</country_code>
<email>lene@email.dk</email>
<mobile>12345678</mobile>
<instruction null="true" />
</receiver>
<parcels>
<parcel>
<quantity>1</quantity>
<weight>1000</weight>
</parcel>
</parcels>
<print>false</print>
<print_at>
<host_name>WAREHOUSE-PC</host_name>
<printer_name>Zebra Zdesigner GK420D</printer_name>
<label_format>zpl</label_format>
</print_at>
</data>
</request>