Create a price list with priceListCreate, specifying a name, currency, and parent.adjustment (e.g., a percentage discount off the compare-at price) for the default rule.
Add fixed override prices for specific variants using priceListFixedPricesAdd, passing an array of {variantId, price{amount, currencyCode}} objects.
Create a catalog with catalogCreate of type COMPANY, referencing the priceListId just created and setting status to ACTIVE.
Assign the catalog to a company location with catalogContextUpdate, passing the companyLocationId in the context field.
Validate by querying catalog(id:) with priceList, publication, and operations fields; also call priceListFixedPrices(first:10) to confirm variant overrides.
Publish the catalog by calling publishablePublish with the catalogId so it is visible at the company buyer's storefront session.
Known gotchas
Price list percentage adjustments apply to the compareAtPrice, not the base price — if a variant has no compareAtPrice, the adjustment rule produces no price and the variant may surface as free; always set fixed prices for such variants.
A company location can only be assigned to one catalog at a time; assigning a new catalog automatically removes the existing assignment.
catalogContextUpdate uses a companyLocationIds array, not a single ID — passing a scalar will cause a type error.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp