Автоматичен импорт на продукти от XML и CSV – решение на BG NETSTORE

Автоматичен XML и CSV импорт на продукти в WooCommerce чрез BG NETSTORE

При онлайн магазини с голям продуктов каталог ръчната поддръжка на цени, наличности, категории и продукти много бързо се превръща в сериозен проблем.

Особено когато информацията идва от външен доставчик под формата на:

  • XML feed;
  • CSV файл;
  • продуктов каталог;
  • външен API източник.

На теория задачата изглежда проста:

получаваме файла → импортираме продуктите → обновяваме магазина.

На практика обаче най-важният въпрос е друг:

Как този импорт ще се изпълнява автоматично, надеждно и в точния момент – всеки ден, всяка седмица или според конкретния график на клиента?

Точно тук започва реалният технически проблем.


Импортът не е еднократна операция

Много онлайн магазини не се нуждаят просто от първоначално качване на продукти.

Те се нуждаят от постоянна синхронизация.

Доставчикът може ежедневно да променя:

  • цени;
  • наличности;
  • продуктови описания;
  • категории;
  • изображения;
  • продуктови характеристики;
  • нови и спрени артикули.

Ако тези промени не достигнат автоматично до онлайн магазина, много бързо се появяват разминавания.

Клиент може да поръча продукт, който вече не е наличен.

Цената в магазина може да бъде различна от тази на доставчика.

Нов продукт може да присъства във feed-а, но да липсва в сайта с дни.

При малък каталог това може да бъде коригирано ръчно.

При 5 000, 20 000 или 100 000 продукта това вече не е реалистично.


Истинският проблем не е XML файлът

XML и CSV файловете сами по себе си не са проблемът.

Проблемът е автоматизацията около тях.

Един импорт трябва да може надеждно да отговори на няколко въпроса:

Кога трябва да стартира?

Какво се случва, ако сайтът няма посещения?

Какво става, ако feed-ът временно не е достъпен?

Какво става, ако импортът отнеме повече време от очакваното?

Как системата разбира кои продукти са нови и кои вече съществуват?

Как се обработват хиляди записи, без магазинът да бъде блокиран?

Еднократното написване на PHP скрипт не решава автоматично всички тези въпроси.


Защо стандартният WordPress подход невинаги е достатъчен

WordPress разполага със система за планирани задачи – WP-Cron.

Тя е удобна за множество стандартни операции.

Но WP-Cron не работи като истински независим scheduler.

Той разчита на заявки към самия сайт, за да провери дали има задача за изпълнение.

При обикновен WordPress сайт това често е напълно достатъчно.

При критичен продуктов импорт обаче BG NETSTORE предпочита различен подход.

Защото автоматичното обновяване на:

цени, наличности и продуктови данни

не трябва да зависи от това дали в конкретния момент някой е посетил сайта.


Решението на BG NETSTORE

BG NETSTORE разработва собствено решение за автоматичен импорт, базирано на клиент–сървър архитектура.

В онлайн магазина се инсталира специализиран плъгин.

Той комуникира с външен сървърен компонент, който изпълнява ролята на scheduler и управлява автоматичните извиквания.

Така процесът не разчита само на стандартния WordPress механизъм.

Системата може да бъде конфигурирана да стартира импорта:

всеки ден;

веднъж седмично;

няколко пъти дневно;

в определен час;

или по друг график според конкретния проект.


Как работи системата?

Архитектурата може да бъде разгледана като две части.

1. Клиент – плъгинът в онлайн магазина

Плъгинът се намира в WordPress/WooCommerce сайта.

Неговата задача е да:

  • приема заявки от автоматизиращия сървър;
  • стартира конкретния импорт;
  • изтегля XML или CSV източника;
  • обработва продуктовите данни;
  • създава нови продукти;
  • обновява съществуващи продукти;
  • променя цени;
  • синхронизира наличности;
  • обработва категории и атрибути;
  • управлява изображения;
  • записва резултата от импорта.

