Order API
UpdateProducts3
Pushes new or updated product and collections data to Bubblehouse.
Method | POST |
---|---|
Kind | Write |
URL | https://app.bubblehouse.com/api/v2023061/<shop>/UpdateProducts3 |
Authentication | Shop Token |
This API supports multiple ways to specify product-collection associations:
- Preferred approach: Send products with
collection_ids
field and collections without product information. This gives you explicit control over which collections each product belongs to. - Send products with
collections
array - useful when you want to create/update collections while associating products. - Send products without collection data, and send collections with
product_ids
field - useful when managing collections and want to specify their members. - Send collections with
products
array - useful when creating/updating products and collections together.
When updating both products and collections in a single call, collection updates are processed before product updates.
This func will not return an error unless the incoming data is wildly syntactically incorrect. The actual processing may be delayed until a later time, and the errors might only be visible via error emails later. Use debug option to receive more errors immediately during development.
You should decide if you're sending collection memberships within products or within collections. Please do not send the same membership information in both places.
When pushing multiple updates, Bubblehouse will process all of them, even if some fail. This means that, if this function returns 200 OK or 4xx, you should not retry pushing the same data. If the call results in 5xx or a network error, though, retry all of them. (It is always safe to push the same updates multiple times; would be just like a no-op update.)
There is no separate deletion call, but you can delete products and collection by updating with "deleted": true
flag.
Input
New or updated collections.
New or updated products.
replace_collections
booleanoptionalDelete any collections not provided in this call.
replace_products
booleanoptionalDelete any products not provided in this call.
debug
booleanoptionalTrue to make it easier to debug this call
Normally, we do not guarantee that updates are processed synchronously. We might do that, or we might return success from this function immediately and queue processing until a later time. Passing
"debug": true
ensures that processing is immediate and synchronous, and will also fail the call on any warnings, making it easier to diagnose problems.Please ensure to never enable debug mode in production, or even during high-volume testing.
Output
A successful response has no meaningful properties and only contains an ok property always set to true:
{"ok": true}
Specific Errors
Status | Error | Reason & Examples |
---|---|---|
None. |
API-wide Errors
Status | Error | Reason & Examples |
---|---|---|
None. |
Global Errors
Status | Error | Reason & Examples |
---|---|---|
401 | invalid_token | The provided authentication token is invalid or has expired. {"id":"invalid_token","message":"The token has expired"} |
429 | rate_limit_exceeded | Your usage is over the rate limit. Ensure that you're not making duplicate calls, and contact our team for a rate limit increase. {"id":"rate_limit_exceeded","message":"You are over the read limit per second for this customer"} |
400 | obsolete_global_api_version | The global API version you are trying to use is no longer supported. {"id":"obsolete_global_api_version"} |
400 | invalid_global_api_version | The global API version you are trying to use has never existed. {"id":"invalid_global_api_version"} |
400 | inaccessible_global_api_version | The global API version you are trying to use is not enabled on your account. {"id":"inaccessible_global_api_version"} |