You are on page 1of 4

PRODUCTS UPDATE - API Integration

Last update: Jun 2021

General information
Through this integration, we offer the possibility to update at store address level the
product prices and availability, among other properties, by pushing an API request to
one of our endpoints.
There are two endpoints where you can push a product update:
1. Bulk update items (POST): you can update a batch of products and/or attributes.
This is the preferred option, and you can push as many updates as needed
during the day. You can also check the status of the batch update by making a
GET request to our endpoint Verify bulk update items status.
2. Modify product (PATCH): you can update a single product. There is a limitation
on the amount of 60 calls per minute per store, so we recommend using the
Bulk endpoint if you want to update more than one product at the same time.
This endpoint is used when you want to integrate live product update changes.

Integration process
Standard products update API integration consists of the following steps:
1. We will create one store in test environment so you can start developing the API
request automatization. Stage Webhook credentials (token) will be provided.
2. You will also be requested to share your menu/assortment using this template.
Menu needs to be uploaded upfront in our stage environment for you to test
the endpoint.
3. Once everything is working well in test environment, we will create all the stores
in Glovo (prod). In order to do that, we will need you to provide the store_id you
use to identify each store in your systems (external_id).
4. We will share the Productive Webhook credential (token) and we will connect
one of the stores for you to test in productive. All the stores use the same
token.
Note that url’s in Stage environment and url’s in Prod are slightly different:
- Test: https://stageapi.glovoapp.com/webhook/stores/YOUR-STORE-ID/menu/updates
- Prod: https://api.glovoapp.com/webhook/stores/YOUR-STORE-ID/menu/updates
5. If all goes well, the rest of the stores will be activated and you will be fully
integrated with Glovo!
6. First price and stock update must be pushed before going live.
WARNING: when a new menu/assortment is uploaded ALL products within all
the Store Addresses are set as available. Each time a new menu is uploaded in
Glovo, the update process needs to be replicated immediately.

Minimum suggested tests


We suggest running as many tests as you need, both in stage and productive
environments, including the following:

● Disable products
● Enable products
● Change the price of products
● Enable, disable and change the price of products in the same API request
● Enable / disable attributes (if any)
● Change price of the attributes (if any)
● Send an API request with a wrong token or store id → check the response
● Send an API request with a wrong body schema → check the response
FREQUENTLY ASKED QUESTIONS

General questions

What does our wished integration look like?


Our ideal integration is one in which you are able to send stock updates through the
API everytime a product runs out of stock. Of course sometimes that’s not possible,
but the main point here is to keep the catalogue as updated as possible in terms of
availability of the products.
To do that you’ll need to share with our Local team the assortment in the format that
we need to push the menu into our systems. The local team will update this every time
you need to add a new product, and will manage the assortment categorization. Your
job will be to keep updated the availability of the products inside that catalogue by
using our Menu Items bulk update endpoint.

How many times a day can I send the Menu items bulk update request?
There’s no limit in our endpoint for you to send the request. Each request gets queued
in our system so depending on the amount of requests, it would take more or less
time. The minimum frequency is once a day, but we encourage you to do it as
frequently as possible.

Authentication on the public Glovo API


Access token (shared token): Do we use the same token for the duration of the
integration or must a new token be obtained prior to each request?
Access token is static for each environment and webhook. That means you are going
to have one token for the Test Environment, and another token once the integration
goes Live in the Production Environment.
The same token will be used for all the stores configured.

What is the IP from which Glovo will send orders?


The Glovo backend runs from multiple machines. There would be no one single IP that
it would definitely come from. If it’s a matter of whitelisting the traffic coming from
Glovo, this can potentially be done by whitelisting us by the Authorization header,
which is where we include the shared token.
Testing product update integration in Staging environment
How can I see if the menu is reflected correctly in Glovo?
The Account manager will give you a link that should begin with
https://testglovo.com/es/bcn/store/ + STORE SLUG
You can enter the website and create a user login (using any email + any password). Be
sure to enter your address as Carrer de Pallars 500, Barcelona Spain.

Update status & Error Codes


How can I check if the update request has been correctly processed?
If the request passes Glovo validations (endpoint/authentication/structure) we will
return a 200 OK status code. If you are using the bulk update endpoint, the
transaction id will be sent in the body of the response.

You can use the transaction id to send a GET request to our API in order to check the
bulk update status and the array of updated products. Check the procedure here.

When sending a request, we get the following error 403 Forbidden - “Store ID or
Token is not correct”
a) Check the Store ID with the AM and confirm it is the same one entered into the
external store id field in the Glovo system. Ask the AM to confirm there are no
spaces in the external id in the Glovo system
b) Ask the AM to confirm that the Webhook is selected in the Webhook field
c) Check the Shared Token: Is it identical to the one provided by Glovo?
d) Check that the Shared Token is using only lowercase letters
e) Confirm that the push of the menu is to the correct environment (they are
different):
- Staging: https://stageapi.glovoapp.com/webhook/…
- Production: https://api.glovoapp.com/webhook/...

You might also like