Модели ответов Product API

С response_format: "standard" (по умолчанию) product endpoints возвращают типы ниже. Канонический TypeScript: packages/shared/src/products.ts.

Endpoints: детали · поиск · поиск по изображению · парсинг

Обертка ответа {#envelope}

EndpointФорма
detail, parse{ product: StandardProductDetail, request_id }
search, search-by-imageStandardProductList & { request_id }
upload-image{ channel, image_id, request_id }

StandardProductDetail {#standard-product-detail}

Полный снимок товара для страниц товара и checkout. Маппинг в orders: search/detail idlines[].id (offer_id / Taobao mi_id still accepted), variants[].sku_idspec_id (заказы закупки).

Идентичность и канал

ПолеТипОписание
idstringTaobao = mi_id (order lines[].id; периодически меняется — не кэшируйте надолго). 1688 = offerId. Weidian currently prod_weidian_{source_product_id}
channelstring1688, taobao или weidian
source_product_idstring1688 = offerId (same as id); Taobao = original item_id
source_urlstringКанонический URL страницы товара

Локализованный текст (title, description)

ПолеТипОписание
originalstringТекст маркетплейса (обычно китайский)
translatedstring | nullПеревод для запрошенного language
languagestringLocale для translated
descriptionobject | nullПодробное описание (часто HTML)

Цены (price, price_tiers[])

Все суммы в CNY yuan (не fen). Предпочитайте promotion_amount, если задано, иначе display_amount.

ПолеТипОписание
price.original_amountnumberList price до promotions
price.display_amountnumberЦена для покупателя (CNY)
price.promotion_amountnumber | nullPromotional unit price, когда применимо
price.original_currency / display_currencystringВсегда CNY
price_tiers[]arrayОптовые ступени 1688 (новые офферы от ≥2); пусто на Taobao
min_order_quantitynumber | null1688 MOQ
distribution_min_quantitynumber | nullМинимум 1688 dropship

Медиа (images[], videos)

ПолеТипОписание
images[].urlstringURL изображения CDN
images[].typeenummain, gallery или variant
videos.main / videos.detailstring | nullВидео 1688; Taobao null

Attributes vs variants

Только variants[] управляет выбором SKU и строками заказа.

ПолеРоль
attributes[]CPV specs — только отображение, не для SKU resolution
variants[]Покупаемая SKU matrix с ценой, остатком и specs

Объект variant (variants[])

ПолеТипОписание
sku_idstringПередавайте как spec_id при order create
upstream_sku_idstring | nullЧисловой skuId 1688
attributes[]arrayИзмерения spec (цвет, размер, …)
attributes[].name / valuestringОтображаемые подписи (локализованы по language)
attributes[].original_name / original_valuestringСтабильные китайские ключи для группировки / сопоставления
attributes[].prop_idstring | nullID свойства upstream как строка (Taobao prop_id; 1688 attributeId). Предпочтительнее текста имени
attributes[].value_idstring | nullID значения upstream как строка (Taobao value_id). У 1688 нет valueId → null
attributes[].imagestring | nullИзображение опции / образца
priceobjectЦена на уровне SKU в yuan
stocknumberДоступное количество; 0 = нет в наличии
imagestring | nullОсновное изображение SKU
shippingobject | nullРазмеры упаковки SKU 1688 (таблица ниже); Taobao — null
min_order_quantitynumber | nullMOQ 1688 (значение товара на каждом SKU)
distributionobject | nullЦены 1688 dropship

Размеры упаковки SKU (variants[].shipping)

Сопоставлено с upstream 1688 productShippingInfo.skuShippingDetails (SkuShippingDetail). У Taobao эквивалента нет — всегда null. Пустые или 0 размеры/вес нормализуются в null; без данных shipping равен null.

ПолеТипОписание
width_cmnumber | nullШирина, cm (заявлено продавцом)
length_cmnumber | nullДлина, cm
height_cmnumber | nullВысота, cm
weight_kgnumber | nullВес, kg
official_width_cmnumber | nullОфициально измеренная ширина, cm
official_length_cmnumber | nullОфициально измеренная длина, cm
official_height_cmnumber | nullОфициально измеренная высота, cm
official_weight_kgnumber | nullОфициально измеренный вес, kg
ai_weight_kgnumber | nullВес, предсказанный ИИ, kg
ai_weight_accuracystring | nullТочность ИИ-веса для листовой категории (напр. 80%)
sourcestring | nullИсточник размеров (напр. 商家自填)

Для оценки фрахта предпочитайте official_*, затем заявленные продавцом размеры/вес, затем ai_weight_kgai_weight_accuracy как подсказкой уверенности).

Продавец, доставка и metadata

ПолеТипОписание
seller.id / seller.namestringShop id и отображаемое имя
seller.shop_urlstring | nullСсылка на storefront
shipping.shipping_fromstring | nullРегион внутренней отправки
shipping.domestic_shipping_feeobject | nullОценка внутренней платы доставки в yuan
metadata.raw_categorystring | nullUpstream category
metadata.brandstring | nullЗаявленный бренд
metadata.updated_atstringПоследняя синхронизация ISO 8601
trade_scorestring | nullОценка качества 1688

Пример (сокращено)

{
  "product": {
    "id": "554456348334",
    "channel": "1688",
    "source_product_id": "554456348334",
    "title": {
      "original": "...",
      "translated": "...",
      "language": "en"
    },
    "price": {
      "display_amount": 29.9,
      "promotion_amount": 24.9
    },
    "variants": [
      {
        "sku_id": "b266e0...",
        "upstream_sku_id": "12123313",
        "stock": 100,
        "shipping": {
          "width_cm": 10,
          "length_cm": 10,
          "height_cm": 10,
          "weight_kg": 1.2,
          "official_width_cm": 5,
          "official_length_cm": 12,
          "official_height_cm": 14,
          "official_weight_kg": 0.001,
          "ai_weight_kg": 0.001,
          "ai_weight_accuracy": "80%",
          "source": "商家自填"
        }
      }
    ]
  },
  "request_id": "req_..."
}

Доступность полей по каналам

Поле1688TaobaoWeidian
videos, price_tiers, trade_scoreЗависит
variants[].shipping, distribution
variants[].attributes[].prop_id✓ (attributeId)✓ (prop_id)
variants[].attributes[].value_id— (null)✓ (value_id)
source_product_id для ordersofferIdmi_idPlatform id

StandardProductList {#standard-product-list}

Из поиска и поиска по изображению. Каждая запись items[] — это summary; вызовите detail для SKU matrix.

ПолеТипОписание
channelstringЗапрошенный маркетплейс
keywordstringЭхо keyword (пусто для чистого image search)
page / page_sizenumberПримененная pagination
totalnumberUpstream total (может быть приблизительным)
items[]arrayОбъекты StandardProductListItem
pic_region_infoobjectImage search: обнаруженная crop region

StandardProductListItem

ПолеТипОписание
id, channel, source_product_id, source_urlstringИспользуйте source_product_id для получения detail
titleLocalizedTitleНазвание listing
priceProductPriceSummary price в CNY yuan
imagestringThumbnail URL
seller.namestringНазвание магазина

Ответ upload-image {#upload-image-response}

ПолеТипОписание
channelstringМаркетплейс, который сохранил изображение
image_idstringПовторно используйте в поиске по изображению

Выбор variant {#variant-selection}

  1. Загрузите detail → прочитайте product.variants.
  2. Сгруппируйте по attributes[].original_name для dimension pickers (или по prop_id, если есть).
  3. Фильтруйте variants по каждому выбору пользователя; отключайте options без остатка.
  4. Передайте соответствующие sku_id и source_product_id в order preview.

Ключи сопоставления: для Taobao предпочитайте prop_id + value_id, если они заданы (стабильные CPV-идентификаторы; избегают путаницы, когда много SKU делят одно имя атрибута). Для группировки UI используйте original_name + original_value. name / value только для отображения. Не выводите семантический тип из подписей.

{
  "prop_id": "1627207",
  "value_id": "43553464153",
  "name": "Color Classification",
  "value": "[Special for Bicycle Maintenance] Professional 46-Piece Set",
  "original_name": "颜色分类",
  "original_value": "【自行车维修专用】专业46件套",
  "image": "https://img.alicdn.com/..."
}

Для 1688 та же форма: prop_idattributeId, value_id: null (у upstream SkuAttribute нет valueId).

Get Support

Need integration help? Contact Developer Support at support@hiobuy.com · Response within 1–2 business days

Email support