Skip to content

Update a store by its Kreezalid id

PATCH
/stores/{id}
curl --request PATCH \
--url https://acme.mykreezalid.com/api/partners/v1/stores/1 \
--header 'Authorization: Basic <credentials>' \
--header 'Content-Type: application/json' \
--data '{ "external_id": "SHOP-BRUSSELS-01", "name": "Les Petits Riens - Ixelles", "line1": "Rue Américaine 101", "line2": "Bâtiment B", "zipcode": "1050", "city": "Ixelles", "state": "Bruxelles-Capitale", "district": "Bruxelles", "country": "BE", "formatted": "Rue Américaine 101, 1050 Ixelles, Belgique", "lat": 50.822965, "lng": 4.359485, "phone": { "country_iso": "BE", "phone_number": "25373026" }, "is_active": true, "is_default": false, "is_pickup_point": true, "pickup_instructions": "Ring at the service entrance.", "display_in_locator": true, "opening_hours": [ { "day": 1, "start_time": "09:00", "end_time": "12:00", "timezone": "Europe/Brussels" } ], "pickup_hours": [ { "day": 1, "start_time": "09:00", "end_time": "12:00", "timezone": "Europe/Brussels" } ] }'

Update a store by its id, as returned by GET /stores — this is how a store with no external_id is completed, including by giving it one. A store that has an external_id can also be updated by POSTing it to /stores. PUT /stores/{id} behaves the same. Send only the fields you change. The response has HTTP status 200 whether the store was saved or refused: check success.

id
required
integer
Media typeapplication/json

A place one of your vendors operates from.

object
id

Kreezalid’s identifier for this store, returned by GET /stores. Use it to read, update or delete the store (GET, PATCH, DELETE /stores/{id}) and to attach a listing to it (store_id). It is the only way to reach a store that has no external_id.

integer

Example

217836
object
string
default: Store
external_id

Optional: YOUR OWN reference for this store, if your system names its stores. Posting a store whose external_id already exists UPDATES it instead of creating a second one, so you can replay your whole store list as often as you like. Unique per vendor: two vendors may each use “01”. Leave it out for a store you do not track on your side.

string

Example

SHOP-BRUSSELS-01
name
required
string

Example

Les Petits Riens - Ixelles
line1
string

Example

Rue Américaine 101
line2
string

Example

Bâtiment B
zipcode
string

Example

1050
city
string

Example

Ixelles
state

Top-level subdivision: région in France, state in the US.

string

Example

Bruxelles-Capitale
district

Second-level subdivision: département in France, county elsewhere.

string

Example

Bruxelles
country

ISO-3166-1 alpha-2. A country name is accepted and converted — Belgique, Belgium, Bélgica and Belgien all store BE — but send the code: it is what comes back, and what the listings placed at this store will carry.

string

Example

BE
formatted

The address on one line, as your geocoder returned it. Shown to buyers in preference to the parts above.

string

Example

Rue Américaine 101, 1050 Ixelles, Belgique
lat

Latitude, between -90 and 90. A store with no coordinates never appears on a map and never places a listing.

number format: float

Example

50.822965
lng

Longitude, between -180 and 180.

number format: float

Example

4.359485
phone

The store’s phone, as a country and a number - the shape a phone attribute has. Send country_iso (ISO-3166-1 alpha-2) and phone_number as typed, national or international; it is checked for that country, and a number carrying its own country code keeps it. Read back, phone_number is the national number without its trunk zero, with e164 (to dial) and formatted (to show) beside it. Send null to remove the phone. Free text is refused. A phone stored as text before this field was structured comes back with formatted only.

object
country_iso
required
string

Example

BE
phone_number
required
string

Example

25373026
e164
string

Example

+3225373026
formatted
string

Example

+32 2 537 30 26
is_active

Whether this store is in use. A store holding listings cannot be switched off: move them to another store, or unpublish them, first.

boolean
default: true
is_default

The vendor’s main store. At most one per vendor: setting it here clears it from whichever store held it.

boolean
is_pickup_point

Whether orders can be collected here. Being a collection point and being shown on the public map are two separate roles of the same place. A collection point must say when to collect: pickup_hours or pickup_instructions - either is enough, opening_hours do not count. Checked when a store is created and when a write touches is_pickup_point, pickup_instructions or pickup_hours.

