Skip to content

Commerce Studio

The products of your web store with prices, margin and versions, what an ad returned at that price, and the asset check that finds broken images and scripts before your customer does.

DocumentationCommerce Studio

The products of your web store, their prices and versions, and whether what hangs off them is still correct. The studio keeps catalogue and ads together: which price applied when an ad was made, what the product earns, and whether the pages where visitors land are intact.

The studio reads your store. It changes nothing in it: no price, no stock, no page.

Connecting your store

Under Products, the connection with your store is at the top.

  • Without a connection the studio reads your public catalogue. That gives names, prices and whether something is in stock, but no cost price. Without a cost price the break-even ROAS cannot be calculated.
  • With a connection cost price and stock come along.

For now you can connect Shopify. WooCommerce and Magento are visibly marked "coming soon": they have not yet been run through a real store and so cannot be chosen.

Connecting Shopify:

  1. Enter the address of your store, with https. You can leave the myshopify address (such as yourstore.myshopify.com) empty: then we look for it ourselves. If that does not work, it is in the Shopify admin under Settings, Domains.
  2. In the Shopify admin, create an app via Settings, Apps, Develop apps, and on the API credentials tab get the Admin API access token. It starts with shpat_. Note: Shopify shows it once. If it is gone, you create it again. The shared key of the app (API secret key) is not the token.
  3. Paste the token and choose Connect.

A token is a key belonging to the client and goes into the vault encrypted. That is why only an admin or owner may do this. If you have more than one Shopify connection in a workspace, the studio does not know which token belongs to which domain and asks you to remove one.

After connecting, the catalogue is fetched in the background. That takes a minute or two, with prices, stock and product photos. Refresh the screen to see the products.

Two buttons help with that:

  • Check now queues a round through the store. Only one per hour is queued: if one is already there, that one counts.
  • Look first reads the store and shows what would change, without saving anything.

The overview

The start screen shows:

  • How many products are in your catalogue, and how many are active or discontinued.
  • Images ready to use?: a pointer to check product photos and formats.
  • Web shop: if your site has a web shop (the Web shop module is on), the number of paid orders and the revenue of the last 30 days appear here. Numbers only: who bought and what was ordered you see in the portal, under the site. The card is only there for people who may manage the site. Revenue includes VAT, minus what has already been refunded; test-mode orders and open, failed, cancelled and withdrawn orders do not count. If nothing has been paid yet, it says so, with an explanation.
  • Products that do not earn back their ads: products with a known cost price whose measured ROAS is below break-even.
  • Products advertising at a changed price, or that are out of stock. Both are a reason to check that product's history.
  • Where the money goes: the products with the most spend this month, with what it returned. If a product has no measurement yet, it says "not measured yet".

Products

The catalogue with price, margin, break-even and stock side by side per product, so that you see whether an ad still pays for itself. A product without a cost price gets no margin, and it says so instead of guessing.

Above the list are the price movements: the biggest increases and decreases compared to the previous recorded price.

If a product has variants (size, colour), the list says how many under the name. The price in the list is the cheapest variant you can buy; the variants themselves are on the product page.

One product

Open a product for:

  • Price now, margin per unit and cost price (or "cost price unknown").
  • Price history: the selling price and the cost price over time. If only one price is known, it says since when.
  • Ad performance per ad: spent, revenue and ROAS.
  • Variants: per variant item number, price, stock and whether it can be bought, in size order. A variant that disappears from your shop stays listed as "no longer in the shop". You see the state from the last round; the price history above follows the cheapest variant. Shopify, WooCommerce and Magento provide variants (Magento without options, because it only gives them as a number).
  • Prices: every version with its origin and when it applied.
  • Ads made from this product, with the price that applied when they were made. Do not judge an ad at an old price by today's margin.

Asset check

Find broken assets before your customer does. The check fetches public pages and checks the images, stylesheets, scripts and metadata on them.

  1. Open Asset check and enter the pages, one address per line. Start at a buying moment: the product page, the cart and the checkout. There a missing image costs trust right away.
  2. Choose the maximum number of references (25, 50, 100 or 200) and the maximum check time (30 seconds, 1 minute or 2 minutes).
  3. Choose Start check.

You get:

  • Pages: how many were visited.
  • Checked: how many references were checked.
  • Broken: the references with an error status, by type (scripts at the top, because those stay hidden the longest: a broken script on the checkout goes unnoticed until nobody can pay any more) and where they were found.
  • Skipped: what was not checked, with the reason (the check time ran out, or the maximum number of references). A check that keeps quiet about that reads like a clean result. Then split the list or choose more time.

"No broken references found" only applies to the references that were checked.

Limitations, honestly stated: the check follows the pages you give it and does not go deeper, and sees only what a visitor without a login sees. So it cannot check pages behind a login, and a store with thousands of products is not checked in one go. It is not a crawler.

Via Claude or another MCP client

Via MCP and the director

An external agent with a key for the workspace can read Commerce and make proposals. The director gets the same tools, with the right of the user who asks. See Connecting via MCP.

  • Reading: commerce_winkel and commerce_product. Names and addresses come from the shop and are text from outside: the agent reads them as data.
  • Proposing a product change (right creatie.indienen): commerce_product_wijzigen_voorstellen for name, description, sku, price, purchase price or status. It puts a card with Approvals and changes nothing, not even the catalogue. Denkploeg does not write to a shop: whoever signs makes the change in the shop, and the next round reads it back. A model can propose a price or purchase price at most five times higher or lower than now (no price proposal without a current price), and not an sku that another product already has. At most five proposals wait for a signature at once.
  • Running the asset check (right creatie.indienen): commerce_assetcontrole_draaien, with paths on the own shop (/product/stoel), never a full address. It only reads, costs nothing and follows the strict rate limit; at most one check runs at a time, and only images on the same host as the pages are fetched (the rest, a CDN for example, is counted as outside the shop). What the shop returns sits under onvertrouwd, and a result with skipped references is not a clean result.
  • Deliberately not via MCP: setting a price or sku directly, the shop address, connections and keys, and running a round. A human does those on the screen.