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_PICKUPand delivery typeLOGISCTICS_DELIEVRYAdd an SKU to the order and select the item status as
IN_CARTClick 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
CANCELLEDand delivery typeLOGISCTICS_DELIEVRYAdd cancellation details cancelled by
VENDORand reason for cancellationITEM_UNAVAILABLEAdd an SKU to the order and select the item status as
NOT_FOUNDClick 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
RECEIVEDorder 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_CARTUsing PUT request share order fulfilment status
READY_FOR_PICKUPYou should receive response
HTTP 200Your webhook should receive
READY_FOR_PICKUPYour webhook should receive
DISPACHEDstatus 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_CARTUsing PUT request share order fulfilment status
DISPACHEDYou should receive response
HTTP 200Your webhook should receive
DISPACHEDstatus
Partially fulfil an order using the PUT endpoint, for both Delivery flows
Modified request body
Order status:
READY_FOR_PICKUPorDISPACHEDItem level status:
IN_CART& NOT_FOUND`You should receive response
HTTP 200Your webhook must receive
READY_FOR_PICKUP,DISPACHEDor 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
RECEIVEDstatusCustomer cancelled the order
Your webhook should receive
CANCELLEDstatus
Customer cancellation after order fulfilment:
Order is placed on Platform App
Your webhook should receive the event
RECEIVEDPicker received the order and fulfilled the order using PUT endpoint
Your webhook should receive
READY_FOR_PICKUPorDISPACHEDor both depending on your delivery flowCustomer cancelled the order
Your webhook should receive the
CANCELLEDstatusIn cancellation order payload you will receive an additional field
post_pickup_flag: truewhich means cancellation happened after rider pickup. (check this FAQ)
Vendor cancellation:
Order is placed from Platform App
Your webhook should receive status
RECEIVEDCancel the order from your picking device using PUT &
CANCELLEDstatus
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
RECEIVEDstatusYou may then fulfil the order and receive
READY_FOR_PICKUPstatusWhen logistic cancels the order you receive
CANCELLEDstatus to your webhook
In cancellation order payload you will receive an additional field
post_pickup_flag: truewhich 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.pricingIn
pricingobject quantity must be betweenmax_quantityandmin_quantity. Pricing is automatically adjustedIf you want to adjust the price, use the
unit\_priceortotal\_price, not both and not more thantotal_priceor**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_weightto enable weighted items.weightmust be betweenmax_quantityandmin_quantity. Pricing is automatically adjustedDirect price adjustments on weighted items are not valid
Replace an OOS item using PUT endpoint
If
item Ais out-of-stock and you want to replace it withitem B. Prepare the request bodySet item status of
item AasREPLACEDanditem BasIN_CARTInclude a new field
replaced_idinitem B, and use the value fromidfield fromitem AFulfill the order using the
READY_FOR_PICKUPorDISPACHEDbased 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_CARTCheck for any feedback and rerun the request for success
To complete the order send order fulfilment status with
READY_FOR_PICKUPorDISPATCHEDbased 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
ADDITIONFulfill the order using the
READY_FOR_PICKUPorDISPACHEDbased on your delivery flow.
GET
/vendor_id/ordersSet the time frame and get the list of orders at the store level, they will have final statuses like
CANCELLEDorPICKED_UP
GET
/order_idRetrieves orders on the ID will have final statuses like
CANCELLEDorPICKED_UP