boolean
default: true
pickup_instructions

Free text about collecting here, in your own words: hours written out (“Monday to Friday, 9am to 4pm”) or instructions (“ring at the service entrance”). Shown to buyers below the collection hours, or on its own when there are none.

string
nullable

Example

Ring at the service entrance.
display_in_locator

Whether this store appears on the marketplace’s public store map.

boolean
default: true
opening_hours

When the shop is open. What you send REPLACES the store’s opening hours, and leaves its pickup_hours alone. A day you do not mention is closed. Leave the field out to keep the opening hours as they are; send an empty array to remove them. Opening hours are never shown to buyers as collection hours.

Array<object>

One slot, on one weekday. Which hours it belongs to is said by the list it is sent in - a store’s opening_hours or its pickup_hours - not by the slot.

A lunch break is TWO slots on the same day, not one slot with a hole in it. That is the whole reason this is a list rather than a string.

object
day
required

ISO-8601 weekday: 1 is Monday, 7 is Sunday.

integer
>= 1 <= 7

Example

1
start_time
required

24-hour clock.

string

Example

09:00
end_time
required

Must be later than start_time.

string

Example

12:00
timezone

IANA name. Defaults to the marketplace’s own timezone.

string

Example

Europe/Brussels
pickup_hours

When orders can be collected - often narrower than the opening hours. What you send REPLACES the store’s collection hours, and leaves its opening_hours alone. A day you do not mention has no collection. Leave the field out to keep them as they are; send an empty array to remove them. Shown to buyers on the product page and in the order e-mail, followed by pickup_instructions.

Array<object>

One slot, on one weekday. Which hours it belongs to is said by the list it is sent in - a store’s opening_hours or its pickup_hours - not by the slot.

A lunch break is TWO slots on the same day, not one slot with a hole in it. That is the whole reason this is a list rather than a string.

object
day
required

ISO-8601 weekday: 1 is Monday, 7 is Sunday.

integer
>= 1 <= 7

Example

1
start_time
required

24-hour clock.

string

Example

09:00
end_time
required

Must be later than start_time.

string

Example

12:00
timezone

IANA name. Defaults to the marketplace’s own timezone.

string

Example

Europe/Brussels
created
string format: date-time
modified
string format: date-time

The outcome, with the store as it now stands

Media typeapplication/json

Outcome of a store creation or update.

object
totalResultsCount

Number of results across all pages.

integer
currentPage

Number of the page returned, starting at 1.

integer
nextPage

Whether a next page exists.

boolean
prevPage

Whether a previous page exists.

boolean
resultOnPageCount

Number of results on this page.

integer
pageCount

Number of pages.

integer
id

ID of the store, or null when nothing was saved.

integer
nullable
created

Whether this call created the store (false when it updated one).

boolean
success

Whether the store was saved.

boolean
message

Store created, Store updated, or the reason of the refusal (field errors are listed as field: reason, separated by -).

string
content
One of:

A place one of your vendors operates from.

object
id

Kreezalid’s identifier for this store, returned by GET /stores. Use it to read, update or delete the store (GET, PATCH, DELETE /stores/{id}) and to attach a listing to it (store_id). It is the only way to reach a store that has no external_id.

integer
object
string
default: Store
external_id

Optional: YOUR OWN reference for this store, if your system names its stores. Posting a store whose external_id already exists UPDATES it instead of creating a second one, so you can replay your whole store list as often as you like. Unique per vendor: two vendors may each use “01”. Leave it out for a store you do not track on your side.

string
name
required
string
line1
string
line2
string
zipcode
string
city
string
state

Top-level subdivision: région in France, state in the US.

string
district

Second-level subdivision: département in France, county elsewhere.

string
country

ISO-3166-1 alpha-2. A country name is accepted and converted — Belgique, Belgium, Bélgica and Belgien all store BE — but send the code: it is what comes back, and what the listings placed at this store will carry.

string
formatted

The address on one line, as your geocoder returned it. Shown to buyers in preference to the parts above.

string
lat

Latitude, between -90 and 90. A store with no coordinates never appears on a map and never places a listing.

number format: float
lng

Longitude, between -180 and 180.

number format: float
phone

