GET/v1/catalogue
Every product as the store sees it, offered or not.
What it does
The whole catalogue for the key's store: each product, whether the store offers it (listed), its priced sizes, the names of sizes that have no price yet, its lowest price, whether it is priced by quantity tiers (which a Shopify variant cannot hold), and blocked -- why it cannot be offered yet (no size, no price, nowhere to deliver), or null. What a platform app shows in a products picker. A key with no store is refused. With offered=1, only the products on sale -- offered in this store or in at least one of the organisation's open stores -- and not_offered counts the products left out (drafts, retired copies, products only a draft store lists).
Send the key: Authorization: Bearer sk_test_… or sk_live_….
curl "https://printwisp.com/v1/catalogue" \
-H "Authorization: Bearer $PRINTWISP_KEY"
# 200
{
"store": { "code": "web-au", "name": "Harbour Prints AU", "currency": "AUD" },
"products": [
{
"code": "layflat",
"name": "Lay-flat photobook",
"listed": false,
"sizes": [{ "code": "layflat-8x8", "name": "8 x 8 in", "price": "345.00", "currency": "AUD" }],
"unpriced_sizes": ["12 x 12 in"],
"from_price": "345.00",
"currency": "AUD",
"quantity_priced": false,
"blocked": null
}
]
}<?php
$ch = curl_init('https://printwisp.com/v1/catalogue');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PRINTWISP_KEY'), 'Content-Type: application/json'],
]);
$answer = json_decode(curl_exec($ch), true);// Node (your server). The key never reaches a browser.
const r = await fetch('https://printwisp.com/v1/catalogue', {
headers: { Authorization: 'Bearer ' + process.env.PRINTWISP_KEY },
});
const answer = await r.json();import os, requests
r = requests.get(
"https://printwisp.com/v1/catalogue",
headers={"Authorization": f"Bearer {os.environ['PRINTWISP_KEY']}"},
)
answer = r.json()Parameters
| Parameter | Type | Description |
|---|---|---|
offered | string | 1: only products offered in this store or in an open store of the organisation; the response adds not_offered, how many were left out. |
Response
200 application/json. The store and every product.
{
"store": { "code": "web-au", "name": "Harbour Prints AU", "currency": "AUD" },
"products": [
{
"code": "layflat",
"name": "Lay-flat photobook",
"listed": false,
"sizes": [{ "code": "layflat-8x8", "name": "8 x 8 in", "price": "345.00", "currency": "AUD" }],
"unpriced_sizes": ["12 x 12 in"],
"from_price": "345.00",
"currency": "AUD",
"quantity_priced": false,
"blocked": null
}
]
}Errors
| HTTP | error | message |
|---|---|---|
| 400 | no_store | This key belongs to no store: use a store's key. |