## Creates a new product list for a store, optionally including initial line items.

**post** `/api/v2/public/stores/{store_number}/productlists`

Creates a new product list for a store, optionally including initial line items.

### Path Parameters

- `store_number: string`

### Query Parameters

- `app_username: optional string`

  Name of the app user creating the product list. Defaults to "unknown" when omitted.

### Body Parameters

- `product_list_name: string`

  Name of the product list. Must contain only letters, numbers, spaces, dots, hyphens, or underscores.

- `product_list_type: number`

  Numeric product list type identifier. Ignored when `module_id` is supplied; the type is then resolved from the module.

- `free_fields: optional array of object { key, value }`

  Custom free-field key/value pairs to attach to the product list.

  - `key: optional string`

    Free-field key.

  - `value: optional string`

    Free-field value.

- `is_allow_duplicate_products: optional boolean`

  When true (default), duplicate products may appear on multiple lines. When false, lines for the same product are merged and quantities are summed.

- `lines: optional array of object { product_number, quantity, barcode }`

  Initial line items to add to the product list. May be empty; lines may be added later via the line-update endpoint.

  - `product_number: string`

    Product number identifying which product the line refers to. Unknown product numbers are silently skipped.

  - `quantity: number`

    Quantity for the line. A value of 0 is treated as 1.

  - `barcode: optional string`

    Ignored on input. The barcode stored on the line is sourced from the product master via `product_number`. Field retained for backwards compatibility.

- `module_id: optional number`

  Optional module identifier. When set, the product list type is resolved from the module's configured type and `product_list_type` is ignored.

### Returns

- `product_list_id: number`

  Identifier of the newly created product list.

### Example

```http
curl https://api.colleqtive.net/api/v2/public/stores/$STORE_NUMBER/productlists \
    -H 'Content-Type: application/json' \
    -H "Authorization: $COLLEQTIVE_BEARER_TOKEN" \
    -d '{
          "product_list_name": "Produce",
          "product_list_type": 1
        }'
```

#### Response

```json
{
  "product_list_id": 0
}
```