The store’s phone, as a country and a number - the shape a phone attribute has. Send country_iso (ISO-3166-1 alpha-2) and phone_number as typed, national or international; it is checked for that country, and a number carrying its own country code keeps it. Read back, phone_number is the national number without its trunk zero, with e164 (to dial) and formatted (to show) beside it. Send null to remove the phone. Free text is refused. A phone stored as text before this field was structured comes back with formatted only.

object
country_iso
required
string
phone_number
required
string
e164
string
formatted
string
is_active

Whether this store is in use. A store holding listings cannot be switched off: move them to another store, or unpublish them, first.

boolean
default: true
is_default

The vendor’s main store. At most one per vendor: setting it here clears it from whichever store held it.

boolean
is_pickup_point

Whether orders can be collected here. Being a collection point and being shown on the public map are two separate roles of the same place. A collection point must say when to collect: pickup_hours or pickup_instructions - either is enough, opening_hours do not count. Checked when a store is created and when a write touches is_pickup_point, pickup_instructions or pickup_hours.

boolean
default: true
pickup_instructions

Free text about collecting here, in your own words: hours written out (“Monday to Friday, 9am to 4pm”) or instructions (“ring at the service entrance”). Shown to buyers below the collection hours, or on its own when there are none.

string
nullable
display_in_locator

Whether this store appears on the marketplace’s public store map.

boolean
default: true
opening_hours

When the shop is open. What you send REPLACES the store’s opening hours, and leaves its pickup_hours alone. A day you do not mention is closed. Leave the field out to keep the opening hours as they are; send an empty array to remove them. Opening hours are never shown to buyers as collection hours.

Array<object>

One slot, on one weekday. Which hours it belongs to is said by the list it is sent in - a store’s opening_hours or its pickup_hours - not by the slot.

A lunch break is TWO slots on the same day, not one slot with a hole in it. That is the whole reason this is a list rather than a string.

object
day
required

ISO-8601 weekday: 1 is Monday, 7 is Sunday.

integer
>= 1 <= 7
start_time
required

24-hour clock.

string
end_time
required

Must be later than start_time.

string
timezone

IANA name. Defaults to the marketplace’s own timezone.

string
pickup_hours

When orders can be collected - often narrower than the opening hours. What you send REPLACES the store’s collection hours, and leaves its opening_hours alone. A day you do not mention has no collection. Leave the field out to keep them as they are; send an empty array to remove them. Shown to buyers on the product page and in the order e-mail, followed by pickup_instructions.

Array<object>

One slot, on one weekday. Which hours it belongs to is said by the list it is sent in - a store’s opening_hours or its pickup_hours - not by the slot.

A lunch break is TWO slots on the same day, not one slot with a hole in it. That is the whole reason this is a list rather than a string.

object
day
required

ISO-8601 weekday: 1 is Monday, 7 is Sunday.

integer
>= 1 <= 7
start_time
required

24-hour clock.

string
end_time
required

Must be later than start_time.

string
timezone

IANA name. Defaults to the marketplace’s own timezone.

string
created
string format: date-time
modified
string format: date-time

Example

{
"totalResultsCount": 137,
"currentPage": 1,
"resultOnPageCount": 25,
"pageCount": 6,
"id": 217836,
"message": "Store created",
"content": {
"id": 217836,
"object": "Store",
"external_id": "SHOP-BRUSSELS-01",
"name": "Les Petits Riens - Ixelles",
"line1": "Rue Américaine 101",
"line2": "Bâtiment B",
"zipcode": "1050",
"city": "Ixelles",
"state": "Bruxelles-Capitale",
"district": "Bruxelles",
"country": "BE",
"formatted": "Rue Américaine 101, 1050 Ixelles, Belgique",
"lat": 50.822965,
"lng": 4.359485,
"phone": {
"country_iso": "BE",
"phone_number": "25373026",
"e164": "+3225373026",
"formatted": "+32 2 537 30 26"
},
"is_active": true,
"is_default": false,
"is_pickup_point": true,
"pickup_instructions": "Ring at the service entrance.",
"display_in_locator": true,
"opening_hours": [
{
"day": 1,
"start_time": "09:00",
"end_time": "12:00",
"timezone": "Europe/Brussels"
}
],
"pickup_hours": [
{
"day": 1,
"start_time": "09:00",
"end_time": "12:00",
"timezone": "Europe/Brussels"
}
]
}
}

Missing or wrong API credentials.

No store of yours has this ID, or the multi-store feature is not enabled.