Skip to content

Поиск

Результаты

GET /search.json?q= возвращает массив товаров текущей страницы, без обёртки status. Параметры страницы: page, page_size, order.

GET/search.json?q=iphone&page_size=1
Параметр Описание
q обязательный
строка
Поисковая фраза. Пустая фраза или фраза без совпадений даёт пустой массив.
page необязательный
число
Номер страницы.
page_size необязательный
число
Сколько товаров вернуть. page_size=1 оставляет один товар.
order необязательный
строка
Порядок выдачи.
const params = new URLSearchParams({ q: "iphone", page_size: "1" });
const response = await fetch(`/search.json?${params}`, {
  credentials: "same-origin",
  headers: { Accept: "application/json" }
});
const products = await response.json();

Ответ · 200

[
  {
    "id": 673,
    "url": "/product/apple-iphone-16-pro-max-1-tb",
    "title": "Apple iPhone 16 Pro Max 1 ТБ",
    "short_description": null,
    "available": true,
    "unit": "pce",
    "permalink": "apple-iphone-16-pro-max-1-tb",
    "images": [
      {
        "id": 129,
        "product_id": 673,
        "external_id": null,
        "position": 1,
        "created_at": "2026-09-23T16:18:28.000+03:00",
        "image_processing": false,
        "title": "Apple iPhone 16 Pro Max",
        "url": "http://minio.insales.io:9000/insales-development-sber/images/products/1/129/129/thumb_a9cc378c5ceb.jpg",
        "original_url": "http://minio.insales.io:9000/insales-development-sber/images/products/1/129/129/a9cc378c5ceb.jpg",
        "medium_url": "http://minio.insales.io:9000/insales-development-sber/images/products/1/129/129/medium_a9cc378c5ceb.jpg",
        "small_url": "http://minio.insales.io:9000/insales-development-sber/images/products/1/129/129/micro_a9cc378c5ceb.jpg",
        "thumb_url": "http://minio.insales.io:9000/insales-development-sber/images/products/1/129/129/thumb_a9cc378c5ceb.jpg",
        "compact_url": "http://minio.insales.io:9000/insales-development-sber/images/products/1/129/129/compact_a9cc378c5ceb.jpg",
        "large_url": "http://minio.insales.io:9000/insales-development-sber/images/products/1/129/129/large_a9cc378c5ceb.jpg",
        "filename": "a9cc378c5ceb.jpg",
        "has_bitmap_image": false,
        "image_content_type": "image/jpeg"
      }
    ],
    "first_image": {
      "id": 129,
      "product_id": 673,
      "external_id": null,
      "position": 1,
      "created_at": "2026-09-23T16:18:28.000+03:00",
      "image_processing": false,
      "title": "Apple iPhone 16 Pro Max",
      "url": "http://minio.insales.io:9000/insales-development-sber/images/products/1/129/129/thumb_a9cc378c5ceb.jpg",
      "original_url": "http://minio.insales.io:9000/insales-development-sber/images/products/1/129/129/a9cc378c5ceb.jpg",
      "medium_url": "http://minio.insales.io:9000/insales-development-sber/images/products/1/129/129/medium_a9cc378c5ceb.jpg",
      "small_url": "http://minio.insales.io:9000/insales-development-sber/images/products/1/129/129/micro_a9cc378c5ceb.jpg",
      "thumb_url": "http://minio.insales.io:9000/insales-development-sber/images/products/1/129/129/thumb_a9cc378c5ceb.jpg",
      "compact_url": "http://minio.insales.io:9000/insales-development-sber/images/products/1/129/129/compact_a9cc378c5ceb.jpg",
      "large_url": "http://minio.insales.io:9000/insales-development-sber/images/products/1/129/129/large_a9cc378c5ceb.jpg",
      "filename": "a9cc378c5ceb.jpg",
      "has_bitmap_image": false,
      "image_content_type": "image/jpeg"
    },
    "category_id": 1,
    "canonical_url_collection_id": null,
    "price_kinds": [],
    "price_min": "179990.0",
    "price_max": "179990.0",
    "bundle": null,
    "updated_at": "2026-09-23T16:28:57.000+03:00",
    "video_links": [],
    "reviews_average_rating_cached": null,
    "reviews_count_cached": null,
    "option_names": [
      {
        "id": 2517840,
        "position": 2,
        "navigational": true,
        "permalink": "tsvet",
        "title": "Цвет",
        "api_permalink": "o-tsvet"
      }
    ],
    "properties": [],
    "characteristics": [],
    "variants": [
      {
        "ozon_link": null,
        "wildberries_link": null,
        "id": 2176487189,
        "title": "Титан натуральный",
        "product_id": 673,
        "sku": "IP16PM-1TB",
        "barcode": null,
        "dimensions": null,
        "available": true,
        "image_ids": [],
        "image_id": null,
        "weight": null,
        "created_at": "2026-09-23T16:04:07.000+03:00",
        "updated_at": "2026-09-23T16:28:14.000+03:00",
        "quantity": 10,
        "quantity_at_warehouse0": "10.0",
        "price": "179990.0",
        "base_price": "179990.0",
        "old_price": null,
        "prices": [],
        "variant_field_values": [],
        "option_values": [
          {
            "id": 21063188,
            "option_name_id": 2517840,
            "position": 7,
            "title": "Титан натуральный",
            "image_url": null,
            "permalink": "titan-naturalnyy"
          }
        ]
      },
      {
        "ozon_link": null,
        "wildberries_link": null,
        "id": 2176487219,
        "title": "Титан чёрный",
        "product_id": 673,
        "sku": "IP16PM-1TB-TBLK",
        "barcode": null,
        "dimensions": null,
        "available": true,
        "image_ids": [],
        "image_id": null,
        "weight": null,
        "created_at": "2026-09-23T16:28:54.000+03:00",
        "updated_at": "2026-09-23T16:28:54.000+03:00",
        "quantity": 5,
        "quantity_at_warehouse0": "5.0",
        "price": "179990.0",
        "base_price": "179990.0",
        "old_price": null,
        "prices": [],
        "variant_field_values": [],
        "option_values": [
          {
            "id": 21063189,
            "option_name_id": 2517840,
            "position": 8,
            "title": "Титан чёрный",
            "image_url": null,
            "permalink": "titan-chyornyy"
          }
        ]
      },
      {
        "ozon_link": null,
        "wildberries_link": null,
        "id": 2176487220,
        "title": "Титан пустынный",
        "product_id": 673,
        "sku": "IP16PM-1TB-TDES",
        "barcode": null,
        "dimensions": null,
        "available": true,
        "image_ids": [],
        "image_id": null,
        "weight": null,
        "created_at": "2026-09-23T16:28:56.000+03:00",
        "updated_at": "2026-09-23T16:28:57.000+03:00",
        "quantity": 5,
        "quantity_at_warehouse0": "5.0",
        "price": "179990.0",
        "base_price": "179990.0",
        "old_price": null,
        "prices": [],
        "variant_field_values": [],
        "option_values": [
          {
            "id": 21063190,
            "option_name_id": 2517840,
            "position": 9,
            "title": "Титан пустынный",
            "image_url": null,
            "permalink": "titan-pustynnyy"
          }
        ]
      }
    ],
    "accessories": [],
    "list_card_mode": "more_details",
    "list_card_mode_with_variants": "show_variants"
  }
]

