+7 (988) 353-52-54Звонки и мессенджеры kompman1@yandex.ru

SEO 7 мин чтения

Автоматическое обновление цен и остатков на сайте через API

Как сделать, чтобы цены и остатки на сайте обновлялись сами — из прайса поставщика, 1С или МойСклад. Откуда брать данные, как сопоставить товары, как часто обновлять и какие страховки поставить, чтобы один кривой файл не обнулил весь каталог.

Автообновление цен и остатков на сайте через API

Самая частая просьба от владельцев магазинов, которые выросли из ручного режима: «хочу, чтобы цены и наличие на сайте были как у поставщика (или как в 1С), а не как менеджер успел поправить». Задача звучит просто, но в ней есть пара мест, где легко потерять деньги. Разберу на типовом сценарии — магазин, у которого товары от одного-двух поставщиков плюс свой склад.

Откуда приходят данные

«Через API» — это общее название. На практике источник бывает четырёх видов, и от него зависит вся схема:

  • Прайс-файл поставщика — Excel или CSV, который приходит на почту или лежит по ссылке. Самый частый и самый капризный вариант: поставщик может поменять колонки без предупреждения.
  • Фид поставщика — XML или YML по постоянной ссылке, обновляется у поставщика сам. Удобнее файла: структура стабильная, забирать можно по расписанию.
  • API поставщика — сайт сам спрашивает цены и остатки по своим артикулам. Самый точный вариант, но есть не у всех.
  • Своя учётная программа — 1С выгружает данные в стандартном формате обмена с сайтом (CommerceML), МойСклад отдаёт их через свой API. Если учёт ведётся там, это главный источник правды.

Если источников несколько — например, свой склад в 1С и два поставщика с файлами — нужно заранее договориться о правиле: что показываем, если товар есть и у нас, и у поставщика, и какая цена главная.

Как сопоставить товары

Обмен работает, только если программа понимает, что строка «Перфоратор ABC-2000, арт. 12345» в прайсе — это вот этот товар на сайте. Сопоставляют по одному из полей:

  • Артикул поставщика — хранится в карточке товара на сайте отдельным полем;
  • Штрихкод — самый надёжный, если поставщик его передаёт;
  • Код из 1С или МойСклад — если источник — ваш учёт.

Сопоставлять по названию нельзя: «Перфоратор ABC 2000» и «Перфоратор ABC-2000» для программы разные товары. Первый запуск почти всегда показывает пару сотен строк без пары — их нужно один раз разобрать руками.

Что обновлять, а что не трогать

Автообновление должно менять узкий набор полей — обычно цену, старую цену и остаток. Описания, фото, SEO-тексты, адреса страниц — ваши, и обмен их не трогает. Иначе после каждого запуска пропадают тексты, которые вы писали под продвижение.

Новые товары из прайса лучше создавать черновиками: появилась позиция у поставщика — она ждёт, пока кто-то добавит фото и описание, а не вылезает на сайт голой строкой.

Цена: наценка по правилам

В прайсе поставщика обычно закупочная или рекомендованная цена. Розничную сайт считает сам по правилам:

  • наценка в процентах, своя для каждой категории или бренда;
  • округление до красивой цифры — до 10 или до 90 рублей;
  • минимальная цена, ниже которой товар не продаётся, даже если поставщик ошибся в прайсе.

Как часто обновлять

  • Остатки — чем чаще, тем лучше: раз в 15–60 минут, если источник это позволяет. Устаревший остаток — это заказ на товар, которого нет.
  • Цены — обычно раз в сутки, ночью. Цена, которая меняется по нескольку раз за день, раздражает покупателей, положивших товар в корзину.

Запускает обмен планировщик на сервере (cron). Большой каталог обрабатывают порциями, чтобы обновление не нагружало сайт в рабочее время.

Страховки, без которых нельзя

