Skip to content

Product Catalog

The Product Catalog is your reusable catalog for everything you sell – hardware, software licenses, and services. Each item has a price book with one sell price per currency, so invoices and recurring contracts pull consistent pricing instead of requiring you to retype it.

The catalog is partner-scoped: it belongs to your MSP and is shared across all of your customers. Open it from Settings → Product Catalog.

Each item represents one thing you sell. Items can be billed one-time (a piece of hardware, a project) or recurring (a monthly service), and are typed as hardware, software, or service.

  1. Go to Settings → Product Catalog.
  2. Click Add item.
  3. Enter a name, choose the item type, and set whether it’s one-time or recurring.
  4. In Price book, add a sell price and currency. You can add more currencies after saving.
  5. Optionally enter your cost, Cost currency, and markup %. Breeze derives a sell price only in the cost currency.
  6. Optionally add a SKU, a unit of measure (each, seat, device, month…), and mark the item taxable.
  7. Save.
Field Description
Name What the item is called on invoices and contracts
Type Hardware, software, or service
Billing One-time or recurring
SKU Optional unique identifier for your own reference
Price book One sell price for each currency in which you sell the item
Cost Your internal cost, used to calculate margin when currencies match
Cost currency The currency of your cost basis; defaults to your partner currency
Markup % Derives a sell price from cost in the cost currency
Unit of measure How the item is counted (each, seat, device, month)
Taxable Whether tax applies to the item

Open an item from Settings → Product Catalog and use its Price book section to add or remove a price for a currency. Through the API, use GET /catalog/:id/prices, PUT /catalog/:id/prices/:currencyCode, and DELETE /catalog/:id/prices/:currencyCode. Breeze never converts a price from one currency to another.

Prices must fit the currency’s minor unit. For example, JPY does not accept decimal places, so 100.50 JPY is refused with PRICE_NOT_REPRESENTABLE rather than rounded silently. When you create an item with a cost and markup percentage, Breeze derives only the price-book row in the cost currency and rounds it to that currency’s minor unit.

Margin and markup-derived prices are available only when the cost currency matches the sell currency. When they differ, the UI shows “Cost in CAD — margin unavailable” (for a CAD cost on a USD price, for example). The list view otherwise shows each item’s margin at a glance, with a negative margin called out in a warning color so under-priced items are easy to spot. You can search by name or SKU, filter by type, and sort by name, price, or margin.

Quotes, invoices, contracts, and ticket editors use the price in the document’s currency. Their catalog pickers flag or disable an item when that price is missing and show “No EUR price for this item. Add one in the catalog or enter a manual line.” (for a EUR document, say) If you try to add it anyway, Breeze refuses the catalog line with NO_PRICE_FOR_CURRENCY (HTTP 409). Add the missing price-book entry or enter a manual line; Breeze never substitutes or converts another currency’s price.

When changing the currency of a draft document through the API (POST /quotes/:id/currency, /invoices/:id/currency, or /contracts/:id/currency), pass reprice: true to resolve catalog-sourced lines again from the price book in the new currency; a catalog line with no price in that currency fails the whole change with NO_PRICE_FOR_CURRENCY. Manual lines cannot be repriced from the catalog and still require clearLines.

Recurring contract billing keeps the stamped snapshot price on each contract line. If its catalog item later loses the price for the contract currency, the billing run uses that snapshot and reports the missing price as a warning instead of changing the amount silently.

When creating or editing a catalog item, type a product name or SKU into the Auto-fill from web field and click Auto-fill. Breeze AI drafts the item’s name, description, type, unit of measure, and taxability. A market-estimate price range is shown as guidance only – you always enter your own sell price before saving.

Set an AI product copy style in Settings → Billing to shape the tone Breeze AI uses when it drafts names and descriptions – for catalog auto-fill and for quotes. Leave it blank to use the default voice.

Each catalog item can carry a product image that appears on quotes. Images are supported in PNG, JPEG, and WebP formats, with a maximum file size of 5 MB.

