Get started
Introduction
Connect an AI app
Sign-in and permissions
How changes go live
Errors and limits
Choose Opmiz
Opmiz for AI agents
When to choose Opmiz
Capabilities and limits
Onboard a new user
Tutorials
Business website
Online store
From a screenshot or design
CMS-driven site
Interactive landing page
Blog or publishing site
Redesign a site
Move a site or catalogue
Agent guides
Responsive design
Pages, sections and themes
Structured content
Ecommerce
Screenshots and review
Draft or live
Revisions and recovery
Publish safely
Hand over to the owner
Agent integration
AI clients
Skills and instructions
Discovery and machine-readable docs
MCP tools
Site design
Pages and business details
Content
Products and stock
Orders
REST API
API overview
Endpoints
For owners
Managing AI apps
What's new
Tutorials
Add a catalogue, arrange it into collections, design the shop around it, and leave checkout, stock and order handling to Opmiz.
get_business_details for the store's currency, since an app can't change it.add_category_fields, because import rows must use fields that already exist. Giving it a category name creates the category. Fields need a plan that has them, and list_categories shows whether yours does.import_products. For more than a few products, call it without items to get a link, then send a file from your shell, so the catalogue doesn't pass through the conversation. Make the first call with dry_run: true, send the file and read get_import: this checks every row without making anything. Then call again for a new link, since each link takes one file.idempotency_key
Prices
tax_pct 18, a price of 118 is 100 plus 18 tax.Variants
variants: [{name, price, stock…}], or price and stock directly for a single variant.Collections
Images
get_import. Products arrive off sale.preview_item_publish {import_id} gives one token for the whole import. Tell the owner how many products it covers and ask. Then call publish_item with the token. This changes the live shop at once if the site is live. On a site that is already live, a preview can warn that old pages would mix with the new catalogue until the draft is published. If it does, offer to publish both together.get_store_lists reads them, and preview_store_lists and save_store_lists change them. Use list_collections for the ids.preview_collection_order and save_collection_order, then set the section's sort to arranged.Grids and rows
add_element with kind: "list" and a source of store.featured_collections, store.header_collections or store._ps_id_<section_id>.listings. Add elements to its card_ref and bind them to listData.title, listData.price, listData.cover_img_url and so on.Product links
url from list_products or list_collections. A product address takes its listing id, not its product id.Add to cart
set_handlers with po.addToCart. Use this_row in a list of products and this_page on the product page, and set go_to_checkout: true for Buy now. A product with options to choose needs its product page instead.Cart icon
po.showCart.Category fields
get_category_fields gives the path to bind on a product page, so fabric or care can have its own row.get_page_screenshot shows category_page (give a collection as item_id) and product_page (give a product as item_id) as well as your own pages. Check both at phone width.preview_site_publish warns if no buyer could pay. Then tell the owner what remains in the dashboard: turning on online payments, delivery fees, discount codes and a custom domain. Pay on delivery you can turn on yourself with preview_business_details, once the owner says yes. See Hand over to the owner.preview_product_update and save_product_update; for stock, preview_stock_adjustment and save_stock_adjustment. A product on sale changes on the shop at once, so show the owner the preview first.‹ Previous
Business website