Public Sales Channel App
The sales channel represents where you sell your products. Sales channels apps help you to integrate your sales channels with Eshopbox.
This guide will outline step by step process how you can build an app on the Eshopbox platform to connect with your public sales channel App.
Before you start
Eshopbox will authenticate your app using your app authentication Steps. Make sure to include following scopes while requesting authorization code:
read:products
write:products
read:product_listings
write:product_listings
read: inventory
read:orders
write:orders
read:returns
write:returns
Steps to build a public sales channel app
Step 1: Set up
Enable a sales channel in your workspace.
Your app will need the auto-generated sales channel code while creating orders, returns, etc.
Step 2: Sync Products and Inventory
You add new products to your sales channel catalog.
New products should be configured in your Eshopbox workspace as well. Your app should verify if these products are already configured in Eshopbox.
If the product is already configured, your app should mark the product as available on the Sales Channel. This will ensure the app can track the change in the inventory level of this product.
If no, your app should configure the product in your Eshopbox workspace and mark it available on your sales channel.
Now, your app should track inventory changes in the Eshopbox fulfillment Center and update such changes in your sales channel catalog.
While updating inventory in your sales channel catalog, your app should be able to make adjustments for any orders you have received on the sales channel but not yet sent for fulfillment to Eshopbox.
Syncing products to Eshopbox
Following are the steps that need to be implemented in your app to automate syncing products to Eshopbox
Your app should be able to track whenever there is a new product added to your sales channel catalog.
Your app should search for the product in the Eshopbox workspace. To search for products, send a GET request to products endpoint
https://{workspace}.myeshopbox.com/product-engine/api/v1/products/{productSku}
where {workspace}, is workspace name and {productSku} is Name of the Product (SKU)
Check for a condition if the product exists in Eshopbox. If the product doesn't exist in Eshopbox then it returns an error message "Failed: Name of the product(SKU) does not exist"
Configure a new product in Eshopbox by sending a POST request to Products endpoint
https://{workspace}.myeshopbox.com/product-engine/api/v1/products
where {workspace} is your workspace name. Eshopbox verifies the request body and creates a draft product in case any of the mandatory information is missing or incorrect. Such draft products are visible in the Eshopbox workspace and you can edit the product to add mandatory fields or make corrections.
Update the product availability by performing a POST request to Mark Product Availability API
https://{workspace}.myeshopbox.com/product-engine/api/v1/productListing
where {workspace} is the workspace name.
Tracking inventory updates
Following are the steps that need to be implemented in your app to sync inventory across Eshopbox and your sales channel.
To register a webhook, Eshopbox request to Webhook endpoint.
https://{workspace}.myeshopbox.com/api/v1/webhook
where {workspace} is your workspace name.
Eshopbox will send inventory updates to the registered webhook URL
Step 3: Fulfill Orders
The customer places an order on your Sales channel. You verify if the payment is captured in case of a prepaid order, or verify contact information or any other checks in case of Pay On Delivery order.
You send all the confirmed orders to Eshopbox for fulfillment.
Eshopbox will plan shipments for the order. Sometimes multiple shipments are created against a single order. This can happen for various reasons
if the inventory for the ordered product is not available in one location
all the items can’t be fit into one shipment due to packaging restrictions
one of the items is not available and may be shipped later.
Eshopbox will acknowledge the order.
Eshopbox will start processing the items and call you to fetch an invoice for each shipment.
Eshopbox will Call you to get the shipping provider and mark it as PACKED.
Once the shipping provider picks up the shipment from Eshopbox FC, it will be marked as Shipped.
You will need to Push the status updates of the shipment in the shipping provider network to Eshopbox.
The shipping provider delivers the shipment.
At any of the steps if Eshopbox may sideline the order if
the inventory is not available for items ordered
the shipping address in the order is not serviceable You may get in touch with the customer and make appropriate changes to order so that it can be fulfilled.
Submit an order for fulfillment
Following are the steps that need to be implemented in your app to automate the submission of orders for fulfillment
Track for any new confirmed orders on your sales channel.
Submit this order for fulfillment to Eshopbox by sending a POST request to the Order endpoint.
http://wms.eshopbox.com/api/order
please use auto-generated channel code as created in the Eshopbox workspace while enabling a new sales channel. (LINK)
Make sure your pricing information submitted along with order complies for following cases -
Item discounts
Part payments
Gift cards
Loyalty points
In case you want to want certain items of the shipments to be shipped together or don’t want Eshopbox to split shipments
In case you want to assign FC
Generate labels & invoices
Eshopbox requires shipping labels and invoice to process the shipments. Eshopbox requests for generating the labels and invoices via calling the suggested API’s of your App.
Tracking fulfillment status
Following are the steps that need to be implemented for order status updates.
You will Have to Register a status update webhook Ur, on which you will send a request to to update the status of your orders.
Sample Base Url of Eshopbox.
https://{workspace}.myeshopbox.com/
where {workspace} is your workspace name.
Common Events :
shipped |
intransit |
out_for_delivery |
delivery_failed |
delivered |
cancelled |
rto |
rto_delivered |
Cancellations
When a customer cancels the order, your app is required to send a cancellation request to Eshopbox.
Eshopbox will process the cancellation and send an update to your app.
Eshopbox may cancel the order when inventory is not available or the address is not serviceable, in these cases, Eshopbox will send cancellation status to your app.
Request for cancellation from customer
When a customer requests a cancellation, you are required to create a cancellation request in Eshopbox. A customer can cancel the order before the shipment status is packed.
To cancel an order, send a POST request to the register webhook URL.
http://wms.eshopbox.com/api/cancel-order
Cancellation from Eshopbox
You are required to register a webhook so that when Eshopbox cancels an order it can update your app.
To register a webhook, send a POST request to Webhook endpoint.
https://{workspace}.myeshopbox.com/api/v1/webhook
where {workspace} is your workspace name.
Eshopbox will send updates to the registered webhook URL.
Step 4: Manage Returns
If there is a return request on your app, you are required to schedule the return and update it to Eshopbox.
Return is created in Eshopbox
Eshopbox will send return status to your app.
Syncing returns with Eshopbox
Whenever there is a return request on your app, then communicate this activity to Eshopbox.
To create a return, send a POST request to Return endpoint.
http://wms.eshopbox.com/api/return
Track return status
Once return is created and acknowledge by Eshopbox ,You are required to push the returns status updates to eshopbox.
Comman events types:
created |
picked_up |
out_for_pickup |
pickup_cancelled |
delivered |
Eshopbox needs to register a webhook in your App, So you can send return status updates to Eshopbox.