To add an image, open the item editor and use the Product image field:

  • Upload — select a file from your computer.
  • Import from URL — paste a public image URL and Breeze fetches and stores a copy.

The image is displayed on quote previews and PDFs when the quote line item references this catalog item.

You can override an item’s price for a specific customer and currency without changing the price book everyone else gets. The override applies only when its currency matches the document currency.

  1. Open an item from the catalog.
  2. In the pricing section, choose an organization and currency, then enter its custom unit price.
  3. Save. That customer now gets the override on documents in that currency; other currencies and customers keep their matching price-book prices.

Remove an override at any time to return the customer to base pricing.

A bundle groups several catalog items together so you can sell and price them as a package. When you add a bundle to an invoice, its components are expanded automatically – and you choose, per component, whether it appears as its own line on the customer’s invoice or is rolled into the bundle.

  1. Click Add item and choose to build a bundle.
  2. Add component items and set the quantity of each.
  3. For each component, set whether it shows on the invoice as a separate line.
  4. Save.

In the catalog list, a bundle row expands in place to show its components and rolled-up economics by currency. Breeze computes the combined cost, price, and margin only when every component has a price in that currency. If any component is missing one, the bundle shows “Incomplete price book” instead of a partial total.

Items you no longer sell can be archived rather than deleted, so historical invoices and contracts that reference them stay intact. Switch the catalog to the Archived view to see them, and Restore an item to bring it back into active use.

Rather than typing in hardware by hand, you can pull products straight from a connected distributor into your catalog. Connect the distributor first on the Integrations → Distributors tab (see Distributor Integrations).

Partners can set a Default markup (%) in Settings → Billing. A distributor import stores the feed’s currency as the Cost currency and applies the markup only to the price-book row in that same currency. You can override that calculated price before saving or at any time afterward. Per-item markup overrides always take precedence over the partner default. For a sell price in another currency, add it explicitly to the price book; Breeze does not convert the distributor cost.

TD SYNNEX EC Express looks up real-time price and availability by SKU so the numbers you quote reflect current distributor pricing.

  1. On the TD SYNNEX pricing settings panel, enter your EC Express credentials (customer number, email, password, and region) and save. These are entered in Breeze and stored encrypted – they are not server environment variables.
  2. Use Test connection to confirm your credentials work.
  3. Look up a product by its TD SYNNEX SKU or manufacturer part number. Results show your cost, currency, MSRP, total availability, and a per-warehouse breakdown.
  4. Enter your sell price for a result and import to catalog. The item is added as a one-time hardware item with its cost basis, cost currency, and source details retained. Margin is available only for a sell price in that same currency.

If your Pax8 account is connected, you can search the Pax8 catalog and import individual products as recurring-software catalog items.

  1. From the catalog, click Import from Pax8 (visible when you have catalog edit access and Pax8 is connected) to open the import drawer.
  2. Search for a product and select it, then choose the commitment / billing term – this determines the pricing. Pax8’s partner buy rate and feed currency fill in your cost basis and Cost currency, and the term’s suggested retail pre-fills the price-book row in that currency (editable).
  3. Click Import & add. The item is created as a recurring-software catalog item with its Pax8 source details retained, and re-importing the same product won’t create a duplicate. Prices in other currencies must be added to its price book separately.

Importing requires MFA confirmation. This is distinct from Pax8 subscription linking (mapping a customer’s existing subscriptions to contract lines), which is covered under Integrations → Pax8.

Searching distributor products from a quote

Section titled “Searching distributor products from a quote”

You can also pull a distributor product directly into an open quote – the quote editor’s line-item picker has its own Search distributor tab. See Quotes → Searching distributor products from a quote. The catalog-level workflow above builds your standing price list; the quote-level search brings a product straight into a proposal without navigating away.

Catalog access is governed by role permissions: viewing requires catalog read access, creating and editing items and bundles requires catalog write access, and archiving requires catalog delete access. Assign these through Settings → Users & Roles.