Appearance
Products
Product management is handled through the Dashboard. Admins have full CRUD; Sellers have limited update access.
List Products
GET/products🔒 Session — can viewAny
Paginated list of products with filtering.
Returns different data sets depending on role:
- Admin: Full product data via
IndexProductCollection - Seller: Client-scoped data via
ClientIndexProductCollection
Supports filtering via ProductQueryFilterService.
Create Product
POST/products/store🔒 Session — can create
Create a new product.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Product name (1–60 chars) |
description | string | Yes | Description (1–10,000 chars) |
sku | string | Yes | Unique SKU (1–100 chars) |
status | string | Yes | Product status (enum value) |
price | number | Yes | Selling price (1–99,999) |
purchase_price | number | Yes | Purchase/cost price (1–99,999) |
category_id | string | No | Category ID |
variants | array | No | Product variants |
variants.type | string | No | colors or sizes |
variants.name | string | No | Variant name (1–100 chars) |
weight | number | No | Weight in grams (1–9,999) |
width | number | No | Width in cm (1–9,999) |
height | number | No | Height in cm (1–9,999) |
length | number | No | Length in cm (1–9,999) |
has_discount | boolean | Yes | Whether product has a discount |
discount | number | Conditional | Discount amount (required if has_discount is true, must be less than price) |
image | file | No | Product image (max 1 MB) |
free_shipping | boolean | Yes | Whether shipping is free |
paid_by_seller | boolean | Yes | Whether paid by seller |
INFO
Super Admin users must also provide account_id to assign the product to a specific account.
Show Product
GET/products/{product}/show🔒 Session — can view
View product details. Purchase price is hidden for unauthorized users.
Update Product
PATCH/products/{product}/update🔒 Session — can update
Update product details. Different fields are available based on role.
Admin/Manager fields: name, description, sku, status, purchase_price, price, category_id, paid_by_seller, variants, weight, width, height, length, free_shipping
Seller fields only:
| Field | Type | Required | Description |
|---|---|---|---|
status | string | Yes | Product status |
free_shipping | boolean | Yes | Free shipping flag |
landing_page_url | string | Yes | Landing page URL (must be active, max 300 chars) |
script | string | Yes | Tracking/pixel script (10–536,870,912 chars) |
Update Product Image
PATCH/products/{item}/update-image🔒 Session
Replace the product image.
| Field | Type | Required | Description |
|---|---|---|---|
image | file | Yes | Image file (max 1 MB) |
Delete Products (Bulk)
DELETE/products/delete🔒 Session — can delete
Bulk delete products. Also deletes associated stock records.
| Field | Type | Required | Description |
|---|---|---|---|
ids | array | Yes | Array of product IDs |
Assign Products
Assign to Sellers
POST/products/assign-to-sellers🔒 Session
Reassign products to a different seller account.
| Field | Type | Required | Description |
|---|---|---|---|
ids | array | Yes | Product IDs |
account_id | string | Yes | Target account ID |
Assign to Agents
POST/products/assign-to-agents🔒 Session
Assign products to agents for confirmation workflows.
| Field | Type | Required | Description |
|---|---|---|---|
product_ids | array | Yes | Product IDs |
agent_ids | array | Yes | Agent user IDs |
Search Products
GET/search/products🔒 Session
Search active products for autocomplete.
Returns [{id, text, sku}].