page_size=1 оставляет один товар в массиве. У этой карточки три модификации цвета, одна картинка и пустые properties, characteristics, accessories. price_min и price_max здесь строки. Пустой q или фраза без совпадений даёт пустой массив.

Подсказки

GET /search_suggestions.json нужен живому поиску в строке. Параметры: query, locale, account_id, hide_items_out_of_stock. account_id — id магазина, его печатает шаблон как account.id.

data в подсказке — id товара строкой. Переход из подсказки ведёт на /product_by_id/{data}.

GET/search_suggestions.json?query=iphone&locale=ru&account_id=233686
Параметр Описание
query обязательный
строка
Фраза живого поиска.
locale необязательный
строка
Язык подсказок.
account_id обязательный
число
id магазина, его печатает шаблон как account.id. Чужой id отвечает 400 и текстом Bad Request.
hide_items_out_of_stock необязательный
строка
Скрыть отсутствующие товары.
const params = new URLSearchParams({
  query: "iphone",
  locale: "ru",
  account_id: "233686",
  hide_items_out_of_stock: "true"
});
const response = await fetch(`/search_suggestions.json?${params}`, {
  credentials: "same-origin",
  headers: { Accept: "application/json" }
});
const data = await response.json();

Ответ · 200

{
  "query": "iphone",
  "suggestions": [
    {
      "value": "Apple iPhone 16 Pro Max 1 ТБ",
      "data": "673",
      "fields": {}
    }
  ]
}

Чужой account_id отвечает 400 и текстом Bad Request.