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.