商品列表
拉取当前商户已授权且可售商品，默认仅 on_sale。下单时使用 data.list[].product_code（供货商品编码）。

#接口地址
code
POST /api/open/v1/products/index
#请求方式
POST

#请求参数
Body 为 JSON 对象：

参数名	类型	必填	说明
page	number	否	页码，默认 1
per_page	number	否	每页条数，默认 20，最大 100
filters	object	否	筛选条件
filters.status	string	否	on_sale（默认）/ off_sale / draft / all
filters.supply_product_name	string	否	供货商品名称，模糊搜索
#响应参数
data 字段说明：

参数名	类型	说明
data.list	array	商品列表
data.list[].product_code	string	商品编码（下单必填，见创建订单）
data.list[].name	string	商品名称
data.list[].channel	string	供货渠道
data.list[].external_product_id	string | null	外部商品 ID
data.list[].image_url	string	商品图 URL，无图时为空字符串
data.list[].status	string	商户商品在售状态：on_sale / off_sale / draft
data.list[].supply_status	string	平台供货商品状态：on_sale / off_sale / draft
data.list[].supply_price_points	number	供货价（积分）
data.list[].fee_points	number	手续费（积分）
data.list[].unit_cost_points	number	单笔扣费积分 = 供货价 + 手续费
data.list[].max_order_quantity	number	单笔最大购买数量（platform_buy_num 上限）
data.list[].sale_price_points	number | null	商户自定售价（积分），可空
data.total	number	总条数
data.page	number	当前页码
data.per_page	number	每页条数
下单扣费：unit_cost_points × platform_buy_num（platform_buy_num 见创建订单接口，且不得超过 max_order_quantity）。

#响应示例
json
{
  "code": 0,
  "message": "success",
  "data": {
    "list": [
      {
        "product_code": "10000300",
        "name": "和平精英点券",
        "channel": "lewan",
        "external_product_id": "EXT-001",
        "image_url": "https://example.com/p.png",
        "status": "on_sale",
        "supply_status": "on_sale",
        "supply_price_points": 3000,
        "fee_points": 800,
        "unit_cost_points": 3800,
        "max_order_quantity": 99,
        "sale_price_points": null
      }
    ],
    "total": 1,
    "page": 1,
    "per_page": 20
  }
}

