Bob Shop Tools API
The Bob Shop Tools API lets your own system manage your Bob Shop listings through an API source on Bob Sync.
A product in this API becomes a listing on Bob Shop. A product can have several variants, for example sizes or colours of the same shirt.
What you can do with it:
- Send products to us, one at a time or in bulk from a JSON file.
- Remove listings by deleting a product.
- Receive orders. We send each paid order to a webhook URL you give us.
Products are pushed by you to us. We never call your system to fetch them. The only request we make to you is the order webhook.
How to read these docs
| Section | What it covers |
|---|---|
| Authentication | Getting your token, sending it, and keeping it safe. |
| Workflow | The integration in order. Start here. |
| What makes a product go live | Why a 200 is not a listing, and the category rule that catches most integrations out. Read it before you write code. |
| Important concepts | How products are identified, and the product, image, variant and option objects. |
| Products | One product at a time: create, update, fetch, delete. |
| Bulk upload | Many products in one JSON file. |
| Webhooks | How a paid order reaches you, and what we expect back. |
Base URLs
| Environment | Base URL |
|---|---|
| Sandbox | https://api.tools.qa.bobshop.co.za/api/bobsync |
| Production | https://api.tools.bobshop.co.za/api/bobsync |
Sandbox is our QA environment. The two are separate systems with separate tokens: a token for one does not work on the other. Going live means changing the base URL and the token.
Getting set up
An administrator installs an API source on Bob Sync for you, which generates your token. Contact support to get set up, then follow the Workflow section.
Conventions
- Requests and responses are JSON. Send
Content-Type: application/jsonwith a body. - Field names are
snake_case. Prices are numbers in rands, for example199.99. Weights are kilograms. - A delete returns
204 No Contentwith an empty body. - A failed request returns a plain-text message, not JSON, with the reason in
the body and the meaning in the status code. For example
400withInvalid id. - A field you leave out takes its type's default:
0,"",falseornull.
Support
Contact help.bobshop.co.za or email
[email protected]. When reporting a
problem with a request, quote the X-Request-ID response header. For a
webhook, quote either ID header from the request we sent you.