Dashboard
How it Works Documentation Quick Start PAPI — Pages & Assets MAPI — Dynamic Data Integrations SAPI — Sessions & Forms MCP Server OpenClaw Skill Tools Deploy Dashboard
Product Catalog

Product Catalog

⚡ Built-in — Platform Built-in

Manage products, variants, and categories for your online store or any catalog-style listing. Prices in cents, category nesting, variant options, fulltext search.

⚡ Built-in — No Setup Required This integration is built into the WebsitePublisher platform. All endpoints are available immediately — no API key needed.

Endpoints (19)

GET list-products

List products with optional filters. Returns products with category info. Paginated.

No input parameters required.

GET get-product

Get a single product with its variants, configurable properties (#822), and category in one response. The properties array carries the value ids used by resolve-variant.

No input parameters required.

POST create-product

Create a new product. Slug auto-generated from name if omitted. Price in cents (1999 = €19.99).

No input parameters required.

PUT update-product

Update an existing product. Only send fields you want to change.

No input parameters required.

DELETE delete-product

Delete a product and all its variants (CASCADE).

No input parameters required.

GET search-products

Fulltext search on product name, description, and SKU. Default: only active products.

No input parameters required.

POST bulk-upsert-products

Bulk import products: create new or update existing (matched by SKU). Up to 500 items per call. Each item must have sku; new products also need name + price_cents. Returns per-item results with status (created/updated/failed) and aggregate summary (by_action, by_error_type). AI clients MUST inspect result.summary — envelope.success: true does NOT mean all items succeeded; check result.failed and result.summary.by_error_type.

No input parameters required.

POST bulk-upsert-variants

Bulk import variants: create new or update existing. Each item carries its own product_id (send all items with the same product_id to fill one product, or mix products in one call). Up to 500 items per call. Match key per item: sku (unique per website) if present, otherwise the options combination (combo_key) within the product. Each item needs sku OR options; new variants also need price_cents. Returns per-item results with status (created/updated/failed) and aggregate summary (by_action, by_error_type). AI clients MUST inspect result.summary, not envelope.success alone, for item-level outcomes.

No input parameters required.

GET list-categories

List all categories with product counts. Returns tree structure by default.

No input parameters required.

POST create-category

Create a product category. Supports nesting via parent_id.

No input parameters required.

PUT update-category

Update an existing category.

No input parameters required.

DELETE delete-category

Delete a category. Products in this category get category_id = NULL.

No input parameters required.

POST create-variant

Add a variant to a product. Auto-sets product type to variable.

No input parameters required.

PUT update-variant

Update a product variant.

No input parameters required.

DELETE delete-variant

Delete a variant. Auto-resets product type to simple if last variant.

No input parameters required.

POST set-product-properties

Define or replace a product's configurable property schema (e.g. maat: [A4, A3], kleur: [zwart, RAL]). Declarative: send the full schema, the server diffs against existing rows. Returns properties and values WITH their ids — use those ids in create-variant (options) and on the storefront selector. Properties/values left out are removed (blocked if a value is still used by a variant).

No input parameters required.

GET resolve-variant

Resolve a single variant (and its price) from a selected combination of property value ids. One indexed lookup on combo_key — does not fetch all variants. Returns the variant with price_cents, sku, stock_quantity. 404 if no variant matches the combination.

No input parameters required.

GET list-variant-options

Progressive disclosure for the variant selector: given the value ids already chosen, returns per remaining property the value ids still reachable. Call with an empty or partial selection to drive dependent dropdowns.

No input parameters required.

POST upload-product-image

Upload an image and link it to a product in one call. The product must exist — returns 404 if not found. Image is stored on the public CDN, slug is auto-generated from product slug + filename. The product images array is updated automatically (append or insert at position). Accepts base64 with optional data URI prefix (auto-stripped). Response includes the updated images array. Browser: adminCall("product-catalog", "upload-product-image", { product_id: 42, filename: "front.jpg", content: base64String }). Max 5MB per image. Allowed: jpg, jpeg, png, gif, webp, svg.

No input parameters required.

MCP Tool Names

When using this integration through an AI assistant (Claude, ChatGPT, Cursor, etc.), the endpoints are available as MCP tools:

EndpointMCP Tool Name
list-products product-catalog_list_products
get-product product-catalog_get_product
create-product product-catalog_create_product
update-product product-catalog_update_product
delete-product product-catalog_delete_product
search-products product-catalog_search_products
bulk-upsert-products product-catalog_bulk_upsert_products
bulk-upsert-variants product-catalog_bulk_upsert_variants
list-categories product-catalog_list_categories
create-category product-catalog_create_category
update-category product-catalog_update_category
delete-category product-catalog_delete_category
create-variant product-catalog_create_variant
update-variant product-catalog_update_variant
delete-variant product-catalog_delete_variant
set-product-properties product-catalog_set_product_properties
resolve-variant product-catalog_resolve_variant
list-variant-options product-catalog_list_variant_options
upload-product-image product-catalog_upload_product_image
← Back to all integrations