Download OpenAPI specification:Download
The service provides capabilities to interact with the inventory data inside of BEAUTY_OS Core in MongoDB. This service manages products, categories, brands, distributors, orders, and sales analytics.
Create a new order
| salonId required | string |
| name required | string |
| distributorId | string |
| distributorName | string |
required | Array of objects (CreateOrderItemRequest) |
| notes | string |
| expectedDeliveryDate | string |
{- "name": "string",
- "distributorId": "string",
- "distributorName": "string",
- "items": [
- {
- "productId": "string",
- "quantity": 0.1
}
], - "notes": "string",
- "expectedDeliveryDate": "string"
}{- "id": "string",
- "name": "string",
- "salonId": "string",
- "status": "draft",
- "distributorId": "string",
- "distributorName": "string",
- "items": [
- {
- "id": "string",
- "productId": "string",
- "quantity": 0.1,
- "productName": "string",
- "productImage": "string",
- "productPrice": 0.1
}
], - "notes": "string",
- "expectedDeliveryDate": "string",
- "deliveredDate": "string",
- "totalItems": 0.1,
- "totalCost": 0.1,
- "createdAt": "string",
- "updatedAt": "string"
}Get all orders for a salon with filters
| salonId required | string |
| status | string (OrderStatus) Enum: "draft" "sent" "delivered" "cancelled" |
| distributorId | string |
| page | number <double> |
| limit | number <double> |
{- "orders": [
- {
- "id": "string",
- "name": "string",
- "salonId": "string",
- "status": "draft",
- "distributorId": "string",
- "distributorName": "string",
- "items": [
- {
- "id": "string",
- "productId": "string",
- "quantity": 0.1,
- "productName": "string",
- "productImage": "string",
- "productPrice": 0.1
}
], - "notes": "string",
- "expectedDeliveryDate": "string",
- "deliveredDate": "string",
- "totalItems": 0.1,
- "totalCost": 0.1,
- "createdAt": "string",
- "updatedAt": "string"
}
], - "total": 0.1,
- "page": 0.1,
- "limit": 0.1,
- "totalPages": 0.1
}Get an order by ID
| orderId required | string |
| salonId required | string |
{- "id": "string",
- "name": "string",
- "salonId": "string",
- "status": "draft",
- "distributorId": "string",
- "distributorName": "string",
- "items": [
- {
- "id": "string",
- "productId": "string",
- "quantity": 0.1,
- "productName": "string",
- "productImage": "string",
- "productPrice": 0.1
}
], - "notes": "string",
- "expectedDeliveryDate": "string",
- "deliveredDate": "string",
- "totalItems": 0.1,
- "totalCost": 0.1,
- "createdAt": "string",
- "updatedAt": "string"
}Update an order
| orderId required | string |
| salonId required | string |
| name | string |
| distributorId | string |
| distributorName | string |
Array of objects (UpdateOrderItemRequest) | |
| notes | string |
| expectedDeliveryDate | string |
{- "name": "string",
- "distributorId": "string",
- "distributorName": "string",
- "items": [
- {
- "id": "string",
- "productId": "string",
- "quantity": 0.1
}
], - "notes": "string",
- "expectedDeliveryDate": "string"
}{- "id": "string",
- "name": "string",
- "salonId": "string",
- "status": "draft",
- "distributorId": "string",
- "distributorName": "string",
- "items": [
- {
- "id": "string",
- "productId": "string",
- "quantity": 0.1,
- "productName": "string",
- "productImage": "string",
- "productPrice": 0.1
}
], - "notes": "string",
- "expectedDeliveryDate": "string",
- "deliveredDate": "string",
- "totalItems": 0.1,
- "totalCost": 0.1,
- "createdAt": "string",
- "updatedAt": "string"
}Update order status
| orderId required | string |
| salonId required | string |
| status required | string (OrderStatus) Enum: "draft" "sent" "delivered" "cancelled" |
{- "status": "draft"
}{- "id": "string",
- "name": "string",
- "salonId": "string",
- "status": "draft",
- "distributorId": "string",
- "distributorName": "string",
- "items": [
- {
- "id": "string",
- "productId": "string",
- "quantity": 0.1,
- "productName": "string",
- "productImage": "string",
- "productPrice": 0.1
}
], - "notes": "string",
- "expectedDeliveryDate": "string",
- "deliveredDate": "string",
- "totalItems": 0.1,
- "totalCost": 0.1,
- "createdAt": "string",
- "updatedAt": "string"
}Mark order as delivered and update product stock
| orderId required | string |
| salonId required | string |
{- "order": {
- "id": "string",
- "name": "string",
- "salonId": "string",
- "status": "draft",
- "distributorId": "string",
- "distributorName": "string",
- "items": [
- {
- "id": "string",
- "productId": "string",
- "quantity": 0.1,
- "productName": "string",
- "productImage": "string",
- "productPrice": 0.1
}
], - "notes": "string",
- "expectedDeliveryDate": "string",
- "deliveredDate": "string",
- "totalItems": 0.1,
- "totalCost": 0.1,
- "createdAt": "string",
- "updatedAt": "string"
}, - "message": "string"
}Add an item to an order
| orderId required | string |
| salonId required | string |
| productId required | string |
| quantity required | number <double> |
{- "productId": "string",
- "quantity": 0.1
}{- "id": "string",
- "name": "string",
- "salonId": "string",
- "status": "draft",
- "distributorId": "string",
- "distributorName": "string",
- "items": [
- {
- "id": "string",
- "productId": "string",
- "quantity": 0.1,
- "productName": "string",
- "productImage": "string",
- "productPrice": 0.1
}
], - "notes": "string",
- "expectedDeliveryDate": "string",
- "deliveredDate": "string",
- "totalItems": 0.1,
- "totalCost": 0.1,
- "createdAt": "string",
- "updatedAt": "string"
}Update order item quantity
| orderId required | string |
| itemId required | string |
| salonId required | string |
| quantity required | number <double> |
{- "quantity": 0.1
}{- "id": "string",
- "name": "string",
- "salonId": "string",
- "status": "draft",
- "distributorId": "string",
- "distributorName": "string",
- "items": [
- {
- "id": "string",
- "productId": "string",
- "quantity": 0.1,
- "productName": "string",
- "productImage": "string",
- "productPrice": 0.1
}
], - "notes": "string",
- "expectedDeliveryDate": "string",
- "deliveredDate": "string",
- "totalItems": 0.1,
- "totalCost": 0.1,
- "createdAt": "string",
- "updatedAt": "string"
}Remove an item from an order
| orderId required | string |
| itemId required | string |
| salonId required | string |
{- "id": "string",
- "name": "string",
- "salonId": "string",
- "status": "draft",
- "distributorId": "string",
- "distributorName": "string",
- "items": [
- {
- "id": "string",
- "productId": "string",
- "quantity": 0.1,
- "productName": "string",
- "productImage": "string",
- "productPrice": 0.1
}
], - "notes": "string",
- "expectedDeliveryDate": "string",
- "deliveredDate": "string",
- "totalItems": 0.1,
- "totalCost": 0.1,
- "createdAt": "string",
- "updatedAt": "string"
}Create a new product brand
| salonId required | string |
| name required | string |
| description | string |
| website | string |
{- "name": "string",
- "description": "string",
- "website": "string"
}{- "id": "string",
- "name": "string",
- "salonId": "string",
- "description": "string",
- "website": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Get all product brands for a salon
| salonId required | string |
{- "brands": [
- {
- "id": "string",
- "name": "string",
- "salonId": "string",
- "description": "string",
- "website": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
], - "total": 0.1
}Get a product brand by ID
| brandId required | string |
| salonId required | string |
{- "id": "string",
- "name": "string",
- "salonId": "string",
- "description": "string",
- "website": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Update a product brand
| brandId required | string |
| salonId required | string |
| name | string |
| description | string |
| website | string |
{- "name": "string",
- "description": "string",
- "website": "string"
}{- "id": "string",
- "name": "string",
- "salonId": "string",
- "description": "string",
- "website": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Create a new product category
| salonId required | string |
| name required | string |
| categoryType | string Enum: "hair" "nails" "skin" "styling_tools" "consumables" "equipment" |
| color | string |
| description | string |
{- "name": "string",
- "categoryType": "hair",
- "color": "string",
- "description": "string"
}{- "id": "string",
- "name": "string",
- "salonId": "string",
- "categoryType": "hair",
- "color": "string",
- "description": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Get all product categories for a salon
| salonId required | string |
{- "categories": [
- {
- "id": "string",
- "name": "string",
- "salonId": "string",
- "categoryType": "hair",
- "color": "string",
- "description": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
], - "total": 0.1
}Get a product category by ID
| categoryId required | string |
| salonId required | string |
{- "id": "string",
- "name": "string",
- "salonId": "string",
- "categoryType": "hair",
- "color": "string",
- "description": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Update a product category
| categoryId required | string |
| salonId required | string |
| name | string |
| categoryType | string Enum: "hair" "nails" "skin" "styling_tools" "consumables" "equipment" |
| color | string |
| description | string |
{- "name": "string",
- "categoryType": "hair",
- "color": "string",
- "description": "string"
}{- "id": "string",
- "name": "string",
- "salonId": "string",
- "categoryType": "hair",
- "color": "string",
- "description": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Create a new product distributor
| salonId required | string |
| name required | string |
string | |
| phoneNumber | string |
| website | string |
object (DistributorAddress) | |
| secondaryPhoneNumber | string |
| secondaryEmailAddress | string |
| secondaryFax | string |
| notes | string |
{- "name": "string",
- "email": "string",
- "phoneNumber": "string",
- "website": "string",
- "address": {
- "street": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "country": "string"
}, - "secondaryPhoneNumber": "string",
- "secondaryEmailAddress": "string",
- "secondaryFax": "string",
- "notes": "string"
}{- "id": "string",
- "name": "string",
- "salonId": "string",
- "email": "string",
- "phoneNumber": "string",
- "website": "string",
- "address": {
- "street": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "country": "string"
}, - "secondaryPhoneNumber": "string",
- "secondaryEmailAddress": "string",
- "secondaryFax": "string",
- "notes": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Get all product distributors for a salon
| salonId required | string |
{- "distributors": [
- {
- "id": "string",
- "name": "string",
- "salonId": "string",
- "email": "string",
- "phoneNumber": "string",
- "website": "string",
- "address": {
- "street": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "country": "string"
}, - "secondaryPhoneNumber": "string",
- "secondaryEmailAddress": "string",
- "secondaryFax": "string",
- "notes": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
], - "total": 0.1
}Get a product distributor by ID
| distributorId required | string |
| salonId required | string |
{- "id": "string",
- "name": "string",
- "salonId": "string",
- "email": "string",
- "phoneNumber": "string",
- "website": "string",
- "address": {
- "street": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "country": "string"
}, - "secondaryPhoneNumber": "string",
- "secondaryEmailAddress": "string",
- "secondaryFax": "string",
- "notes": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Update a product distributor
| distributorId required | string |
| salonId required | string |
| name | string |
string | |
| phoneNumber | string |
| website | string |
object (DistributorAddress) | |
| secondaryPhoneNumber | string |
| secondaryEmailAddress | string |
| secondaryFax | string |
| notes | string |
{- "name": "string",
- "email": "string",
- "phoneNumber": "string",
- "website": "string",
- "address": {
- "street": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "country": "string"
}, - "secondaryPhoneNumber": "string",
- "secondaryEmailAddress": "string",
- "secondaryFax": "string",
- "notes": "string"
}{- "id": "string",
- "name": "string",
- "salonId": "string",
- "email": "string",
- "phoneNumber": "string",
- "website": "string",
- "address": {
- "street": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "country": "string"
}, - "secondaryPhoneNumber": "string",
- "secondaryEmailAddress": "string",
- "secondaryFax": "string",
- "notes": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Create a new product sale
| salonId required | string |
| productId | string |
| transactionId required | string |
| productName required | string |
| brandName | string |
| imageUrl | string |
| quantity required | number <double> |
| unitPrice required | number <double> |
| discountAmount | number <double> |
| tipAmount | number <double> |
| totalBusinessCost required | number <double> |
| netSales required | number <double> |
| netProfit required | number <double> |
| netProfitMargin required | number <double> |
| checkoutDate required | string |
| checkoutBy required | string |
| soldBy required | string |
| customerName required | string |
| customerId | string |
| appointmentId | string |
| appointmentDate | string |
| pointsRedeemed | number <double> |
| amountPaid required | number <double> |
| shippingHandling | number <double> |
| cashAmount | number <double> |
| checkAmount | number <double> |
| giftCardAmount | number <double> |
| packageAmount | number <double> |
| membershipsAmount | number <double> |
| creditCardAmount | number <double> |
| bankAccountAmount | number <double> |
| buyNowPayLaterAmount | number <double> |
| iouInvoiceAmount | number <double> |
| netSaleAmount required | number <double> |
| changeDueAmount | number <double> |
| merchantAccount | string |
{- "productId": "string",
- "transactionId": "string",
- "productName": "string",
- "brandName": "string",
- "imageUrl": "string",
- "quantity": 0.1,
- "unitPrice": 0.1,
- "discountAmount": 0.1,
- "tipAmount": 0.1,
- "totalBusinessCost": 0.1,
- "netSales": 0.1,
- "netProfit": 0.1,
- "netProfitMargin": 0.1,
- "checkoutDate": "string",
- "checkoutBy": "string",
- "soldBy": "string",
- "customerName": "string",
- "customerId": "string",
- "appointmentId": "string",
- "appointmentDate": "string",
- "pointsRedeemed": 0.1,
- "amountPaid": 0.1,
- "shippingHandling": 0.1,
- "cashAmount": 0.1,
- "checkAmount": 0.1,
- "giftCardAmount": 0.1,
- "packageAmount": 0.1,
- "membershipsAmount": 0.1,
- "creditCardAmount": 0.1,
- "bankAccountAmount": 0.1,
- "buyNowPayLaterAmount": 0.1,
- "iouInvoiceAmount": 0.1,
- "netSaleAmount": 0.1,
- "changeDueAmount": 0.1,
- "merchantAccount": "string"
}{- "id": "string",
- "salonId": "string",
- "productId": "string",
- "transactionId": "string",
- "productName": "string",
- "brandName": "string",
- "imageUrl": "string",
- "quantity": 0.1,
- "unitPrice": 0.1,
- "discountAmount": 0.1,
- "tipAmount": 0.1,
- "totalBusinessCost": 0.1,
- "netSales": 0.1,
- "netProfit": 0.1,
- "netProfitMargin": 0.1,
- "checkoutDate": "string",
- "checkoutBy": "string",
- "soldBy": "string",
- "customerName": "string",
- "customerId": "string",
- "appointmentId": "string",
- "appointmentDate": "string",
- "pointsRedeemed": 0.1,
- "amountPaid": 0.1,
- "shippingHandling": 0.1,
- "cashAmount": 0.1,
- "checkAmount": 0.1,
- "giftCardAmount": 0.1,
- "packageAmount": 0.1,
- "membershipsAmount": 0.1,
- "creditCardAmount": 0.1,
- "bankAccountAmount": 0.1,
- "buyNowPayLaterAmount": 0.1,
- "iouInvoiceAmount": 0.1,
- "netSaleAmount": 0.1,
- "changeDueAmount": 0.1,
- "merchantAccount": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Get all product sales for a salon with filters
| salonId required | string |
| dateRange | string (SalesDateRange) Enum: "today" "yesterday" "last_7_days" "last_30_days" "this_month" "last_month" "this_year" "last_year" "all_time" "custom" |
| startDate | string |
| endDate | string |
| viewMode | string (SalesViewMode) Enum: "brand" "product" |
| sortBy | string (SalesSortBy) Enum: "amount_sold_desc" "amount_sold_asc" "quantity_desc" "quantity_asc" "price_desc" "price_asc" |
| productId | string |
| brandName | string |
| page | number <double> |
| limit | number <double> |
{- "sales": [
- {
- "id": "string",
- "salonId": "string",
- "productId": "string",
- "transactionId": "string",
- "productName": "string",
- "brandName": "string",
- "imageUrl": "string",
- "quantity": 0.1,
- "unitPrice": 0.1,
- "discountAmount": 0.1,
- "tipAmount": 0.1,
- "totalBusinessCost": 0.1,
- "netSales": 0.1,
- "netProfit": 0.1,
- "netProfitMargin": 0.1,
- "checkoutDate": "string",
- "checkoutBy": "string",
- "soldBy": "string",
- "customerName": "string",
- "customerId": "string",
- "appointmentId": "string",
- "appointmentDate": "string",
- "pointsRedeemed": 0.1,
- "amountPaid": 0.1,
- "shippingHandling": 0.1,
- "cashAmount": 0.1,
- "checkAmount": 0.1,
- "giftCardAmount": 0.1,
- "packageAmount": 0.1,
- "membershipsAmount": 0.1,
- "creditCardAmount": 0.1,
- "bankAccountAmount": 0.1,
- "buyNowPayLaterAmount": 0.1,
- "iouInvoiceAmount": 0.1,
- "netSaleAmount": 0.1,
- "changeDueAmount": 0.1,
- "merchantAccount": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
], - "total": 0.1,
- "page": 0.1,
- "limit": 0.1,
- "totalPages": 0.1
}Get aggregated sales by product
| salonId required | string |
| dateRange | string (SalesDateRange) Enum: "today" "yesterday" "last_7_days" "last_30_days" "this_month" "last_month" "this_year" "last_year" "all_time" "custom" |
| startDate | string |
| endDate | string |
{- "sales": [
- {
- "id": "string",
- "productId": "string",
- "productName": "string",
- "brandName": "string",
- "imageUrl": "string",
- "quantity": 0.1,
- "totalBusinessCost": 0.1,
- "netSales": 0.1,
- "netProfit": 0.1,
- "netProfitMargin": 0.1,
- "pointsRedeemed": 0.1
}
], - "total": 0.1
}Get aggregated sales by brand
| salonId required | string |
| dateRange | string (SalesDateRange) Enum: "today" "yesterday" "last_7_days" "last_30_days" "this_month" "last_month" "this_year" "last_year" "all_time" "custom" |
| startDate | string |
| endDate | string |
{- "sales": [
- {
- "id": "string",
- "productId": "string",
- "productName": "string",
- "brandName": "string",
- "imageUrl": "string",
- "quantity": 0.1,
- "totalBusinessCost": 0.1,
- "netSales": 0.1,
- "netProfit": 0.1,
- "netProfitMargin": 0.1,
- "pointsRedeemed": 0.1
}
], - "total": 0.1
}Get a product sale by ID
| saleId required | string |
| salonId required | string |
{- "id": "string",
- "salonId": "string",
- "productId": "string",
- "transactionId": "string",
- "productName": "string",
- "brandName": "string",
- "imageUrl": "string",
- "quantity": 0.1,
- "unitPrice": 0.1,
- "discountAmount": 0.1,
- "tipAmount": 0.1,
- "totalBusinessCost": 0.1,
- "netSales": 0.1,
- "netProfit": 0.1,
- "netProfitMargin": 0.1,
- "checkoutDate": "string",
- "checkoutBy": "string",
- "soldBy": "string",
- "customerName": "string",
- "customerId": "string",
- "appointmentId": "string",
- "appointmentDate": "string",
- "pointsRedeemed": 0.1,
- "amountPaid": 0.1,
- "shippingHandling": 0.1,
- "cashAmount": 0.1,
- "checkAmount": 0.1,
- "giftCardAmount": 0.1,
- "packageAmount": 0.1,
- "membershipsAmount": 0.1,
- "creditCardAmount": 0.1,
- "bankAccountAmount": 0.1,
- "buyNowPayLaterAmount": 0.1,
- "iouInvoiceAmount": 0.1,
- "netSaleAmount": 0.1,
- "changeDueAmount": 0.1,
- "merchantAccount": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Create a new product
| salonId required | string |
| name required | string |
| images | Array of strings |
| barcode | string |
| categoryId | string |
| brandId | string |
| distributorId | string |
| purchasePrice required | number <double> |
| retailPrice required | number <double> |
| discountType | string Enum: "percentage" "fixed" |
| discountValue | number <double> |
| taxRate | number <double> |
| stockCount | number <double> |
| desiredStockLevel | number <double> |
| isActive | boolean |
| isVisible | boolean |
| description | string |
| sku | string |
{- "name": "string",
- "images": [
- "string"
], - "barcode": "string",
- "categoryId": "string",
- "brandId": "string",
- "distributorId": "string",
- "purchasePrice": 0.1,
- "retailPrice": 0.1,
- "discountType": "percentage",
- "discountValue": 0.1,
- "taxRate": 0.1,
- "stockCount": 0.1,
- "desiredStockLevel": 0.1,
- "isActive": true,
- "isVisible": true,
- "description": "string",
- "sku": "string"
}{- "id": "string",
- "name": "string",
- "salonId": "string",
- "images": [
- "string"
], - "barcode": "string",
- "categoryId": "string",
- "brandId": "string",
- "distributorId": "string",
- "purchasePrice": 0.1,
- "retailPrice": 0.1,
- "discountType": "percentage",
- "discountValue": 0.1,
- "taxRate": 0.1,
- "stockCount": 0.1,
- "desiredStockLevel": 0.1,
- "isActive": true,
- "isVisible": true,
- "description": "string",
- "sku": "string",
- "effectivePrice": 0.1,
- "isOutOfStock": true,
- "needsReorder": true,
- "createdAt": "string",
- "updatedAt": "string"
}Get all products for a salon with filters
| salonId required | string |
| status | string (ProductFilterStatus) Enum: "all" "in_stock" "out_of_stock" "low_stock" |
| categoryId | string |
| brandId | string |
| distributorId | string |
| sortBy | string (ProductSortBy) Enum: "name" "stock_asc" "stock_desc" "date" "price" |
| searchQuery | string |
| needToOrder | boolean |
| page | number <double> |
| limit | number <double> |
{- "products": [
- {
- "id": "string",
- "name": "string",
- "salonId": "string",
- "images": [
- "string"
], - "barcode": "string",
- "categoryId": "string",
- "brandId": "string",
- "distributorId": "string",
- "purchasePrice": 0.1,
- "retailPrice": 0.1,
- "discountType": "percentage",
- "discountValue": 0.1,
- "taxRate": 0.1,
- "stockCount": 0.1,
- "desiredStockLevel": 0.1,
- "isActive": true,
- "isVisible": true,
- "description": "string",
- "sku": "string",
- "effectivePrice": 0.1,
- "isOutOfStock": true,
- "needsReorder": true,
- "createdAt": "string",
- "updatedAt": "string"
}
], - "total": 0.1,
- "page": 0.1,
- "limit": 0.1,
- "totalPages": 0.1
}Search for a product by barcode
| barcode required | string |
| salonId required | string |
{- "product": {
- "id": "string",
- "name": "string",
- "salonId": "string",
- "images": [
- "string"
], - "barcode": "string",
- "categoryId": "string",
- "brandId": "string",
- "distributorId": "string",
- "purchasePrice": 0.1,
- "retailPrice": 0.1,
- "discountType": "percentage",
- "discountValue": 0.1,
- "taxRate": 0.1,
- "stockCount": 0.1,
- "desiredStockLevel": 0.1,
- "isActive": true,
- "isVisible": true,
- "description": "string",
- "sku": "string",
- "effectivePrice": 0.1,
- "isOutOfStock": true,
- "needsReorder": true,
- "createdAt": "string",
- "updatedAt": "string"
}
}Get a product by ID
| productId required | string |
| salonId required | string |
{- "id": "string",
- "name": "string",
- "salonId": "string",
- "images": [
- "string"
], - "barcode": "string",
- "categoryId": "string",
- "brandId": "string",
- "distributorId": "string",
- "purchasePrice": 0.1,
- "retailPrice": 0.1,
- "discountType": "percentage",
- "discountValue": 0.1,
- "taxRate": 0.1,
- "stockCount": 0.1,
- "desiredStockLevel": 0.1,
- "isActive": true,
- "isVisible": true,
- "description": "string",
- "sku": "string",
- "effectivePrice": 0.1,
- "isOutOfStock": true,
- "needsReorder": true,
- "createdAt": "string",
- "updatedAt": "string"
}Update a product
| productId required | string |
| salonId required | string |
| name | string |
| images | Array of strings |
| barcode | string |
| categoryId | string |
| brandId | string |
| distributorId | string |
| purchasePrice | number <double> |
| retailPrice | number <double> |
| discountType | string Enum: "percentage" "fixed" |
| discountValue | number <double> |
| taxRate | number <double> |
| stockCount | number <double> |
| desiredStockLevel | number <double> |
| isActive | boolean |
| isVisible | boolean |
| description | string |
| sku | string |
{- "name": "string",
- "images": [
- "string"
], - "barcode": "string",
- "categoryId": "string",
- "brandId": "string",
- "distributorId": "string",
- "purchasePrice": 0.1,
- "retailPrice": 0.1,
- "discountType": "percentage",
- "discountValue": 0.1,
- "taxRate": 0.1,
- "stockCount": 0.1,
- "desiredStockLevel": 0.1,
- "isActive": true,
- "isVisible": true,
- "description": "string",
- "sku": "string"
}{- "id": "string",
- "name": "string",
- "salonId": "string",
- "images": [
- "string"
], - "barcode": "string",
- "categoryId": "string",
- "brandId": "string",
- "distributorId": "string",
- "purchasePrice": 0.1,
- "retailPrice": 0.1,
- "discountType": "percentage",
- "discountValue": 0.1,
- "taxRate": 0.1,
- "stockCount": 0.1,
- "desiredStockLevel": 0.1,
- "isActive": true,
- "isVisible": true,
- "description": "string",
- "sku": "string",
- "effectivePrice": 0.1,
- "isOutOfStock": true,
- "needsReorder": true,
- "createdAt": "string",
- "updatedAt": "string"
}Update product stock count
| productId required | string |
| salonId required | string |
| stockCount | number <double> |
| desiredStockLevel | number <double> |
{- "stockCount": 0.1,
- "desiredStockLevel": 0.1
}{- "id": "string",
- "name": "string",
- "salonId": "string",
- "images": [
- "string"
], - "barcode": "string",
- "categoryId": "string",
- "brandId": "string",
- "distributorId": "string",
- "purchasePrice": 0.1,
- "retailPrice": 0.1,
- "discountType": "percentage",
- "discountValue": 0.1,
- "taxRate": 0.1,
- "stockCount": 0.1,
- "desiredStockLevel": 0.1,
- "isActive": true,
- "isVisible": true,
- "description": "string",
- "sku": "string",
- "effectivePrice": 0.1,
- "isOutOfStock": true,
- "needsReorder": true,
- "createdAt": "string",
- "updatedAt": "string"
}