--- title: Parcel Lab integration into international eCommerce app goal: Integrate the Parcel Lab Post-purchase solution into all US and European WOSG websites role: Plan, design and implement the integration date: 2022 - 2023 z: 2 draft: false --- > parcelLab is the only truly global enterprise post-purchase software provider, enabling brands to increase top-line revenue, decrease operational costs, and optimize the customer > experience. [Parcel Lab](https://parcellab.com/) Parcel lab takes care of the post-purchase operations like order tracking, email notifications, delivery status updates, data processing and more so that businesses don't have to. --- ### Technical overview This integration is straightforward thanks to the [amazing documentation](https://how.parcellab.works/docs/) provided by the Parcel Lab team. You really want to use the API even though there's more options to submit data to their platform. The data model is based on the [tracking](https://how.parcellab.works/docs/onboarding/data-model) - a data object having four fields for the delivery information. An order is composed of one or more trackings. Once data is submitted, the platform starts an automated process where it groups the new trackings to their respective orders and starts listening for events like "dispatch", "payment received" etc. to run custom actions. Each business can configure these events and actions so that they best match their operations. For example an "order created" event could notify the customer that the order has started as well as deal with some other business logic in the background. Their [order status page](https://how.parcellab.works/docs/track-and-communicate/order-status-page) is a convenient script that you can configure for your website. The script reads the URL to find an order number so that it can fetch the most up-to-date information for that order and display it in an iFrame. This system allows for a seamless, declarative event-based integration where the business takes care of the data and events (and sales) and parcelLab takes care of the rest. --- ### ParcelLab API details Create the first order when a customer places it. ```hurl POST https://api.parcellab.com/order/ # This is the method and the endpoint user: business-uid # Header token: access-token # Header Content-Type: application/json # Header { # Body starts here "xid": "id-of-delivery-before-tracking-number", "destination_country_iso3": "DEU", "client": "your-client-id", "orderNo": "order1", # This is the order ID "recipient": "Max Mustermann, parcelLab GmbH", "recipient_notification": "Max", "email": "max-mustermann@abc.xyz", "street": "Landwehrstr. 39", "zip_code": "80336", "city": "München", "billing_info": { "name": "Max", "phone": "1234", "street": "Nice St. 69", "city": "Nice", "zip_code": "69420", "country_iso3": "DEU" }, "articles": [ { "articleNo": "sku", # required "articleName": "Some Nice Thingy", # required "articleCategory": "Nice", # optional "articleUrl": "https://example.com/nice", # optional "articleImageUrl":"https://example.com/nice.png", # optional "quantity": 69, # optional }, ], "customFields": { "someField": { "anything": "in", "here": [], "nice": 69 } } } ``` This will reflect on the parcelLab dashboard. Add a few trackings to that order once you get the delivery number from the courier. ```hurl POST https://api.parcellab.com/track/ user: business-uid token: access-token Content-Type: application/json { "tracking_number": "1", "courier": "dhl-germany", "zip_code": "12345", "deliveryNo": "1", "orderNo": "order1" # This references the above order } POST https://api.parcellab.com/track/ user: business-uid token: access-token Content-Type: application/json { "tracking_number": "2", "courier": "dhl-germany", "zip_code": "12345", "deliveryNo": "2", "orderNo": "order1" } POST https://api.parcellab.com/track/ user: business-uid token: access-token Content-Type: application/json { "tracking_number": "3", "courier": "dhl-germany", "zip_code": "12345", "deliveryNo": "3", "orderNo": "order1" } ``` The order now has 3 trackings. Parcel Lab integrates with many couriers to provide status updates. Update the order for whatever reason. ```hurl POST https://api.parcellab.com/order/ user: business-uid token: access-token Content-Type: application/json { "orderNo": "order1", "customFields": { "customerPleased": true } } ``` These updates can act as event notifications allowing for a declarative configuration. ```hurl POST https://api.parcellab.com/order/ user: business-uid token: access-token Content-Type: application/json { "orderNo": "order1", "send_date": "now" # Gets notified that the order has been dispatched } ``` Complete shipment. ```hurl POST https://api.parcellab.com/order/ user: business-uid token: access-token Content-Type: application/json { "orderNo": "order1", "complete": true } ``` --- All this can be viewed on the tracking page embedded anywhere. ```html
loading
``` This shows a nice UI that can be [customized](https://how.parcellab.works/docs/track-and-communicate/order-status-page/configuration#additional-options).