← Back to Docs

Products

Overview

The Products page is the main product catalog with filtering, pagination, and sync status management. It shows all products synced from Shopify with their current stock status.

Product List Columns

ColumnDescription
ProductProduct name with variant count badge (e.g., "Aerodynamic Mesh Runner (3 variants)")
Primary SupplierPrimary supplier name with cost and lead time
Total StockSum of quantity_available across all variants
StatusWorst status across all variants (Healthy / Low / Critical / Stockout)
ActionsSync toggle, view product detail

Filters

FilterOptionsDescription
StatusAll / Healthy / Low / Critical / StockoutFilter by worst variant status
Sync StatusAll / Synced / UnsyncedSynced = has inventory snapshot; Unsynced = no snapshot or do_not_sync = 1
SupplierDropdown of all suppliersChecks all 3 supplier slots (primary, 2nd, 3rd)
SearchText inputSearch by product name or SKU (debounced 300ms)

Pagination

Load More

Shows 20 products per page at the product-group level (not SKU level). Click "Load More" to load the next 20 products.

Sync Status Toggle

IconStateBehavior
🔗SyncedProduct is included in sync and calculations
⛓️‍💥Not SyncedProduct is excluded from sync, calculations, and inventory push

Click the toggle to switch between synced/unsynced. Unsynced products show "N/A" for inventory values.

Expandable Rows

SKU Details

Click the "+" icon to expand a product row and see all its variants:

Navigation Behavior

ActionFilter Behavior
Click top nav Products tabClears all filters
Click breadcrumb from Product DetailClears all filters
Dashboard pie chart clickClears other filters, applies status only
Dashboard stat card clickClears all filters
Browser back buttonPreserves previous filter state
Page refreshRestores from URL hash or localStorage

API Endpoints

EndpointMethodDescription
/api/productsGETList products (paginated, filterable by status/supplier/sync/search)
/api/products/{id}GETSingle product with variants and suppliers
/api/products/{id}PUTUpdate product (do_not_sync flag)
/api/products/{id}/toggle-syncPOSTToggle sync status
/api/products/syncPOSTTrigger product sync from Shopify
/api/products/{id}/sales-chartGET14-day sales data for product
/api/products/{id}/recent-ordersGETOrders containing this product
Not Synced Filter: Shows products that either have do_not_sync = 1 or have no inventory snapshot (products without inventory tracking enabled in Shopify).