Preview a catalogue import without changing products
POST
/shops/{id}/catalogue-preview
const url = 'https://example.com/shops/019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f/catalogue-preview';const options = { method: 'POST', headers: { cookie: '__Host-bottle.session_token=<__Host-bottle.session_token>', 'Content-Type': 'application/json' }, body: '{"settings":{"importImages":true,"importDescriptions":true,"importCylinderCharges":true,"suggestGasTypes":true,"reviewGasTypes":true}}'};
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/019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f/catalogue-preview \ --header 'Content-Type: application/json' \ --cookie __Host-bottle.session_token=<__Host-bottle.session_token> \ --data '{ "settings": { "importImages": true, "importDescriptions": true, "importCylinderCharges": true, "suggestGasTypes": true, "reviewGasTypes": true } }'Lists each eligible listing as new or already here. A new listing that looks like a product already in Bottle carries a match: the same SKU, else the same name, else a model suggestion. Send matches you accept as links on the pull.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”id
required
UUID v7
string format: uuid
Example
019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8fUUID v7
Request Body
Section titled “Request Body”Media typeapplication/json
object
settings
object
importImages
required
boolean
importDescriptions
required
boolean
importCylinderCharges
required
boolean
suggestGasTypes
required
boolean
reviewGasTypes
required
boolean
Example generated
{ "settings": { "importImages": true, "importDescriptions": true, "importCylinderCharges": true, "suggestGasTypes": true, "reviewGasTypes": true }}Responses
Section titled “Responses”New and existing listings for approval
Media typeapplication/json
object
hash
required
string
settings
required
object
importImages
required
boolean
importDescriptions
required
boolean
importCylinderCharges
required
boolean
suggestGasTypes
required
boolean
reviewGasTypes
required
boolean
items
required
Array<object>
object
externalId
required
string
name
required
string
sku
required
string | null
existingProductId
required
UUID v7
string | null format: uuid
currentName
required
string | null
match
object
productId
required
UUID v7
string format: uuid
name
required
string
by
required
string
pricePence
required
integer
images
required
integer
description
required
string | null
charge
required
string | null
selectable
required
boolean
reason
required
string | null
shopType
string | null
candidates
Array<object>
object
id
required
UUID v7
string format: uuid
name
required
string
sku
required
string | null
Example
{ "items": [ { "existingProductId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "match": { "productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "by": "sku" }, "charge": "deposit", "reason": "external" } ], "candidates": [ { "id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f" } ]}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"}No such shop
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "not_found", "message": "Customer not found"}Unsupported currency or unsafe shop address
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" } ]}Shop unavailable
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "not_found", "message": "Customer not found"}