Custom store API / Products and catalog

Custom store API  /  Products & catalog

Products and catalog

Used to answer product questions. Search and detail are optional in v1.0; the full catalog list and categories are optional in v1.1.

GET/v1/products?product_name={keyword}&limit={n}

product_namestringRequired

Partial match on product name

limitnumberOptional

Max 50

Response — 200 OK
{
  "data": [
    {
      "product_no": "77",
      "product_name": "Wool Crew Knit",
      "currency": "KRW",
      "price": "42000",
      "retail_price": "52000",
      "display": "T",
      "selling": "T",
      "sold_out": "F",
      "summary_description": "70% wool crew neck",
      "list_image": "https://cdn.mall.example.com/products/77/main.jpg",
      "product_url": "https://mall.example.com/product/77"
    }
  ]
}

Get a product

GET/v1/products/{product_no}

Lillo calls this with embed=variants. With per-option stock (variants), LIA can answer questions like “Do you have it in M?” accurately. Lillo works out the stock level from quantity (5 or fewer counts as low).

product_nostringRequired

Product number

product_namestringRequired

Product name

price / retail_pricestringOptional

Sale price / list price

display / selling / sold_outstringOptional

Displayed, on sale, sold out — "T"/"F"

summary_descriptionstringOptional

Short description

descriptionstringOptional

Full description. HTML is fine — Lillo strips the tags

list_imagestringOptional

Absolute https URL of the main image

detail_image / additional_imagesstringOptional

Detail and additional images

product_material / origin_place_value / shipping_infostringOptional

Material, country of origin, shipping notes

variantsobject[]Optional

Per option: variant_code, options[], additional_amount, selling, use_inventory, quantity

currencystringOptional

Extension. Currency (KRW if omitted)

product_urlstringOptional

Extension. Product page URL

Response — 200 OK
{
  "data": {
    "product_no": "77",
    "product_name": "Wool Crew Knit",
    "currency": "KRW",
    "price": "42000",
    "retail_price": "52000",
    "selling": "T",
    "sold_out": "F",
    "description": "<p>HTML is fine — Lillo strips the tags</p>",
    "list_image": "https://cdn.mall.example.com/products/77/main.jpg",
    "detail_image": "https://cdn.mall.example.com/products/77/detail.jpg",
    "product_material": "70% wool",
    "origin_place_value": "Korea",
    "shipping_info": "Ships same day for orders before 2 p.m.",
    "variants": [
      { "variant_code": "P000000X000A",
        "options": [{ "name": "Size", "value": "M" }],
        "additional_amount": "0", "selling": "T",
        "use_inventory": "T", "quantity": 3 }
    ]
  }
}

Full catalog list (v1.1)

GET/v1/products?since_product_no={n}&limit=100

When since_product_no is present, this is a full listing rather than a search. Lillo syncs the knowledge “Products” folder from it (capabilities catalog).

  • Return up to limit (max 100) products with product_no greater than since_product_no, in ascending order.
  • Return everything, whether or not it's displayed or on sale — Lillo handles hidden items. The last page just returns fewer than limit.
  • You can add category, options, created_date and the extension field sales_count (units sold in the last 90 days, optional). Lillo uses sales_count to rank by popularity.
  • Lillo calls it every 6 hours (KST 00:20, 06:20, 12:20, 18:20) and right after a connection test passes. Pages are 0.6 seconds apart, up to 5,000 products per run.
  • Price and stock are re-checked with the product detail call right before answering. The list is a snapshot for finding products.
Response — one product in the list
{
  "product_no": "77",
  "product_name": "Wool Crew Knit",
  "price": "42000",
  "retail_price": "52000",
  "display": "T",
  "selling": "T",
  "sold_out": "F",
  "created_date": "2026-09-01T10:00:00+09:00",
  "list_image": "https://cdn.mall.example.com/products/77/main.jpg",
  "product_url": "https://mall.example.com/product/77",
  "category": [{ "category_no": "24", "recommend": "F", "new": "T" }],
  "options": { "options": [
    { "option_name": "Color",
      "option_value": [{ "option_text": "Ivory" }, { "option_text": "Black" }] }
  ] },
  "sales_count": 132
}

Categories (v1.1)

GET/v1/categories

limitnumberOptional

Max 100

offsetnumberOptional

Number of items to skip

Response — 200 OK
{
  "data": [
    { "category_no": "24", "category_name": "Knitwear",
      "parent_category_no": "1", "category_depth": 2 }
  ]
}
Products and catalog · Developer docs | Lillo