### Start Product Import (POST /api/v1/inventory/import_products) Source: https://context7_llms Initiates a product import from a specified file URL and category ID. The request body must contain the URL and category_id. ```json { "import": { "url": "https://example.com/products.csv", "category_id": "992670be-c998-4169-a62c-63bfe2a4e1a0" } } ``` -------------------------------- ### Get Product Details (GET /api/v1/inventory/products/{id}) Source: https://context7_llms Retrieves detailed information for a specific product, including its inventory stock levels across different shops. The response includes a 'cards' array detailing stock information. ```json { "data": { "id": "f747fbc5-4782-4489-92b4-51691dea1f63", "cards": [ { "id": 10789, "count": "100.0", "counting_enabled": true, "product_id": "f747fbc5-4782-4489-92b4-51691dea1f63", "shop_id": 37933 } ], "category": { "id": "72c1f7f7-751d-4caf-a0c7-5c8b0314a9f2", "title": "Beverages" }, ... } } ``` -------------------------------- ### API Pagination Response Example Source: https://context7_llms Illustrates the structure of the pagination metadata returned by list endpoints. It includes details about the current page, next/previous pages, total pages and count, and pagination limits. ```json { "meta": { "current_page": 1, "next_page": 2, "prev_page": null, "total_pages": 10, "total_count": 245, "limit_value": 25, "offset_value": 0 } } ``` -------------------------------- ### List Products (GET /api/v1/inventory/products) Source: https://context7_llms Retrieves a list of products with support for full-text search, barcode lookup, and filtering by shop, subgroup, and category. Allows pagination with 'page' and 'per_page' parameters. Returns detailed product information. ```json { "data": [ { "id": "6ba87885-a4af-47ac-a31a-50de0d6b93ce", "alter_number": "9909720899", "alter_title": "Short title", "bookmark_ids": [], "category_id": "6718d176-b9d2-42d2-a22d-afb7728f0303", "category_type_id": 7537043, "classifier_code": "123456789012345", "classifier_type_id": 1, "is_free_price": false, "is_without_number": false, "number": "1944840247", "owner_id": 103927, "partner_id": 7706, "partner_title": "Supplier Name", "picture": { "id": "fdd86b0b8767eb6397988ce910253990", "filename": "product.png", "mime_type": "image/png", "size": 8132, "url": "/uploads/store/fdd86b0b8767eb6397988ce910253990" }, "portion_amount": 800, "portion_type_id": 0, "price": "3064.0", "procurement_price": "100.0", "sold_by_weight": false, "stock": {}, "subgroup_id": null, "subgroup_title": null, "tax_amount": {"А": 1520}, "tax_group_id": 1, "title": "Product Name", "unit_type_id": 0, "unit_type_name": null, "user_id": 103928 } ], "meta": {} } ``` -------------------------------- ### List Product Subgroups (GET /api/v1/inventory/product_subgroups) Source: https://context7_llms Retrieves a list of product subgroups. Supports filtering by subgroup ID and title. -------------------------------- ### API Validation Error Response Example (String Format) Source: https://context7_llms Presents an alternative error response format for validation issues, where the error message is provided as a single string, often including class and constraint information. ```json { "errors": "[FormClass.new] \"wrong\" (String) has invalid type for :field_name violates constraints" } ``` -------------------------------- ### Get Daily Product Sales API Endpoint Source: https://context7_llms Retrieves daily sales statistics for products within a specified date range and shop. It provides aggregated sales totals and individual product performance metrics. ```json { "summary": "Get daily product sales statistics.", "parameters": [ { "name": "date_start", "in": "query", "required": false, "schema": { "type": "string" }, "description": "Start date (ISO 8601)" }, { "name": "date_end", "in": "query", "required": false, "schema": { "type": "string" }, "description": "End date (ISO 8601)" }, { "name": "shop_id", "in": "query", "required": false, "schema": { "type": "integer" }, "description": "Shop ID" } ], "responses": { "200": { "description": "Successful response with daily product sales data", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": {"type": "integer"}, "products": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string"}, "category_id": {"type": "string"}, "number": {"type": "string"}, "popularity": {"type": "string"}, "price": {"type": "string"}, "title": {"type": "string"}, "total_amount": {"type": "string"}, "total_count": {"type": "string"}, "unit_type_id": {"type": "integer"} } } }, "total_amount": {"type": "number"}, "total_count": {"type": "number"} } }, "meta": {"type": "object"} } } } } } } } ``` -------------------------------- ### List Inventory Cards (GET /api/v1/inventory/cards) Source: https://context7_llms Retrieves a list of inventory cards, representing stock per shop. Supports filtering by card ID, product ID, shop ID, counting status, and quantity. ```json { "data": [ { "id": 10767, "count": "3.5", "counting_enabled": true, "owner_id": 103881, "product": {}, "product_id": "a327c691-1542-4b65-b8cd-05c51847bcad", "shop": {}, "shop_id": 37916 } ], "meta": {} } ``` -------------------------------- ### List Product Categories (GET /api/v1/inventory/categories) Source: https://context7_llms Retrieves a list of product categories from the inventory. Supports filtering by ID, title, parent ID, color ID, and shop IDs. Returns a JSON object containing category data and metadata. ```json { "data": [ { "id": "72c1f7f7-751d-4caf-a0c7-5c8b0314a9f2", "color_id": 0, "parent_id": null, "partner_id": 7711, "products_count": 15, "shop_ids": [], "title": "Beverages" } ], "meta": {} } ``` -------------------------------- ### Get Payment Transaction by ID Source: https://context7_llms Retrieves a specific payment transaction using its unique identifier. ```APIDOC ## GET /api/v1/pos/payment_transactions/{id} ### Description Get payment transaction by ID. ### Method GET ### Endpoint /api/v1/pos/payment_transactions/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the payment transaction. ### Response #### Success Response (200) - **payment_transaction** (object) - The payment transaction object. - **id** (string) - Transaction ID. - **amount** (string) - Transaction amount. - **approval_code** (string) - Approval code, if applicable. - **change_amount** (string) - Change amount, if applicable. - **deposit_amount** (string) - Deposit amount. - **payment_type_id** (integer) - ID of the payment type. - **receipt_id** (string) - ID of the associated receipt. - **rrn** (string) - Retrieval Reference Number. - **state** (integer) - State of the transaction. - **timestamp** (string) - Timestamp of the transaction. - **transaction_type_id** (integer) - ID of the transaction type. #### Response Example ```json { "payment_transaction": { "id": "7d523a18-e812-43f3-beb5-85a0029f5f86", "amount": "1438.0", "approval_code": null, "change_amount": "0.0", "deposit_amount": "1438.0", "payment_type_id": 0, "receipt_id": "4683e036-598e-44a5-9d89-00a92c9728c9", "rrn": "162Q560ZQ3I174JY431", "state": 1, "timestamp": "2021-07-06T20:26:14.433+00:00", "transaction_type_id": 0 } } ``` ``` -------------------------------- ### Get Receipt by ID Source: https://context7_llms Retrieves a single receipt, including its associated items, using its unique identifier. ```APIDOC ## GET /api/v1/pos/receipts/{id} ### Description Get single receipt with items. ### Method GET ### Endpoint /api/v1/pos/receipts/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the receipt. ### Response #### Success Response (200) - **receipt** (object) - The requested receipt object with its details and items. #### Response Example ```json { "receipt": { "id": "4683e036-598e-44a5-9d89-00a92c9728c9", "cashier_name": "John Doe", "created_at": "2021-07-06T20:26:14.730+00:00", "description": null, "discount_amount": "0.0", "discount_percentage": "0.0", "discount_type_id": 0, "fiscal_number": "16773376", "is_hidden": false, "items": [ { "id": "e3a4acdd-49af-4346-ad9a-8bd4e5860d0d", "amount": "1438.0", "classifier_code": "123", "classifier_type_id": 1, "description": "", "is_free_price": false, "is_product": true, "name": "Алкоголь", "price": "1438.0", "product_id": "f3ba907b-c718-4949-91ee-4dfdfa88d12c", "quantity": "1.0", "receipt_id": "4683e036-598e-44a5-9d89-00a92c9728c9", "sku": null, "sold_by_weight": false, "stock_item_id": 1, "tax_group_id": 6, "unit_type_id": 2009, "unit_type_name": "шт" } ], "payment_transactions": [ { "id": "7d523a18-e812-43f3-beb5-85a0029f5f86", "amount": "1438.0", "approval_code": null, "change_amount": "0.0", "deposit_amount": "1438.0", "payment_type_id": 0, "receipt_id": "4683e036-598e-44a5-9d89-00a92c9728c9", "rrn": "162Q560ZQ3I174JY431", "state": 1, "timestamp": "2021-07-06T20:26:14.433+00:00", "transaction_type_id": 0 } ], "registrar_fiscal_number": "4000026885", "shop_id": 13, "state": 2, "tax_amount": {"А": 22825, "З": 6848}, "terminal_id": null, "title": "", "total_amount": "1438.0", "type": 0 } } ``` ``` -------------------------------- ### Create Product (POST /api/v1/inventory/products) Source: https://context7_llms Creates a new product in the inventory. Requires a JSON request body specifying product details such as number, title, price, category, and tax information. Returns the ID of the newly created product. ```json { "product": { "number": "6930426566", "title": "Premium Coffee Beans 1kg", "unit_type_id": 0, "portion_amount": 800, "portion_type_id": 0, "price": 71.89, "procurement_price": 50.0, "classifier_type_id": 2, "classifier_code": "543210123456789", "tax_group_id": 1, "category_id": "992670be-c998-4169-a62c-63bfe2a4e1a0", "category_type_id": 2201372, "sold_by_weight": false, "bookmark_ids": [], "user_id": 103930, "owner_id": 103929 } } ``` -------------------------------- ### GET /api/v1/stats/product_daily_sales/alter Source: https://context7_llms Retrieves daily sales statistics for products. This endpoint allows filtering by date range and shop. ```APIDOC ## GET /api/v1/stats/product_daily_sales/alter ### Description Get daily product sales statistics. Allows filtering by date range and shop. ### Method GET ### Endpoint /api/v1/stats/product_daily_sales/alter ### Parameters #### Query Parameters - **date_start** (string) - Required - Start date (ISO 8601) - **date_end** (string) - Required - End date (ISO 8601) - **shop_id** (integer) - Optional - Shop ID ### Response #### Success Response (200) - **data** (object) - Daily sales statistics. - **id** (integer) - Sales statistic ID. - **products** (array) - Array of product sales data. - **id** (string) - Product ID (UUID). - **category_id** (string) - Category ID (UUID). - **number** (string) - Product number (barcode). - **popularity** (string) - Product popularity. - **price** (string) - Product price. - **title** (string) - Product title. - **total_amount** (string) - Total amount sold. - **total_count** (string) - Total count sold. - **unit_type_id** (integer) - Unit type ID. - **total_amount** (number) - Overall total amount sold. - **total_count** (number) - Overall total count sold. - **meta** (object) - Metadata about the response. #### Response Example ```json { "data": { "id": 0, "products": [ { "id": "53dc610f-f9c2-4c96-a9bf-663c3fe2f780", "category_id": "c73aeff8-b54a-42be-a498-f3b31d40eb77", "number": "1516986502", "popularity": "100.0", "price": "8677.0", "title": "Product Name", "total_amount": "75.6", "total_count": "1.5", "unit_type_id": 0 } ], "total_amount": 75.6, "total_count": 1.5 }, "meta": {} } ``` ``` -------------------------------- ### Create Product Subgroup (POST /api/v1/inventory/product_subgroups) Source: https://context7_llms Creates a new product subgroup. Requires the subgroup title in the request body. ```json { "subgroup": { "title": "New Subgroup" } } ``` -------------------------------- ### GET /api/v1/reports/z-reports Source: https://context7_llms Retrieves Z-reports, which are daily fiscal closure reports essential for tax compliance. This endpoint allows filtering by date range, shop, terminal, and cashier. ```APIDOC ## GET /api/v1/reports/z-reports ### Description Get Z-reports (daily fiscal closure reports) for tax compliance. Allows filtering by date range, shop, terminal, and cashier. ### Method GET ### Endpoint /api/v1/reports/z-reports ### Parameters #### Query Parameters - **date_start** (string) - Required - Start date (ISO 8601) - **date_end** (string) - Required - End date (ISO 8601) - **shop_id** (integer) - Optional - Shop ID - **terminal_id** (integer) - Optional - Terminal ID - **terminal_user_id** (integer) - Optional - Cashier ID ### Response #### Success Response (200) - **data** (array) - Array of Z-report objects. - **id** (integer) - Report ID. - **cash_amount** (number) - Cash amount. - **cash_receipts_count** (integer) - Number of cash receipts. - **cash_total** (number) - Total cash. - **created_at** (string) - Creation timestamp (ISO 8601). - **fiscal_number** (string) - Fiscal number. - **payload** (object) - Detailed payload of the report. - **refund_cash_total** (number) - Total refunded cash. - **refund_cashless_total** (number) - Total refunded cashless. - **refund_receipts_count** (integer) - Number of refunded receipts. - **refund_total** (number) - Total refund amount. - **registrar_fiscal_number** (string) - Registrar fiscal number. - **sale_cash_total** (number) - Total cash sales. - **sale_cashless_total** (number) - Total cashless sales. - **sale_receipts_count** (integer) - Number of sales receipts. - **sale_total** (number) - Total sales amount. - **service_input** (number) - Service input amount. - **service_output** (number) - Service output amount. - **shift** (object) - Shift details. - **shift_id** (string) - Shift ID. - **shop** (object) - Shop details. - **shop_id** (integer) - Shop ID. - **terminal_id** (integer) - Terminal ID. - **terminal_user_name** (string) - Cashier name. - **turnover_amount** (number) - Turnover amount. - **meta** (object) - Metadata about the response. #### Response Example ```json { "data": [ { "id": 51, "cash_amount": 0, "cash_receipts_count": 4, "cash_total": 12276.25, "created_at": "2021-08-06T13:23:09.020+00:00", "fiscal_number": "7069483", "payload": { "cash": {"total": 12276.25, "commission": 0, "receipts_count": 4}, "cashierName": "Андрій Миколайович Солопчук", "fiscalNumber": "7069483", "registrarFiscalNumber": "4000026885" }, "refund_cash_total": 0, "refund_cashless_total": 0, "refund_receipts_count": 0, "refund_total": 0, "registrar_fiscal_number": "4000026885", "sale_cash_total": 0, "sale_cashless_total": 0, "sale_receipts_count": 0, "sale_total": 0, "service_input": 0, "service_output": 0, "shift": { "id": "55dc9a5e-9308-4bfc-a3b7-382a67667aa9", "cash_balance": "0.99", "opened_by": "John Dow", "state": 0 }, "shift_id": "55dc9a5e-9308-4bfc-a3b7-382a67667aa9", "shop": {...}, "shop_id": 155, "terminal_id": 297, "terminal_user_name": "Щастислав Павленко", "turnover_amount": 0 } ], "meta": {...} } ``` ``` -------------------------------- ### Products API Source: https://context7_llms Endpoints for managing products, including listing, creating, updating, and deleting products. ```APIDOC ## GET /api/v1/inventory/products ### Description List products with search and filtering. ### Method GET ### Endpoint /api/v1/inventory/products ### Parameters #### Query Parameters - **q** (string) - Optional - Full-text search query - **number** (string) - Optional - Barcode - **shop_id** (integer) - Optional - Shop ID - **subgroup_id** (integer) - Optional - Product subgroup ID - **category_id** (string) - Optional - Category ID (UUID) - **page** (string) - Optional - Page number - **per_page** (string) - Optional - Items per page ### Response #### Success Response (200) - **data** (array) - Array of product objects - **id** (string) - Product ID - **alter_number** (string) - Alternate product number - **alter_title** (string) - Alternate product title - **bookmark_ids** (array) - Array of bookmark IDs - **category_id** (string) - Category ID - **category_type_id** (integer) - Category type ID - **classifier_code** (string) - Classifier code - **classifier_type_id** (integer) - Classifier type ID - **is_free_price** (boolean) - Indicates if the price is free - **is_without_number** (boolean) - Indicates if the product is without a number - **number** (string) - Product number (barcode) - **owner_id** (integer) - Owner ID - **partner_id** (integer) - Partner ID - **partner_title** (string) - Partner title - **picture** (object) - Product picture information - **id** (string) - Picture ID - **filename** (string) - Filename - **mime_type** (string) - MIME type - **size** (integer) - Size in bytes - **url** (string) - URL to the picture - **portion_amount** (integer) - Portion amount - **portion_type_id** (integer) - Portion type ID - **price** (string) - Product price - **procurement_price** (string) - Procurement price - **sold_by_weight** (boolean) - Indicates if sold by weight - **stock** (object) - Stock information - **subgroup_id** (integer) - Subgroup ID - **subgroup_title** (string) - Subgroup title - **tax_amount** (object) - Tax amount details - **tax_group_id** (integer) - Tax group ID - **title** (string) - Product title - **unit_type_id** (integer) - Unit type ID - **unit_type_name** (string) - Unit type name - **user_id** (integer) - User ID - **meta** (object) - Metadata about the response #### Response Example ```json { "data": [ { "id": "6ba87885-a4af-47ac-a31a-50de0d6b93ce", "alter_number": "9909720899", "alter_title": "Short title", "bookmark_ids": [], "category_id": "6718d176-b9d2-42d2-a22d-afb7728f0303", "category_type_id": 7537043, "classifier_code": "123456789012345", "classifier_type_id": 1, "is_free_price": false, "is_without_number": false, "number": "1944840247", "owner_id": 103927, "partner_id": 7706, "partner_title": "Supplier Name", "picture": { "id": "fdd86b0b8767eb6397988ce910253990", "filename": "product.png", "mime_type": "image/png", "size": 8132, "url": "/uploads/store/fdd86b0b8767eb6397988ce910253990" }, "portion_amount": 800, "portion_type_id": 0, "price": "3064.0", "procurement_price": "100.0", "sold_by_weight": false, "stock": {}, "subgroup_id": null, "subgroup_title": null, "tax_amount": {"А": 1520}, "tax_group_id": 1, "title": "Product Name", "unit_type_id": 0, "unit_type_name": null, "user_id": 103928 } ], "meta": {} } ``` --- ## GET /api/v1/inventory/products/{id} ### Description Get product details with inventory cards. Response includes `cards` array with stock per shop. ### Method GET ### Endpoint /api/v1/inventory/products/{id} ### Response #### Success Response (200) - **data** (object) - Product details - **id** (string) - Product ID - **cards** (array) - Array of inventory cards - **id** (integer) - Card ID - **count** (string) - Stock count - **counting_enabled** (boolean) - Indicates if counting is enabled - **product_id** (string) - Product ID - **shop_id** (integer) - Shop ID - **category** (object) - Category details - **id** (string) - Category ID - **title** (string) - Category title #### Response Example ```json { "data": { "id": "f747fbc5-4782-4489-92b4-51691dea1f63", "cards": [ { "id": 10789, "count": "100.0", "counting_enabled": true, "product_id": "f747fbc5-4782-4489-92b4-51691dea1f63", "shop_id": 37933 } ], "category": { "id": "72c1f7f7-751d-4caf-a0c7-5c8b0314a9f2", "title": "Beverages" }, ... } } ``` --- ## POST /api/v1/inventory/products ### Description Create a new product. ### Method POST ### Endpoint /api/v1/inventory/products ### Request Body - **product** (object) - Required - Product object - **number** (string) - Required - Product number (barcode) - **title** (string) - Required - Product title - **unit_type_id** (integer) - Required - Unit type ID - **portion_amount** (integer) - Optional - Portion amount - **portion_type_id** (integer) - Optional - Portion type ID - **price** (number) - Required - Product price - **procurement_price** (number) - Optional - Procurement price - **classifier_type_id** (integer) - Optional - Classifier type ID - **classifier_code** (string) - Optional - Classifier code - **tax_group_id** (integer) - Optional - Tax group ID - **category_id** (string) - Optional - Category ID - **category_type_id** (integer) - Optional - Category type ID - **sold_by_weight** (boolean) - Optional - Indicates if sold by weight - **bookmark_ids** (array) - Optional - Array of bookmark IDs - **user_id** (integer) - Optional - User ID - **owner_id** (integer) - Optional - Owner ID ### Request Example ```json { "product": { "number": "6930426566", "title": "Premium Coffee Beans 1kg", "unit_type_id": 0, "portion_amount": 800, "portion_type_id": 0, "price": 71.89, "procurement_price": 50.0, "classifier_type_id": 2, "classifier_code": "543210123456789", "tax_group_id": 1, "category_id": "992670be-c998-4169-a62c-63bfe2a4e1a0", "category_type_id": 2201372, "sold_by_weight": false, "bookmark_ids": [], "user_id": 103930, "owner_id": 103929 } } ``` ### Response #### Success Response (201) - **data** (object) - **id** (string) - ID of the created product - **meta** (object) - Metadata about the response #### Response Example ```json { "data": {"id": "7f527f59-bcdb-4bbd-a187-00b6ee7b68f5"}, "meta": {} } ``` --- ## PATCH /api/v1/inventory/products/{id} ### Description Update existing product (partial update). ### Method PATCH ### Endpoint /api/v1/inventory/products/{id} --- ## DELETE /api/v1/inventory/products/{id} ### Description Delete a product. ### Method DELETE ### Endpoint /api/v1/inventory/products/{id} --- ## POST /api/v1/inventory/products/batch ### Description Batch create multiple products. ### Method POST ### Endpoint /api/v1/inventory/products/batch ### Request Body - **products** (array) - Required - Array of product objects - **number** (string) - Required - Product number (barcode) - **title** (string) - Required - Product title - **price** (number) - Required - Product price - ... (other product fields as applicable) ### Request Example ```json { "products": [ {"number": "6930426566", "title": "Coffee 1kg", "price": 299.99, ...}, {"number": "6930426567", "title": "Tea 500g", "price": 189.50, ...} ] } ``` --- ## DELETE /api/v1/inventory/products/batch ### Description Batch delete multiple products. ### Method DELETE ### Endpoint /api/v1/inventory/products/batch ### Request Body - **batch** (object) - Required - Batch object - **ids** (array) - Required - Array of product IDs to delete ### Request Example ```json { "batch": { "ids": ["uuid-1", "uuid-2", "uuid-3"] } } ``` ``` -------------------------------- ### Products API Source: https://context7_llms Endpoints for managing products, including listing, retrieving, creating, updating, deleting, and batch operations. ```APIDOC ## GET /api/v1/inventory/products ### Description Retrieves a list of all products. ### Method GET ### Endpoint /api/v1/inventory/products ### Query Parameters - **page** (integer) - Optional - Page number for pagination. - **per_page** (integer) - Optional - Number of items per page. ### Response #### Success Response (200) - **products** (array) - A list of product objects. - **meta** (object) - Pagination metadata. #### Response Example ```json { "products": [ { "id": "product_id_1", "name": "Laptop", "price": 1200.00 } ], "meta": { "current_page": 1, "next_page": 2, "prev_page": null, "total_pages": 15, "total_count": 360, "limit_value": 25, "offset_value": 0 } } ``` ``` ```APIDOC ## GET /api/v1/inventory/products/{id} ### Description Retrieves details for a specific product by its ID. ### Method GET ### Endpoint /api/v1/inventory/products/{id} #### Path Parameters - **id** (string) - Required - The unique identifier of the product. ### Response #### Success Response (200) - **id** (string) - The product's unique identifier. - **name** (string) - The name of the product. - **price** (number) - The price of the product. #### Response Example ```json { "id": "product_id_1", "name": "Gaming Laptop", "price": 1500.50 } ``` ``` ```APIDOC ## POST /api/v1/inventory/products ### Description Creates a new product. ### Method POST ### Endpoint /api/v1/inventory/products #### Request Body - **name** (string) - Required - The name of the new product. - **price** (number) - Required - The price of the product. - **category_id** (string) - Optional - The ID of the category the product belongs to. ### Response #### Success Response (201) - **id** (string) - The unique identifier of the newly created product. - **name** (string) - The name of the newly created product. - **price** (number) - The price of the newly created product. - **category_id** (string) - The ID of the category the product belongs to. #### Response Example ```json { "id": "new_product_id", "name": "Wireless Mouse", "price": 25.99, "category_id": "category_id_1" } ``` ``` ```APIDOC ## PATCH /api/v1/inventory/products/{id} ### Description Updates an existing product's information using partial updates. ### Method PATCH ### Endpoint /api/v1/inventory/products/{id} #### Path Parameters - **id** (string) - Required - The unique identifier of the product to update. #### Request Body - **name** (string) - Optional - The new name for the product. - **price** (number) - Optional - The new price for the product. - **category_id** (string) - Optional - The new category ID for the product. ### Response #### Success Response (200) - **id** (string) - The updated product's unique identifier. - **name** (string) - The updated name of the product. - **price** (number) - The updated price of the product. - **category_id** (string) - The updated category ID of the product. #### Response Example ```json { "id": "product_id_1", "name": "Advanced Gaming Laptop", "price": 1600.00, "category_id": "category_id_2" } ``` ``` ```APIDOC ## DELETE /api/v1/inventory/products/{id} ### Description Deletes a specific product by its ID. ### Method DELETE ### Endpoint /api/v1/inventory/products/{id} #### Path Parameters - **id** (string) - Required - The unique identifier of the product to delete. ### Response #### Success Response (200) - **message** (string) - Confirmation of deletion. #### Response Example ```json { "message": "Product deleted successfully." } ``` ``` ```APIDOC ## POST /api/v1/inventory/products/batch ### Description Creates multiple products in a single request. ### Method POST ### Endpoint /api/v1/inventory/products/batch #### Request Body - **products** (array) - Required - An array of product objects to create. - **name** (string) - Required - The name of the product. - **price** (number) - Required - The price of the product. - **category_id** (string) - Optional - The ID of the category the product belongs to. ### Response #### Success Response (201) - **created_products** (array) - A list of the newly created product objects, including their IDs. #### Response Example ```json { "created_products": [ { "id": "new_prod_1", "name": "Organic Apples", "price": 2.50, "category_id": "category_id_3" }, { "id": "new_prod_2", "name": "Whole Wheat Bread", "price": 3.00, "category_id": "category_id_3" } ] } ``` ``` ```APIDOC ## DELETE /api/v1/inventory/products/batch ### Description Deletes multiple products by their IDs in a single request. ### Method DELETE ### Endpoint /api/v1/inventory/products/batch #### Request Body - **ids** (array) - Required - An array of product IDs to delete. ### Response #### Success Response (200) - **message** (string) - Confirmation of deletion. #### Response Example ```json { "message": "Products deleted successfully." } ``` ``` -------------------------------- ### List Shifts (GET /api/v1/pos/shifts) Source: https://context7_llms Retrieves a list of POS shifts with various filtering options including IDs, fiscal numbers, cash balance, device UIDs, and state. ```json { "data": [ { "id": "03bc8594-bf71-4ee0-b3ee-27f35379cf8d", "cash_balance": "0.99", "closed_at": null, "closed_by": null, "device_uid": "78b341e8-a400-4c5d-a5ad-2d4ab7b816a2", "employee_id": null, "fiscal_number": "Shift fiscal number", "opened_at": "2021-03-22T11:52:05.594+02:00", "opened_by": "John Dow", "registrar_fiscal_number": null, "remote_shift_id": "67969f57-f512-4a46-b6eb-df71020008bb", "state": 0, "terminal_id": 19987, "terminal_user_id": null } ], "meta": {} } ```