Start connecting a WooCommerce shop from its own admin
POST
/shops/woocommerce/authorize
const url = 'https://example.com/shops/woocommerce/authorize';const options = { method: 'POST', headers: { cookie: 'bottle.session_token=<bottle.session_token>', 'Content-Type': 'application/json' }, body: '{"name":"example","url":"https://example.com"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/shops/woocommerce/authorize \ --header 'Content-Type: application/json' \ --cookie bottle.session_token=<bottle.session_token> \ --data '{ "name": "example", "url": "https://example.com" }'Answers with the shop’s own approval page to send the browser to. The shop owner signs in to their WordPress and approves read access; WooCommerce makes the key pair, posts it to Bottle and sends the browser back to the connections page. Nothing to copy. The shop must be reachable over https.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
name
required
string
url
required
string format: uri
Examplegenerated
{ "name": "example", "url": "https://example.com"}Responses
Section titled “Responses”Where to send the browser
Media typeapplication/json
object
authorizeUrl
required
string format: uri
Examplegenerated
{ "authorizeUrl": "https://example.com"}Not signed in
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "not_found", "message": "Customer not found"}Not allowed to manage shops, or asking for a key to do it
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "not_found", "message": "Customer not found"}Validation failed
Media typeapplication/json
object
error
required
string
message
required
string
issues
required
Array<object>
object
path
required
string
message
required
string
Example
{ "error": "validation", "issues": [ { "path": "email", "message": "Invalid email" } ]}