Skip to main content

FTP and file exchanges

Overview

ZigZag offers integration via File Transfer Protocol (FTP). This is a standard protocol used to transmit flat files in CSV format (from you to the server over a network). We offer two types of FTP connection:

  • FTP V1
  • FTP V2

FTP v1 - Trackers

The FTP v1 version allows you to send us your order and tracking information at the same time (i.e. only when the tracking number is known).

This version is simpler to set up, but more restricted than v2.

FTP v2 - Orders

Version v2 introduces the concept of fulfillment (package preparation), which enables the following functions to be activated:

  • Multi-packages
  • Pre-shipment
  • Store process
  • Order and package contents
  • Smart State "Order without tracker" (to detect package preparation delays)
Important information
  • The file must be encoded in UTF-8 to be imported.
  • carrier code + tracking number - It is important to fill these in together.If you do not yet know the tracking number, you do not need to enter the carrier_code. Conversely, if you know the tracking number, the carrier_code is mandatory.
  • v1 vs v2 - Files are uploaded to the upload folder in the case of FTP v1 and uploadV2 in the case of FTP v2.
  • Languages - You can enter the languages to be used according to this nomenclature (in lower case), otherwise we will use the language of the recipient's country.
  • Avoid double quotes (“”) - Double quotes (“…”) can be present in a CSV file, but you must ensure when uploading the files that there are no double quotes in the fields.
  • File update frequency - We syncs information every hour. We recommend that you upload your file several times a day.
  • Manual synchronisation - You can manually sync the file import by navigating to Portal Settings -> Notification Settings -> Integrations -> Click the 3 dots next to FTP -> Manual Sync.

Required fields

Below, you will find the fields you need to set up for your CSV files.

Fields required for v1
ValueDescriptionMandatory or Optional
carrier_codeUse our glossary of carrier code nomenclature to identify the carrier in charge of the package.Mandatory
carrier_service_codeFill in the carrier service codes for more granularity in the expected delivery dates (mandatory for the SDE functionality). Nomenclature should follow our technical documentation.Optional (but strongly recommended)
tracking_numberPackage tracking number (must be an official reference used by the carrier).Mandatory
emailCustomer email address.Optional (but strongly recommended)
order_numberThe reference of the order.Mandatory
order_dateOrder creation date.Optional (but strongly recommended)
first_nameCustomer first name.Optional (but strongly recommended)
last_nameCustomer last name.Optional (but strongly recommended)
address_nameAddress name of the customer.Optional (but strongly recommended)
address_streetCustomer street address.Optional (but strongly recommended)
address_cityCustomer city.Optional (but strongly recommended)
address_zipCustomer postal code.Optional (but strongly recommended)
address_countryUse the international nomenclature (uppercase). Example for France => FR.Optional (but strongly recommended)
language_codeThe language to use for the notifications (in lowercase). Please refer to our technical documentation.Optional (but strongly recommended)
phoneThe customer's phone number. International format: +33 or 0033. National format: ZigZag will add the international prefix based on the delivery address.Optional
warehouse_merchant_idWarehouse reference number in case of multiple warehouses (relevant for the implementation of the SDE feature).Optional
store_idZigZag account reference (in case of multiple accounts).Optional
order.custom_variableCustom Liquid variables for a highly personalised customer experience (notification wording, tracking page content, etc.).Optional
Fields required for v2
ValueDescriptionMandatory or Optional
order.merchant_idReference that guarantees the uniqueness of the order. When order numbers are unique, you can easily reference them.Mandatory
ordered_atOrder date.Optional (but strongly recommended)
order.order_numberOrder number.Mandatory
order.emailCustomer email address.Optional (but strongly recommended)
order.first_nameCustomer first name.Optional (but strongly recommended)
order.last_nameCustomer last name.Optional (but strongly recommended)
order.language_codeThe language to use for the notifications (in lowercase). Please refer to our technical documentation.Optional (but strongly recommended)
fulfillment.merchant_idUnique package reference.Mandatory
fulfillment.fulfillment_numberPackage number.Mandatory
fulfillment.status_codePre-shipment status (used for pre-shipment notifications). Please refer to our technical documentation.Optional
shipping_address.address1Shipping address of the package.Optional (but strongly recommended)
shipping_address.cityShipping city of the package.Optional (but strongly recommended)
shipping_address.countryRecipient country.Optional (but strongly recommended)
shipping_address.country_codeUse the international nomenclature (uppercase). Example for France => FR.Optional (but strongly recommended)
shipping_address.first_nameRecipient first name.Optional (but strongly recommended)
shipping_address.last_nameRecipient last name.Optional (but strongly recommended)
shipping_address.zipZIP code of the shipping address.Optional (but strongly recommended)
line_item.merchant_idUnique reference of the item.Optional (but strongly recommended)
line_item.titleName of the item.Optional (but strongly recommended)
line_item.skuSKU number.Optional
line_item.quantityQuantity of the item.Mandatory
line_item.thumbnail.srcItem image URL.Mandatory
tracker.carrier_codeCarrier code. Please refer to our technical documentation.Mandatory
tracker.carrier_service_codeCarrier service codes for more granularity in estimated delivery dates (mandatory for SDE). Nomenclature must follow our technical documentation.Optional
tracker.tracking_numberPackage tracking number (must be an official reference used by the carrier).Mandatory
fulfillment.warehouse_merchant_idWarehouse reference in case of multiple warehouses (required for SDE).Optional
order.store_idShipup account reference (in case of multiple accounts).Optional
order.custom_variablesCustom Liquid variables for a highly personalized customer experience (notifications, tracking page content, etc.). Please refer to our technical documentation on formatting custom variables.Optional

How to set up an FTP Connection

  1. Contact your Account Manager or the Support Team to request access to the FTP server.
  2. We will send you your login credentials as soon as they are ready.
  3. Prepare the CSV file, ensuring all required fields are completed correctly.
  4. Submit the file to your ZigZag contact for review and validation.
  5. After validation, a test import will be performed to ensure that packages are tracked properly on ZigZag.
  6. Once confirmed, you can automate file uploads to the server (it is recommended to schedule synchronisation several times per day).