Той е реалната връзка между външния продуктов feed и WooCommerce.


2. Сървър – автоматичният scheduler

Втората част е външният сървър.

Той не чака някой да отвори сайта.

Той знае:

кой магазин трябва да бъде извикан;

кога трябва да бъде извикан;

каква задача трябва да се стартира.

Например:

Магазин A
Всеки ден в 03:00
→ Синхронизация на цени и наличности
Магазин B
Всеки понеделник в 02:00
→ Пълен XML импорт
Магазин C
На всеки 6 часа
→ Обновяване на наличностите

По този начин автоматизацията се управлява независимо от трафика към конкретния онлайн магазин.


Клиент–сървър подходът решава ключов проблем

Основното предимство е, че магазинът не трябва сам да „помни“ кога да стартира задачата.

Външната система прави необходимото извикване.

Представете си го по следния начин:

BG NETSTORE Scheduler

защитено извикване към магазина

BG NETSTORE Import Plugin

XML / CSV feed

обработка на данните

WooCommerce

Така автоматизацията е много по-контролируема.


XML или CSV – форматът не е най-важното

В различните бизнеси доставчиците използват различни формати.

Един предоставя:

products.xml

Друг:

stock.csv

Трети може да предоставя отделен файл за:

  • продукти;
  • наличности;
  • цени;
  • характеристики.

Затова решението на BG NETSTORE не е обвързано само с един конкретен feed.

Импортът може да бъде разработен спрямо структурата на конкретния доставчик.

Например XML запис:

<product>
    <sku>ABC-123</sku>
    <name>Продукт ABC</name>
    <price>24.90</price>
    <stock>18</stock>
</product>

може да бъде преобразуван към съответните WooCommerce полета.

При друг доставчик същата информация може да изглежда напълно различно.

Това означава, че добрият импорт не е просто:

„прочети XML файла“.

Той трябва да знае какво означават данните в него.


Как разбираме кой продукт трябва да бъде обновен?

Един от най-важните моменти е идентификацията.

Системата трябва да разбере:

този продукт вече съществува ли?

Обикновено това става чрез уникална стойност като:

  • SKU;
  • продуктов ID от доставчика;
  • EAN;
  • друг външен идентификатор.

Ако продуктът съществува:

обновяваме го.

Ако не съществува:

създаваме го.

Без правилна идентификация автоматичният импорт може лесно да започне да създава дублирани продукти.


Не винаги трябва да обновяваме всичко

Това също е важно.

Да приемем, че Вашият екип е написал собствено SEO описание на продукт.

Доставчикът обаче също има поле:

description

Ако при всеки импорт заменяме цялата информация, собственото Ви съдържание ще бъде изтрито.

Затова автоматичният импорт трябва да може да бъде настроен така, че например:

цената → да се обновява;

наличността → да се обновява;

SKU → да остане;

Вашето описание → да не бъде заменяно;

продуктовите снимки → да се добавят само при нов продукт.

Това вече е бизнес логика.

И именно тя отличава реалното интеграционно решение от обикновеното „импортиране на файл“.


Какво става, ако XML feed-ът временно не работи?

Това е напълно реална ситуация.

Сървърът на доставчика може временно да не отговаря.

XML файлът може да бъде празен.

Възможно е да има невалиден запис.

Възможно е връзката да прекъсне.

Една добре изградена система не трябва автоматично да приема:

„Feed-ът е празен → значи всички продукти са изчерпани.“

Подобна логика може за минути да направи целия каталог недостъпен.

Затова автоматичният импорт трябва да има проверки и защити.


Големият каталог трябва да се обработва разумно

При 300 продукта импортът може да бъде сравнително лек.

При десетки хиляди ситуацията е различна.

Не е добра идея цялата операция да се изпълнява като една огромна задача.

Вместо това импортът може да бъде разделен на части.

Например:

1 – 500
501 – 1000
1001 – 1500
...

