Skip to content

Products

Source: pharmanet-admin/src/pages/Products/Products.jsx

Tabs

Tab Component Description
All Products ProductList Table with filters, search, pagination
Pending Approval ProductApproval Approve/reject queue
Brands Brands Manufacturer CRUD
Attributes ProductAttributes Variant option management

Redux Slice

Source: pharmanet-admin/src/store/productSlice.js

Action Description
fetchProducts() Product list with filters
fetchPendingProducts() Approval queue
approveProduct(id) Set status to approved
rejectProduct(id, reason) Reject with reason
createProduct(payload) New product
updateProduct(id, payload) Edit product
deleteProduct(id) Delete product
toggleFeatured(id) Toggle featured flag

Service

Source: pharmanet-admin/src/services/products.js

Function Description
getProducts(params) List with filters and subscription filter for mobile
uploadProductImages(files) Upload to Supabase Storage
createProduct(payload) Handles FormData with images
updateProduct(id, payload) Handles FormData with images
approveProduct(id) Approve + send notification to seller
rejectProduct(id, reason) Reject + send notification

Components

Component File Description
ProductList components/products/ProductList.jsx Table with filters, actions
ProductFormModal components/products/ProductFormModal.jsx Create/edit form with image upload
ProductApproval components/products/ProductApproval.jsx Review queue
Brands components/products/Brands.jsx Brand CRUD
ProductAttributes components/products/ProductAttributes.jsx Variant option CRUD
VariantManager components/products/VariantManager.jsx Variant configuration
CombinationsTable components/products/CombinationsTable.jsx SKU-level variant grid

Product Analytics

Route: /products/:id/analytics

Source: pharmanet-admin/src/pages/Products/ProductAnalytics.jsx

Shows: - Product info card - Stats: Revenue, Units Sold, Orders, Avg Order Value - 30-day sales trend chart - Recent orders table for the product