ComponentsAdmin & TeamAdmin Product Manager

Admin & Team

Admin Product Manager

Admin/owner product management UI for retail and e-commerce apps. Manage products in one internal screen with full CRUD, stock counts, color/style variants with their own photos, sizes, and image upload. Deliberately separate from Admin Menu Manager (restaurant dishes/combos) — no allergens, spice level, prep time, or combos. Intended for runtime admin/owner users, not basic end users.

AccessAdmin/owner runtime focus

Uses requireAdmin (default true) for runtime gating; builder canvas shows a placeholder.

Stock modelAbsolute count, set here

Order-time decrement happens server-side in the orders API, not in this screen.

TierFree

Available on all plans.

What it does

Four things worth knowing

Full product CRUD

Title, description, price, category, tags, badge, image, and stock — all editable in one modal, persisted to AWS via the products API.

Variants need their own photos

Each color/style option gets its own uploaded photo — colors can’t be simulated from one image. Price and stock stay shared across all options.

Stock is an absolute count

The stock field here sets the number outright; it’s reduced automatically as real orders come in through the backend’s atomic order write.

Sample product seeding

Empty catalogs can be seeded with 8 sample products (apparel, footwear, accessories, home goods) as real, editable starting content.

Builder setup

Find it, drop it, publish

Where to find itAdd it to your admin screen

  1. Component picker → Admin & TeamAdmin Product Manager.
  2. Place it on an internal admin/owner screen.
  3. Use registry key admin-product-manager for builder placement.

Before you publishFour things to check

  1. Keep the navigation flow admin-only as an extra access layer.
  2. Add your real products, or seed samples and edit them, before launch.
  3. Keep backend wiring available (appId + secureApiCall) for live CRUD and image upload.
  4. Publish so runtime gating and live product data flow are active in AppPlayer.
Category: Admin & TeamComponent: BuilderAdminProductManagerRegistry key: admin-product-managerTier: Free
Props

Access, data, and safe editable fields

GroupPropDefaultWhat it controls
AccessrequireAdmin, isAdminUsertrue, runtimeRuntime admin gating and non-admin access denied state.
DataappId, secureApiCall, _prefetchedProductsRuntime injectedLive backend CRUD and fast prefetched hydration.
LabelsheaderTitle, addProductLabel, emptyStateTitle, emptyStateSubtitle, seedProductsLabelComponent defaultsEditable UI copy for header, actions, and empty states.
FeaturesshowProductToggle, showProductDescription, showProductStock, showProductBadge, showProductImage, showProductCategorytrueToggles visible fields in list cards and the editor modal.
RuntimecustomWidth, customHeightRuntime injectedBuilder and AppPlayer display context values.
Toggles & colours

Make it yours

All labels, feature visibility, and visual tokens below are safe to edit from Builder without changing core data flow.

PropDefaultWhat it controls
showProductStocktrueShows stock count and low/out-of-stock indicators on cards.
showProductToggle, showProductDescription, showProductBadge, showProductImage, showProductCategorytrueProduct field visibility in cards and the editor modal.
primaryColor, secondaryColor, dangerColor, successColor, warningColorBrand defaultsAction, badge, and stock-state colors.
backgroundColor, cardBackgroundColor, borderColorBrand defaultsSurface and border styling.
titleColor, subtitleColor, headerColorBrand defaultsText hierarchy styling.
borderRadius, fontFamily14, Urbanist-SemiBoldShape and typography.
Tips

Common mistakes to avoid

Keep access admin-only at navigation level

Use protected navigation even when requireAdmin is enabled for clearer runtime separation.

Don’t skip variant photos

A variant without its own photo falls back to a two-letter placeholder chip — always upload a real photo per color/style before publishing.

Stock here is absolute, not incremental

Editing stock in this screen sets the count outright; it doesn’t add or subtract. Order-time decrements happen automatically elsewhere.

Invalidate product data after mutations

After successful create/update/delete operations, builderData.invalidate(‘products’) keeps Product Card and other widgets in sync.