Это то, на чём теряют деньги чаще всего:

  1. Пустой или обрезанный файл. Поставщик выложил прайс на 10 строк вместо 10 000 — наивный обмен обнулит остаток у всего каталога, и сайт покажет «нет в наличии» на всём. Правило: если в новом файле товаров меньше, чем, например, 80% от прошлого, обмен останавливается и присылает уведомление.
  2. Скачок цены. Цена изменилась больше чем на 30–50% — товар не обновляется, а попадает в список на проверку. Ошибка с лишним нулём в прайсе так не доберётся до витрины.
  3. Товар пропал из прайса. Не удалять его с сайта, а ставить «нет в наличии» или скрывать. Удалённая страница — это потерянные позиции в поиске и ссылки, ведущие в никуда.
  4. Журнал. Каждый запуск пишет, сколько товаров обновлено, сколько не найдено, что пропущено и почему. Без журнала через месяц уже никто не знает, откуда на сайте такая цена.
  5. Уведомление о сбое. Обмен не запустился или упал — сообщение в Telegram или на почту в тот же час, а не через неделю по жалобам покупателей.

Сначала — на копии сайта

Первый запуск никогда не делают на рабочем магазине. Обмен прогоняют на копии, смотрят журнал и выборочно сверяют 20–30 товаров руками: цена с наценкой посчиталась правильно, остатки по вариантам разошлись правильно, тексты не пострадали. Только после этого включают расписание на живом сайте.

Что получится в итоге

  • цены и наличие на сайте совпадают с источником с задержкой в минуты, а не дни;
  • менеджер не правит цены руками, а разбирает короткий список товаров «на проверку»;
  • ошибка в прайсе поставщика не попадает на витрину.

Если учёт у вас в 1С, начните со статьи про интеграцию сайта с 1С. Если вы продаёте ещё и на маркетплейсах — посмотрите, как связать сайт с Ozon и Wildberries, чтобы остаток был общим. Настройку обмена под ваш прайс или учётную программу я делаю в рамках услуги интеграции; в 100300 CMS обмен с МойСклад уже есть готовым модулем.

Вопросы и ответы

Чем фид поставщика лучше прайса в Excel?
Фид — это файл XML или YML по постоянной ссылке со стабильной структурой, его можно забирать по расписанию. Excel часто приходит на почту, и поставщик может поменять колонки без предупреждения, из-за чего обмен ломается.
Как часто нужно обновлять остатки?
Раз в 15–60 минут, если источник это позволяет. Цены обычно достаточно обновлять раз в сутки, ночью.
Что будет, если поставщик пришлёт пустой файл?
Если не поставить проверку, обмен обнулит остатки по всему каталогу. Правильная настройка сравнивает новый файл с прошлым и останавливается, если товаров стало заметно меньше.
Удалять ли с сайта товары, которых больше нет в прайсе?
Нет. Лучше ставить «нет в наличии» или скрывать: удалённая страница теряет позиции в поиске, а внешние ссылки на неё ведут в никуда.
Можно ли обновлять цены, не трогая описания товаров?
Да, и так и нужно: обмен меняет только цену, старую цену и остаток, а описания, фото и SEO-тексты остаются вашими.

Читайте также

Блог
Интеграция сайта с Ozon и Wildberries: цены, остатки, заказы
E-commerce

Интеграция сайта с Ozon и Wildberries: цены, остатки, заказы

Как связать свой интернет-магазин с маркетплейсами, чтобы не вести каталог дважды: что именно синхронизировать, где источник правды, чем отличаются FBO и FBS и на чём обычно ломается обмен. Отдельно — короткий раздел про службы доставки, с которыми маркетплейсы часто путают.

8 мин чтения

Интеграция сайта с 1С: сроки, этапы и подводные камни
SEO

Интеграция сайта с 1С: сроки, этапы и подводные камни

Как на практике устроен обмен сайта с 1С: протокол CommerceML, что передаётся в каждую сторону — каталог, цены, остатки, заказы, — сколько это занимает, что подготовить в 1С до старта и на чём обмен чаще всего ломается.

5 мин чтения

Беру новые проекты

Обсудим вашу задачу?

Расскажите о проекте — перезвоню в течение рабочего дня, задам пару вопросов и назову цену и срок.

Отвечаю в течение рабочего дня

Отвечу в течение рабочего дня