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:#
Have a test user
You must share with your Account Manager an email address you have access to, but that does not already exist in PedidosYa. This email will be used to create a test user so you can view your test store from the PedidosYa mobile app.
Have a test store
Your Account Manager must provide you with the ID, name, and address of your test store.
Have access to the test store in Partner Portal
Your Account Manager must ensure that you have access to the test store in Partner Portal. In Partner Portal, you must configure the webhook and obtain the token.
Validate your integration
You can test the different functionalities you develop in your test store.
How do I place a test order?#
By logging into the PedidosYa mobile app with your test user, you must search for the test store at the address shared by your Account Manager. Once you find the store, you can place orders from the app as if you were a real user.
After placing the order in the app, you will receive it in the webhook you configured.
How do I perform the E2E testing?#
In order to ensure your integration is up and running, it’s important that you go through the end-to-end test cases.
Place an order on the PedidosYa App in your test store with your test user and confirm on
RECEIVED
order status event triggered to your webhookComplete Order fulfilment for PedidosYa and Own Delivery flows (as it applies to your case)
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
4. **Logistics cancellation(Platform delivery)**1. Order is placed2. Your webhook should receive `RECEIVED` status3. You may then fulfil the order and receive `READY_FOR_PICKUP` status4. When logistic cancels the order you receive `CANCELLED` status to your webhook5. In cancellation order payload you will receive an additional field `post_pickup_flag: true` which means cancellation happened after rider pickup. (check this [FAQ](pos-pelican-picking-faq#how-can-i-tell-if-an-order-was-actually-picked-up-after-being-cancelled-i-need-to-know-whether-it-should-be-treated-as-a-final-sale))
Cancellation initiated from your picking device doesn’t send the order cancellation status to the webhook
You must test all scenarios in the UPDATE_CART:
Modify the quantity and price of a unit-based product
Modify the price of a weight-based product
Replace an item with another one (both weight-based and unit-based)
Mark an item as NOT_FOUND (both weight-based and unit-based)
Add an item (both weight-based and unit-based)
It's important that these tests include products with promotions.
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 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.
Mark a product as NOT_FOUND
Set the product status as NOT_FOUND
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
If all updates are correctly processed without errors, the integration is ready to go live. You can schedule a meeting here with our Integrations Support team to certify your integration.