Catalogue. 88 operations.
88 of them work. Page 1 of 5. Each needs a bearer token with its scope. All operations.
Operations
POST/api/v1/catalogue/review/{slug}/descriptioncatalogue.accept-descriptioncatalogue.write
POST/api/v1/catalogue/products/{slug}/variantscatalogue.add-variantcatalogue.write
POST/api/v1/catalogue/review/{slug}/questions/{id}catalogue.answer-questioncatalogue.write
POST/api/v1/catalogue/review/{slug}/approvecatalogue.approve-productcatalogue.write
POST/api/v1/catalogue/variants/{sku}/archivecatalogue.archive-variantcatalogue.write
POST/api/v1/catalogue/review/{slug}/ask-photocatalogue.ask-photocatalogue.write
POST/api/v1/catalogue/media/{name}/attachcatalogue.attach-imagecatalogue.write
POST/api/v1/catalogue/products/{slug}/variants/bulkcatalogue.bulk-set-variantscatalogue.write
GET/api/v1/catalogue/categoriescatalogue.categoriescatalogue.read
POST/api/v1/catalogue/variants/{sku}/sale/clearcatalogue.clear-salecatalogue.write
GET/api/v1/catalogue/collections/{slug}/productscatalogue.collection-productscatalogue.read
Parameters
slugpath | string |
slugpath | string |
limitquery | integerThe most products in the page; all when left out. |
afterquery | stringThe cursor of the page: the next of the page before; the first page when left out. The products follow it. |
Answer
Errors: 401, 403, 404, 405, 422, 429
curl -X GET -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/collections/{slug}/products
GET/api/v1/catalogue/collectionscatalogue.collectionscatalogue.read
POST/api/v1/catalogue/productscatalogue.create-productcatalogue.write
POST/api/v1/catalogue/review/{slug}/held/{id}catalogue.decide-heldcatalogue.write
POST/api/v1/catalogue/review/{slug}/retire/decidecatalogue.decide-retirecatalogue.write
POST/api/v1/catalogue/categories/{slug}/deletecatalogue.delete-categorycatalogue.write
POST/api/v1/catalogue/collections/{slug}/deletecatalogue.delete-collectioncatalogue.write
POST/api/v1/catalogue/fields/{key}/deletecatalogue.delete-fieldcatalogue.write
POST/api/v1/catalogue/images/{name}/deletecatalogue.delete-imagecatalogue.write
POST/api/v1/catalogue/media/{name}/deletecatalogue.delete-mediacatalogue.write
Schemas 39
AcceptDescriptionRequest
AcceptDescriptionRequest accepts one description, Part "long" (when left out) or "short", as seen.
part | string |
seenrequired | string |
AnswerQuestionRequest
AnswerQuestionRequest resolves a question with one of its choices.
choicerequired | string |
seenrequired | string |
ApproveProductRequest
ApproveProductRequest approves the product (ASI-2.6): it also publishes a product that was never published (ASI-2.8). The list's filters give Next.
listrequired | ReviewWorkspaceQuery |
seenrequired | string |
AskPhotoRequest
AskPhotoRequest asks for a new photo (ASI-2.10).
wordsrequired | string |
AttachImageRequest
AttachImageRequest puts an image of the library on a product: the product's slug, and the position it takes among the product's images, from 0; absent or null for the last.
positionrequired | integer |
productrequired | string |
BulkVariantEdit
BulkVariantEdit is one variant's change: its price as the owner enters it, its stock count with the count expected, or both; a field left out leaves it as it is. The API door refuses an edit that sets nothing.
price | string |
skurequired | string |
stock | StockRequest |
BulkVariantsRequest
BulkVariantsRequest is the changes of several variants of one product, made together or not at all: each variant by its SKU.
variantsrequired | array of BulkVariantEdit |
Category
Category is a category of the store's tree as the owner sees it: its name, its slug, its parent's slug ("" for a root), its description in the safe Markdown subset, its position among its siblings (0 for none), and its trail, the names from the root down to it, such as "Braais / Accessories", which tells two categories of one name apart.
descriptionrequired | string |
enquiry_mail_torequired | string |
enquiry_onlyrequired | boolean |
namerequired | string |
parentrequired | string |
positionrequired | integer |
slugrequired | string |
trailrequired | string |
CategoryDeleteRequest
CategoryDeleteRequest deletes a category. A category that the rules of a dynamic collection name is refused unless DropFromCollections is set: the conditions on it are then taken out of the rules, in the same transaction; rules left with no condition are cleared. Drops, when it is given (even empty), names the slugs of the collections the owner was shown as the ones to change; the request is refused (409, naming both) unless they are exactly the collections the rules name now, in any order. Without it nothing is checked.
drop_from_collections | boolean |
drops | array of string |
ChoiceField
ChoiceField is a question a product asks the buyer for each cart line: a free text, or one value of a list. Its Key never changes after an order uses it.
helprequired | string |
keyrequired | string |
kindrequired | string |
labelrequired | string |
linesrequired | integer |
max_lengthrequired | integer |
optionalrequired | boolean |
valuesrequired | array of string |
Collection
Collection is a collection as the owner sees it: its title, its slug, its description in the safe Markdown subset, whether buyers see it, and its products by slug, in the owner's order.
descriptionrequired | string |
dynamicrequired | boolean |
product_countrequired | integer |
productsrequired | array of string |
publishedrequired | boolean |
revisionrequired | integer |
rules | CollectionRules |
rules_saved_at | string (date-time) |
rules_saved_by | string |
rules_text | string |
slugrequired | string |
titlerequired | string |
CollectionCondition
CollectionCondition is one condition: its kind, and the arguments of that kind, the others left out. Kinds: category (a category's slug, and the categories below it), price (Min, Max, either one may be left out), on_sale, in_stock, new_within (Days, from 1 to 365) and option (Option, an option's name, and Value, one of its values, in any case) and field (Field, a custom product field's key, and either Value, a choice or yes/no value of it, or Lo and Hi, the lowest and the highest of a number or a date, as the field writes them, either one may be left out). A price is text with exactly two decimals, VAT-inclusive as the owner enters it.
category | string |
days | integer |
field | string |
hi | string |
kindrequired | string |
lo | string |
max | string |
min | string |
option | string |
value | string |
CollectionProductsPage
CollectionProductsPage is a page of a collection's products: their slugs, in the collection's order; Total, how many it holds in all; and Next, the cursor of the next page, to pass as after, "" for the last.
nextrequired | string |
slugsrequired | array of string |
totalrequired | integer |
CollectionRules
CollectionRules are a dynamic collection's rules: how the conditions combine, all or any; the conditions; and the sort of its products, one of newest, price_asc, price_desc, title and featured. From contract version 6.
conditionsrequired | array of CollectionCondition |
matchrequired | string |
sortrequired | string |
Combo
Combo is a combo variant as the operations show it: whether it sells at the sum of its parts' prices, and its parts in order. From version 6.
partsrequired | array of ComboPartRequest |
sumrequired | boolean |
ComboPartRequest
ComboPartRequest is a part of a combo: the SKU of a variant of the store that is no combo itself, once in a combo, and how many of it one combo holds, from 1 to 99.
quantityrequired | integer |
skurequired | string |
ComboRequest
ComboRequest is a combo variant's parts and how it is priced: its parts in order, and whether it sells at the sum of their prices now (Sum), in which case its variant has no price of its own.
partsrequired | array of ComboPartRequest |
sum | boolean |
DecideHeldRequest
DecideHeldRequest decides a held change: Use true is "I checked it: use the new value", false is "Keep the approved value".
seenrequired | string |
userequired | boolean |
DecideRetireRequest
DecideRetireRequest approves (Approve true) or refuses a proposed retire.
approverequired | boolean |
noterequired | string |
seenrequired | string |
Deletion
Deletion is what a delete deleted: the slug of the category, the collection or the content page that is gone, or the name of the image.
deletedrequired | string |
Dimensions
Dimensions are a variant's size in whole millimetres: all three 0 for none, or each from 1 to 10 000.
height_mmrequired | integer |
length_mmrequired | integer |
width_mmrequired | integer |
FieldDefinition
FieldDefinition is one field: the key a theme and a filter name it by, which never changes; the label a buyer reads; its type (text, number, yes_no, choice or date); its scope (product or variant); where it is shown (page, listings, both or hidden); whether it is filterable; its position; a number's unit; a choice field's choices and whether it holds several; how many products or variants hold a value of it; and who saved it and when.
choices | array of string |
countrequired | integer |
filterablerequired | boolean |
keyrequired | string |
labelrequired | string |
multiple | boolean |
positionrequired | integer |
saved_at | string (date-time) |
saved_byrequired | string |
scoperequired | string |
shownrequired | string |
typerequired | string |
unit | string |
FieldDeleteRequest
FieldDeleteRequest deletes the field its path names: the definitions' revision as the owner read it, and whether the owner confirms deleting the values it holds with it.
confirm | boolean |
drop_from_collections | boolean |
drops | array of string |
revisionrequired | integer |
FieldDeletion
FieldDeletion is a field deleted: how many products and variants held a value of it, and the definitions then.
fieldsrequired | ProductFields |
removedrequired | integer |
ImageUpload
ImageUpload is a product's image: as its upload left it, and as catalogue.images reads it.
altrequired | string |
copy_failure | string |
heightrequired | integer |
namerequired | string |
positionrequired | integer |
processingrequired | boolean |
productrequired | string |
thumbnailrequired | string |
widthrequired | integer |
Money
Money is an amount: in minor units of its ISO 4217 currency, and as the store displays it.
currencyrequired | string |
displayrequired | string |
minorrequired | integer |
Product
Product is a product of the catalogue, with every variant.
card_titlerequired | string |
categoriesrequired | array of string |
categoryrequired | string |
choicesrequired | array of ChoiceField |
choices_allowedrequired | boolean |
choices_refused | string |
country_of_originrequired | string |
cross_sellsrequired | array of string |
descriptionrequired | string |
enquiry_moderequired | string |
enquiry_onlyrequired | boolean |
enquiry_show_pricerequired | boolean |
featured_positionrequired | integer |
fieldsrequired | map of array of string |
hs_coderequired | string |
meta_descriptionrequired | string |
meta_titlerequired | string |
optionsrequired | array of string |
relatedrequired | array of string |
retired | ProductRetirement |
ships_freerequired | boolean |
short_descriptionrequired | string |
slugrequired | string |
titlerequired | string |
unpublished_at | string (date-time) |
updated | string (date-time) |
upsellsrequired | array of string |
variantsrequired | array of Variant |
ProductChange
ProductChange is a product as an operation left it, and whether the operation changed it.
changedrequired | boolean |
productrequired | Product |
ProductFields
ProductFields are the definitions of the custom product fields, in the owner's order, at the revision each write must send back (0 while the owner never saved one).
fieldsrequired | array of FieldDefinition |
revisionrequired | integer |
ProductRequest
ProductRequest is a product the owner creates, with its first variant. It starts unpublished, with no image: catalogue.upload-image adds them, catalogue.set-categories puts it in categories, and catalogue.publish shows it to buyers.
descriptionrequired | string |
options | array of string |
short_description | string |
slug | string |
titlerequired | string |
variantrequired | VariantRequest |
ProductRetirement
ProductRetirement is how a product left the shop (PR-4): At, when it was retired; ReplacedBy, the slug of the product that replaces it, "" for none; KeepPage, whether its address keeps a page that says it is no longer sold.
atrequired | string (date-time) |
keep_pagerequired | boolean |
replaced_byrequired | string |
ReviewActResult
ReviewActResult is the product after an act: its state and look-again flag, whether it is published, and, after an approval, the next product of the list ("" for none).
look_againrequired | boolean |
nextrequired | string |
publishedrequired | boolean |
slugrequired | string |
staterequired | string |
ReviewWorkspaceQuery
ReviewWorkspaceQuery is the query of catalogue.review-workspace: the list's filters the product was opened from (ReviewListQuery but After and Limit), for its place and neighbours (ASI-7.4).
category | string |
check | string |
property | string |
q | string |
state | string |
Sale
Sale is a variant's sale price and its window: the price it sells at from Start, inclusive, to End, exclusive.
endrequired | string (date-time) |
pricerequired | Money |
startrequired | string (date-time) |
StockRequest
StockRequest is a variant's new stock count, and the count the caller saw, which the store must still hold for the set to be made. The body must carry both: the API door refuses one without either. Location names the stock location whose level is set; none (or main) is the location main. Expected and Count are then that location's.
countrequired | integer |
expectedrequired | integer |
location | string |
Variant
Variant is a variant of a product.
allow_backorderrequired | boolean |
archived_at | string (date-time) |
combo | Combo |
compare_at | Money |
digitalrequired | boolean |
dimensions | Dimensions |
dispatch_byrequired | string |
fieldsrequired | map of array of string |
filerequired | VariantFile |
imagesrequired | array of string |
low_stock_threshold | integer |
made_to_orderrequired | boolean |
option_valuesrequired | array of string |
pricerequired | Money |
production_daysrequired | integer |
sale | Sale |
ships_alonerequired | boolean |
skurequired | string |
stockrequired | integer |
supplierrequired | string |
tax_classrequired | string |
track_stockrequired | boolean |
weight_gramsrequired | integer |
VariantChange
VariantChange is a variant as an operation left it, and whether the operation changed it.
changedrequired | boolean |
variantrequired | Variant |
VariantFile
VariantFile is a digital variant's file: its name as a download is saved, its size in bytes, its SHA-256 in lower-case hex, and when and by whom it was uploaded. From contract version 6.
digestrequired | string |
namerequired | string |
sizerequired | integer |
uploaded_atrequired | string (date-time) |
uploaded_byrequired | string |
VariantRequest
VariantRequest is a new product's first variant, or a variant added to a product.
allow_backorder | boolean |
combo | ComboRequest |
compare_at | string |
dimensions | Dimensions |
low_stock_threshold | integer |
options | map of string |
pricerequired | string |
ships_alone | boolean |
skurequired | string |
stockrequired | integer |
tax_class | string |
track_stockrequired | boolean |
weight_grams | integer |
Made from engine/internal/openapi/openapi.json at commit 6c4cbd921. The contract-only operations come from the engine’s stub file, engine/internal/ops.