API
Manage Incoming Orders
Manage your Catalog of products
SFTP
Manage your Catalog of products
Manage your Promotions
Testing Integration#
Click below to jump to the topics:
In order to test your integration, you’ll need to do the following:#
1. Choose a Test Vendor
Option 1: Use an existing test vendor from your chain
Option 2: Create and onboard a new test store for testing
2. Gain access the Sandbox Environment
Go to the Partner Portal and use the "Test Order" button to simulate an order.
Ensure the following are set up:
Webhook is configured in the Partner Portal
Vendor integration settings are enabled in the catalog
Based on your testing scope, you can configure the staging or production environment webhook
3. Validate Your Integration
You can leverage our end-to-end (E2E) test cases to validate that integration meeting your requirements
How do I place a test order from the sandbox environment?#
Once the integration type is configured on the store and webhook is configured. Partner Portal will show a test order button to trigger a test order.
Only following flows can be tested from sandbox environment:
Order creation with weighted and unit items
Order fulfillment via PUT request
Order cancellation
Item replacement cannot be tested please use E2E testing flow
The below image demonstrates the READY_FOR_PICKUP
and CANCELLED
flows
.gif)
.png)
If you want to test the flow for fulfilling an order:
Select the order status as
READY_FOR_PICKUP
and delivery typeLOGISCTICS_DELIEVRY
Add an SKU to the order and select the item status as
IN_CART
Click on Trigger order
Order should now appear on your webhook. You can review in API >order API > orders section in Partner Portal
Since the sandbox environment simulates the order flow, it is expected that webhook will receive additional order statues. For Partner picking integration it is possible to fulfil orders using the PUT endpoint. Please make sure you order status should be RECEIVED in order to fulfil via PUT request.
If you want to test the flow to cancel an order:
Select the order status as
CANCELLED
and delivery typeLOGISCTICS_DELIEVRY
Add cancellation details cancelled by
VENDOR
and reason for cancellationITEM_UNAVAILABLE
Add an SKU to the order and select the item status as
NOT_FOUND
Click on Trigger order
Order should now appear on your webhook. You can review in API >order API > orders section in Partner Portal

How do I perform E2E testing?#
In order to ensure your integration is up and running, it’s vital that you go through the end-to-end test cases. You’ll see all 8 use cases listed below:
Place an order on the Platform App and confirm on
RECEIVED
order status event triggered to your webhookComplete Order fulfilment for Platform and Vendor Delivery flows
Complete Order fulfilment using the PUT endpoint & Platform Delivery flow
Modified request body
For Item level status:
IN_CART
Using PUT request share order fulfilment status
READY_FOR_PICKUP
You should receive response
HTTP 200
Your webhook should receive
READY_FOR_PICKUP
Your webhook should receive
DISPACHED
status as well, sent when the rider picks up the order from the vendor. You utilised reconciliation of orders, this order is an asynchronous status you can have upto 30 minutes delay
Complete Order fulfilment using the PUT endpoint & Vendor Delivery flow
Modified request body
For Item level status:
IN_CART
Using PUT request share order fulfilment status
DISPACHED
You should receive response
HTTP 200
Your webhook should receive
DISPACHED
status
Partially fulfil an order using the PUT endpoint, for both Delivery flows
Modified request body
Order status:
READY_FOR_PICKUP
orDISPACHED
Item level status:
IN_CART
& NOT_FOUND`You should receive response
HTTP 200
Your webhook must receive
READY_FOR_PICKUP
,DISPACHED
or both status
Cancelling an order from Customer or Logistics or Vendor:
Customer cancellation after order placement:
Order is placed on Platform App
Your webhook should receive the
RECEIVED
statusCustomer cancelled the order
Your webhook should receive
CANCELLED
status
Customer cancellation after order fulfilment:
Order is placed on Platform App
Your webhook should receive the event
RECEIVED
Picker received the order and fulfilled the order using PUT endpoint
Your webhook should receive
READY_FOR_PICKUP
orDISPACHED
or both depending on your delivery flowCustomer cancelled the order
Your webhook should receive the
CANCELLED
statusIn cancellation order payload you will receive an additional field
post_pickup_flag: true
which means cancellation happened after rider pickup. (check this FAQ)
Vendor cancellation:
Order is placed from Platform App
Your webhook should receive status
RECEIVED
Cancel the order from your picking device using PUT &
CANCELLED
status
Cancellation initiated from your picking device doesn’t send the order cancellation status to the webhook
Logistics cancellation(Platform delivery)
Order is placed
Your webhook should receive
RECEIVED
statusYou may then fulfil the order and receive
READY_FOR_PICKUP
statusWhen logistic cancels the order you receive
CANCELLED
status to your webhook
In cancellation order payload you will receive an additional field
post_pickup_flag: true
which means cancellation happened after rider pickup. (check this FAQ)
Cancellation initiated from your picking device doesn’t send the order cancellation status to the webhook
Modify item quantity or price for UNIT items using the PUT endpoint
Modify the body of
the item.pricing
In
pricing
object quantity must be betweenmax_quantity
andmin_quantity
. Pricing is automatically adjustedIf you want to adjust the price, use the
unit\_price
ortotal\_price
, not both and not more thantotal_price
or**unit\_price
Modify item quantity or price for weighted (KG) items using the PUT endpoint
Configuration is required in Catalog to set the item tag as
sold_by_weight
to enable weighted items.weight
must be betweenmax_quantity
andmin_quantity
. Pricing is automatically adjustedDirect price adjustments on weighted items are not valid
Replace an OOS item using PUT endpoint
If
item A
is out-of-stock and you want to replace it withitem B
. Prepare the request bodySet item status of
item A
asREPLACED
anditem B
asIN_CART
Include a new field
replaced_id
initem B
, and use the value fromid
field fromitem A
Fulfill the order using the
READY_FOR_PICKUP
orDISPACHED
based on your delivery flow.
Update Cart to validate changes on items
Adjust the items status, or price or quantity
Send PUT request with order status as
UPDATE_CART
Check for any feedback and rerun the request for success
To complete the order send order fulfilment status with
READY_FOR_PICKUP
orDISPATCHED
based on your delivery flow
Add additional item to the order using PUT endpoint
Prepare request body with following to add a new product
sku
: required for product hydration.pricing.quantity
: requiredpricing.weight
: required for weighted itemspricing.unit_price
: optional, Vendors can set a unit overriding the original price If not provided, the order will use the price from the item hydration
Item status should be
ADDITION
Fulfill the order using the
READY_FOR_PICKUP
orDISPACHED
based on your delivery flow.
GET
/vendor_id/orders
Set the time frame and get the list of orders at the store level, they will have final statuses like
CANCELLED
orPICKED_UP
GET
/order_id
Retrieves orders on the ID will have final statuses like
CANCELLED
orPICKED_UP