Интернет-магазин шин и дисков: интеграция с поставщиками Север-Авто-М (svrauto) и Яршинторг (yst)

Тема интеграции сайта с каталогами поставщиков очень актуальна сегодня. В процессе развития своих магазинов, владельцы расширяют ассортимент, заключая договора с разными компаниями. И когда ассортимент становится очень большим, то все сталкиваются со сложностями его наполнения и поддержки актуальности цен и остатков.

Не так давно мы написали статью по интеграции с поставщиками для магазина интимных товаров. Количество товаров в тех каталогах было более 20 000 позиций. Представьте какие объемы трудозатрат необходимы, если создавать такой каталог вручную? А как быстро сотрудники смогут обновлять данные остатков на складах? Можно, конечно, нанять много сотрудников, но издержки будут не соизмеримы с доходностью. Особенно это касается компаний, работающих по схеме дропшиппинга, где главный интерес владельца в минимальных издержках работы.


Именно в таких ситуациях помогает программная интеграция каталога с поставщиками. Весь процесс автоматизируется, и собственник магазина имеет всегда актуальные данные по товарам на своем сайте.

Один из наших клиентов работает в сфере автомобильных запчастей, где описанная выше задача встречается очень часто. И нам необходимо было сделать связку его каталога с новыми поставщиками Север-Авто-М (svrauto) и Яршинторг (yst). Ассортимент включал в себя шины и диски для разных категорий автомобилей, а также набор дополнительных аксессуаров и сопутствующих запчастей. Стоит отметить, что до начала нашей работы, магазин уже работал и новых поставщиков надо было грамотно включить в имеющуюся структуру каталога, что несколько усложняло задачу.

Планирование структуры импорта

Несмотря на то, что мы делали уже много подобных работ, каждый раз ее нужно проектировать под конкретного клиента. Это связано с разными нюансами как каталога заказчика, так и предоставляемых данных от поставщика.

Существует несколько часто встречаемых слабых мест при выстраивании процессов по автоматическому импорту:

  • поставщик всегда дает полный каталог, а не изменяемые позиции

  • загрузка большого количества картинок со стороннего сервера

  • обработка большого количества позиций

  • разная структура свойств товаров и разное представление одних и тех же свойств

  • разная структура каталогов

  • ограниченные ресурсы сервера клиента


Все описанные моменты участвуют в процессе планирования, и мы изучаем каким образом та или иная сложность может нарушить основной скелет импорта, который мы сформировали на своем опыте.

В прошлой статье мы рассказывали про один из способов решения проблемы обработки большого количества данных товаров при каждой итерации. В этот раз мы использовали немного иную схему – полученный файл от поставщика делили на более мелкие. К примеру, в одном файле 10 000 позиций, мы разделяли его на 100 файлов по 100 позиций и потом запускали обработку их поочередно, как по шагам. Работа с маленькими файлами удобна свой небольшой нагрузкой и возможностью в любой момент приостанавливать процесс.

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


В итоге получились такие этапы импорта:

1 шаг – загрузка файлов каталогов на сервер

Первый шаг нам надо сохранить все файлы поставщиков на наш сервер для обработки. Это мы делаем один раз за итерацию импорта. Адреса на каталоги поставщиков хранятся в отдельных файлах и в любой момент можно добавить новых поставщиков. У Север-Авто-М (svrauto) был единый файл на все группы товаров, а Яршинторг (yst) предоставлял несколько файлов, разделив их по ключевых категориям - шины, диски, аккумуляторы и аксессуары.


2 шаг – обработка и разделение файлов

Когда все файлы загружены, запускается процесс обработки, который разделяет большой файл на более мелкие и сохраняет их в отдельную папку для последующей обработки.

В названии каждого файла проставляется номер (аналог шага), код поставщика, дата и в некоторых случаях категория. Все это позволяет более удобно в дальнейшем отлаживать работу процесса импорта.

3 шаг – обработка товаров

Начинается непосредственно обработка данных каталога. Работая с каждым элементом, мы сначала проверяем существует ли он в текущей базе сайта. Если нет, то добавляем новый элемент, а если уже есть, то обновляем существующий.

Емким местом на этом этапе является работа с картинками товара. Технически можно брать картинку с удаленного сервера каждый раз, но по ресурсам это затратно. Поэтому мы сначала сохраняем фото в отдельную папку, при этом перед сохранением проверяется наличие этого файла и если он уже ранее был сохранен, то система его пропускает и тем самым значительно экономит время.


Еще одним «слабым» местом, как мы ранее писали, это работа с базой данных, если каждый раз обновлять все товары. Поэтому, как всегда, мы включаем отслеживание изменений. В этот раз мы сделали проверку по массивам основных данных товара и его свойств, за исключением постоянно меняющихся количества и цен. Этим массивы мы собрали в хеш строку и перед операцией по обновлению делаем ее сверку. Если строки совпали, значит никаких содержательных изменений у товара не было, поэтому можно просто обновить у него количество и цену. Опять же мы такой простой операцией очень экономим ресурсы сервера и скорость обработки идет значительно быстрее.


Была еще одна особая операция, которую нас попросил сделать клиент. Добавить возможность отмечать товары, у которых не надо обновлять фотографии и цены. Это в тех случаях, когда его менеджеры сами добавляли информацию у товара и не хотели, чтобы при следующем импорте эти данные стерлись. Для этого мы просто в карточке товара для менеджера добавили отметки, которые они легко могут поставить, а при импорте наш скрипт это учитывает.

4 шаг – завершение обработки

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


5 шаг – выполнение по расписанию

В финале работ, как обычно мы ставим созданные скрипты на регулярное выполнение по расписанию. Обычно выбирается ночное время, имеющее минимальную посещаемости сайта. Программа запускается сама, обновляет данные и на след день у клиента свежий каталог уже на сайте, и он может спокойно заниматься продажами и продвижением, не тратя ресурсы на рутинную работу с каталогом.

Резюме

Если у вас есть интернет-магазин или вы планируете его создать – рассматривайте все возможные инструменты по его автоматизации. Их на сегодняшний день уже достаточно много. Это позволит вам экономить ресурсы и получать более высокую норму прибыли.

Мы со своей стороны будем рады помочь вам в этом процессе.