Products — catalog and performance

Browse your Shopify product catalog in Ordinary with synced inventory, images, and performance stats, all in one unified table.

Ordinary Written by The Ordinary Team · Updated
On this page

The Products page is your full Shopify catalog and per-product performance, in a single unified table. Catalog fields (SKU, product name, pricing, dimensions) are date-independent; performance metrics (Units, Gross revenue, Orders, AOV, Sub Attach, Repeat Rate) respect the date range selected in the toolbar.

What’s on each row

Default columns:

  • Product — name; click through for the product detail page
  • Landed Cost — your product cost (Advanced plan)
  • Status — Active / Inactive
  • Units — units sold in the selected date range
  • Gross revenue — the product’s gross line value (before discounts and refunds are spread across the order) in your display currency, for orders placed in that range. Financials shows allocated net revenue, so the two won’t match exactly
  • Orders — distinct orders that included the product
  • AOV — average order value of those orders
  • Sub Attach — % of the product’s orders that included a subscription signup
  • Repeat Rate — % of buyers who came back for another order
  • An Offer calculator icon per product (Advanced plan)

The All / Active / Inactive control above the table filters by product status; the list opens on Active.

Rows with no matching orders in the selected range show ”—” for the metric columns (not “0”), so “no sales yet” is visibly different from a zero result.

Items listed at a price of 0 (free add-ons that come with a bundle, or a product you use to send replacements) aren’t counted as sales, so a product that is only ever given away shows ”—”. All of a product’s variants count toward its row.

If something sold in the selected range but is no longer in your catalog (for example a product you deleted in Shopify, or a custom item added to an order), its units and gross revenue appear in an Unlisted products total under the table, so every sale in the range is counted somewhere. The total only shows when there are such sales.

Bundles made with Shopify’s Bundles app (or another app built on Shopify’s bundles) count as the bundle: one sale of the bundle product, with the bundle’s full price as its revenue, rather than a sale of each item inside it.

Use the Columns dropdown in the toolbar to show / hide additional catalog fields (SKU, ASIN, Parent ASIN, Pack weight, carton dimensions and more). On the Advanced plan, cost and price columns such as Unit Price (USD / GBP) and landed cost breakdowns are available too. The hidden-by-default columns are there if you need them — the default set is tuned to fit on a laptop without horizontal scroll.

Product detail page

Click a product to open its detail page. The header shows the product’s name, how many product variants it has, its price range and whether it is active, with buttons to open it in the Offer calculator (on plans that include it) and to View in Shopify.

Everything below the header follows the date picker in the toolbar, including the comparison period when you have one switched on.

  • Key numbers. Units sold, revenue, orders (with the share from new customers), gross margin with profit per order, repeat in 90 days, and days of stock. Units sold, revenue and orders show the change against your comparison period. Revenue is this product’s share of each order after discounts and refunds, including tax, so the products in an order add up to that order. Gross margin needs product costs and is available on plans that include them; it reads as a range (≤) when some items sold have no cost entered. Repeat in 90 days is the share of customers whose first order included this product and who ordered again within 90 days. Only first orders at least 90 days old count, so pick a longer date range (for example the last 12 months) for a firm figure. Days of stock divides the stock you have now by how many units shipped a day over the last 30 days, and needs inventory tracking.
  • Units over time. Units sold per day, week or month, stacked by product variant. The same figures as Unit Sales with this product selected.
  • Where it sells. The pages where shoppers added this product to cart, with orders, units, revenue, the page’s visits (each visitor once per day they were on it, the same Visits as Page Performance) and this product’s revenue per visit, the same way Page Performance credits orders to a page. Click a page to open it in Page Performance. Orders with no page recorded (our pixel didn’t see the add to cart) are counted in their own row.
  • Product variants. When the product has more than one product variant: share of units, units, revenue, current price, profit per order, refunded units and stock for each. Product variants are told apart by Shopify’s variant, not by SKU, and wear the same colours as the chart. Rows with fewer than 30 orders are marked Low sample. Stock is recorded per Shopify variant, so variants that share a SKU or have none each show their own stock. Stock is blank for a variant with no current stock record, such as one deleted from Shopify or added since the last hourly inventory sync. Orders from before the product had variants appear as Variant not recorded.
  • Bought with. The other products most often in the same orders, as a share of this product’s orders.
  • Recent orders. The latest 10 orders with this product in the date range, with the product variant, quantity and revenue.
  • Pricing and costs. Click to expand the catalog details: SKU, barcode, ASIN, pieces per pack, landed cost and RRPs. Cost fields show on plans that include product costs.

Items listed at a price of 0 (free bundle add-ons, replacement products) are not counted as units sold; the page says how many there were. A Shopify bundle’s sales count under the bundle, not under the products inside it.

Date range

The date picker in the toolbar controls the window used for all metric columns. Catalog columns (SKU, Brand, pricing, dimensions) are unaffected — they’re always current.

Default range is the last 30 days.

Sorting

Click any column header to sort by it; click again to reverse. The list opens sorted by revenue, highest first. Metric columns sort numerically and text columns alphabetically. Rows with no value (no orders in the date range, say) always sort to the bottom, so the top of the list is always actionable.

Searching

The search box at the top of the products table narrows the list as you type. It matches product name, SKU, brand, and ASIN, and every word you type must match, so “mineral eu” finds the EU mineral products. Click a product’s name to open its product page.

Channels

Products synced from Shopify show a lime-green shopify badge. Products uploaded manually (Amazon-only products, for example) show a different badge. The Channel column is off by default — enable it in the Columns picker if you need it visible.

When a product doesn’t appear

  • Newly added in Shopify? Sync happens via webhook on product create/update — usually within a minute.
  • Inventory-only updates (from ShipBob or similar) don’t trigger product creation — they only update existing products’ stock.
  • If a product is missing more than a few minutes after creation in Shopify, check the sync status badge on Settings → Integrations → Shopify. If it’s red, the access token may have expired.

Offer Calculator

On the Advanced plan, each product row ends with a calculator icon (tooltip Offer calculator), and each product’s detail page has an Offer calculator button. Either one opens the Offer Calculator with that product already selected, so you can model the ROI of a discount on it — given the product’s cost, your shipping cost, and how often customers buy again.

See Offer calculator for the full walkthrough.

Did this answer your question?

Thanks for your feedback! 🙌

Related articles