> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getscale.ng/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Product

Creates a new product catalog listing in the store inventory. This endpoint parses multipart form files for uploading catalog images.

Includes detailed Zod schema validation:

1. Product name is required.
2. Description must be between 10 and 500 characters.
3. Currency ID must exist in the system.
4. Price and quantity must be non-negative numbers.
5. Media must have at least 1 image and at most 6.

### Authorizations

<ParamField header="X-Shop-API-Key" type="string" required>
  Your Secret API Key (`sk_live_...` or `sk_test_...`) generated from the Developer dashboard. Must be kept secret.
</ParamField>

### Path Parameters

<ParamField path="shopId" type="string" required>
  The unique UUID of the shop.
</ParamField>

### Request Body (Multipart / Form Data)

<ParamField body="productName" type="string" required>
  Name of the product.
</ParamField>

<ParamField body="productDescription" type="string">
  Description text. Must be between 10 and 500 characters.
</ParamField>

<ParamField body="productPrice" type="number" required>
  Price in Kobo (e.g. `1500000` for ₦15,000.00). Must be at least 0.
</ParamField>

<ParamField body="productQuantity" type="number" required>
  Initial inventory count. Must be at least 0.
</ParamField>

<ParamField body="productCurrencyId" type="number" required>
  Currency ID reference.
</ParamField>

<ParamField body="productStatus" type="string" required>
  `active` or `draft`.
</ParamField>

<ParamField body="media" type="file" required>
  Upload 1 to 6 image files.
</ParamField>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "status": "success",
    "message": "Product created successfully",
    "data": {
      "id": 101,
      "productName": "Premium Running Shoes",
      "productSlug": "premium-running-shoes",
      "productDescription": "High performance running shoes",
      "productPrice": 1500000,
      "stockQuantity": 100,
      "isActive": true,
      "createdAt": "2026-06-19T15:35:00.000Z"
    }
  }
  ```

  ```json 400 Bad Request theme={null}
  {
    "message": "FORM_VALIDATION_ERROR",
    "code": 400,
    "validationErrors": [
      {
        "path": [
          "productDescription"
        ],
        "message": "Product description must be between 10 and 500 characters"
      },
      {
        "path": [
          "media"
        ],
        "message": "You must upload at least 1 media"
      }
    ]
  }
  ```
</ResponseExample>