Така натоварването върху:

  • PHP;
  • MySQL;
  • WooCommerce;
  • сървъра;

може да бъде контролирано значително по-добре.


Автоматичен импорт не означава просто „пусни скрипта“

За BG NETSTORE реалната автоматизация включва повече от самото прочитане на XML или CSV файл.

Добре изградената система трябва да има ясна логика за:

стартиране;

обработка;

обновяване;

грешки;

повторни опити;

логове;

завършване.

Така при възникнал проблем може да се разбере какво точно се е случило.


За кого е подходяща услугата?

Решението е особено подходящо за онлайн магазини, които работят с:

Дистрибутори

Доставчикът изпраща регулярно актуализирана информация за продукти и наличности.

Дропшипинг

Цените и складовите количества трябва постоянно да бъдат синхронизирани.

Големи продуктови каталози

Ръчната редакция на хиляди артикули е практически невъзможна.

Няколко доставчика

Един магазин може да получава отделни XML или CSV feed-ове от различни източници.

Често променящи се цени

Особено когато доставните цени се обновяват ежедневно.


Какво предлага BG NETSTORE?

BG NETSTORE може да изгради автоматизиран процес за импорт според конкретния онлайн магазин и конкретния доставчик.

В зависимост от проекта това може да включва:

  • XML импорт;
  • CSV импорт;
  • импорт на нови продукти;
  • обновяване на съществуващи продукти;
  • автоматична синхронизация на цени;
  • автоматична синхронизация на наличности;
  • категории;
  • атрибути;
  • вариации;
  • изображения;
  • различни ценови правила;
  • работа с няколко доставчика;
  • планирано ежедневно или седмично изпълнение;
  • собствена клиент–сървър автоматизация;
  • логика за грешки и повторно изпълнение.

Не разчитаме импортът просто „да се случи“

Това е основната разлика.

При важен продуктов каталог не е достатъчно да има бутон:

Import

и някой периодично да го натиска.

Не е достатъчно и да се надяваме, че автоматизираната задача ще бъде стартирана в подходящия момент.

BG NETSTORE изгражда решение, при което сървърната страна активно извиква клиента според зададения график.

Така импортът може реално да бъде планиран като част от инфраструктурата на магазина.


Практически пример

Онлайн магазин получава XML feed от своя дистрибутор.

В него има:

18 000 продукта.

Доставчикът обновява feed-а всяка нощ.

Изискването е:

Всеки ден:

  • да се обновят наличностите;
  • да се обновят цените.

Веднъж седмично:

  • да се проверят новите продукти;
  • да се синхронизират категории;
  • да се добавят нови изображения.

Това може да бъде организирано като две различни задачи.

Всеки ден – 04:00
→ цени + наличности
Неделя – 02:00
→ пълна продуктова синхронизация

Външният сървър управлява графика.

Плъгинът в WooCommerce изпълнява конкретната задача.

Магазинът не зависи от това дали някой потребител ще отвори сайта в 04:00 сутринта.


Заключение

Автоматичният импорт на продукти не трябва да бъде просто функция за качване на XML или CSV.

При сериозен онлайн магазин той е част от инфраструктурата.

Особено когато от него зависят:

цените, наличностите и продуктовият каталог.

Затова BG NETSTORE предлага собствен подход за автоматизирана синхронизация чрез плъгин и външен сървърен scheduler, които работят заедно.

Това позволява импортите да бъдат изпълнявани:

ежедневно, седмично или по индивидуален график, независимо от посещенията в онлайн магазина.

Ако Вашият доставчик предоставя XML или CSV feed и искате продуктите във WooCommerce да се обновяват автоматично, BG NETSTORE може да разработи решение според структурата на Вашите данни и конкретната бизнес логика.

Защото при автоматичния импорт най-важният въпрос не е:

„Можем ли да импортираме файла?“

А:

„Можем ли да разчитаме, че правилните данни ще бъдат обновени автоматично всеки път?“