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:
- Prerequisites for Testing
- How do I place a test order from the Sandbox environment?
- How do I perform the E2E test cases?
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
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 webhook -
Complete 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
- For Item level status:
- 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
- For Item level 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
status - Customer 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 flow - Customer cancelled the order
- Your webhook should receive the
CANCELLED
status - In 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
- Customer cancellation after order placement:
-
Logistics cancellation(Platform delivery)
- Order is placed
- Your webhook should receive
RECEIVED
status - You may then fulfil the order and receive
READY_FOR_PICKUP
status - When 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)
-
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 adjusted - If you want to adjust the price, use the
unit\_price
ortotal\_price
, not both and not more thantotal_price
or**unit\_price
- Modify the body of
-
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 adjusted- Direct price adjustments on weighted items are not valid
- Configuration is required in Catalog to set the item tag as
-
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 body - Set 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.
- If
-
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.
- Prepare request body with following to add a new product
-
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
- Set the time frame and get the list of orders at the store level, they will have final statuses like
-
GET
/order_id
- Retrieves orders on the ID will have final statuses like
CANCELLED
orPICKED_UP
- Retrieves orders on the ID will have final statuses like