Wrapper

The Wrapper module of the EShopBox SDK provides higher-level methods to manage orders, shipping, returns, tracking, and webhook registration.

You can use it to:

  • Create and manage orders

  • Handle shipping and return requests

  • Cancel and track shipments

  • Register webhooks

Example: Setup Wrapper Using EShopBox SDK

from eshopbox import EShopBoxSDK
import os
from dotenv import load_dotenv
load_dotenv()


def order(sdk):
    payload = {
        "channelId": os.getenv('ESHOPBOX_EXTERNAL_CHANNEL_ID'),
        "customerOrderId": "OD119208447831346001",
        "shipmentId": "OD119208447831346001-4380-3659",
        "orderDate": "2024-01-01 09:00:00",
        "isCOD": True,
        "invoiceTotal": 4049.09,
        "shippingMode": "Eshopbox Standard",
        "invoice": {
            "number": "C00011323A000002",
            "date": "2024-01-04 09:00:00"
        },
        ...
    }
    response = sdk.wrapper.order(payload)
    print("Response: ", response)


def shipping_return(sdk):
    payload = { ... }
    response = sdk.wrapper.shipping_return(payload)
    print("Response: ", response)


def cancel_tracking(sdk):
    payload = { "trackingId": "1231244" }
    response = sdk.wrapper.cancel_tracking(payload)
    print("Response: ", response)


def tracking_details(sdk):
    response = sdk.wrapper.tracking_details("OD119208447831346000-4380-3659")
    print("Response: ", response)


def webhook_register(sdk):
    payload = {
        "resource": "channel_inventory",
        "eventType": "POST",
        "eventSubType": "updated",
        "version": "v1",
        "externalChannelID": "TEST",
        "webhookUrl": "https://webhook.testurl.com/fake-subscription-url2",
        "webhookMethod": "POST",
        "webhookHeaders": {
            "x-api-key": "test1234",
            "authorization": "Bearer abcdef123456"
        }
    }
    response = sdk.wrapper.webhook_register(payload, ProxyHost="your_proxy_host_value")
    print("Response: ", response)


def main():
    sdk = EShopBoxSDK(
        workspace=os.getenv('ESHOPBOX_WORKSPACE', ''),
        client_id=os.getenv('ESHOPBOX_CLIENT_ID', ''),
        client_secret=os.getenv('ESHOPBOX_SECRET_ID', ''),
        refresh_token=os.getenv('ESHOPBOX_REFRESH_TOKEN', '')
    )
    webhook_register(sdk)


if __name__ == "__main__":
    main()

Wrapper APIs

Order Management

sdk.wrapper.order(payload)

Creates an order with shipment, invoice, and product details.

Required fields in `payload`:

  • channelId : string

  • customerOrderId : string

  • shipmentId : string

  • orderDate : string

  • isCOD : boolean

  • invoiceTotal : float

  • shippingMode : string

  • invoice : dict

  • shippingAddress : dict

  • items : list of dict

  • shipmentDimension : dict

  • pickupLocation : dict

  • package : dict

Shipping Returns

sdk.wrapper.shipping_return(payload)

Creates a shipping return request with item-level QC details and return dimensions.

Cancel Tracking

sdk.wrapper.cancel_tracking(payload)

Cancels a shipment using the trackingId.

Tracking Details

sdk.wrapper.tracking_details(tracking_id)

Retrieves shipment tracking information.

Webhook Registration

sdk.wrapper.webhook_register(payload, ProxyHost=None)

Registers a webhook for specific events. Optional ProxyHost can be provided.

Webhook payload fields:

  • resource : string

  • eventType : string (POST, PUT)

  • eventSubType : string (created, updated)

  • version : string

  • externalChannelID : string

  • webhookUrl : string

  • webhookMethod : string (POST)

  • webhookHeaders : dict (optional)

Notes

  • Always provide valid workspace credentials using environment variables.

  • Ensure webhook URLs are publicly accessible and accept HTTP requests.

  • Orders and shipments must include accurate product, address, and dimension details.

  • Use the Wrapper module for higher-level workflow automation over basic SDK endpoints.