webservices.agency
EN

Проект — E-commerce и интеграции · WooCommerce + Bizzio ERP

semplohome.com: спасяване на интеграция между ERP и онлайн магазин

Нощна синхронизация с ERP за 11 000+ продукта — напълно автоматизирана, с отчети и доказана.

Клиент — „Семпло Концепт“ ООД

semplohome.com: спасяване на интеграция между ERP и онлайн магазин — уебсайт

Накратко

„Семпло Концепт“ ООД — софийският търговец на мебели и обзавеждане зад semplohome.com — поддържа каталог от над 11 000 продукта в ERP системата Bizzio и ги продава чрез WooCommerce. Връзката между двете не работеше от месеци: продукти липсваха, снимки не пристигаха, а самият доставчик на ERP системата се оплакваше от натоварването.

Поехме интеграцията, проследихме всяка повреда до причината ѝ и изградихме синхронизацията наново като наблюдаван нощен процес. Днес една-единствена заявка към ERP на нощ пренася всеки променен артикул, всяко изпълнение се проверява за пълнота, а магазинът работи без ръчни повторни импорти.

Днес целият процес е автоматизиран. Синхронизацията тръгва сама всяка нощ, докато екипът спи, записва всеки продукт, който обработва, и сутринта изпраща отчет по имейл. Часовете, които екипът губеше в сверяване на магазина с ERP, сега отиват за развитие на бизнеса.

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

Отправната точка

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

  • Сайтът се обръщаше към ERP на всеки 3–4 секунди, денонощно, като всеки път искаше всички артикули, променени през последните няколко часа, заедно със снимките. Препоръката на доставчика беше най-много веднъж в минута.
  • Синхронизацията спря за почти 20 часа, а после отново същата вечер.
  • Всяка заявка търсеше промени във фиксиран прозорец назад от текущия момент, така че всичко, променено по време на по-дълъг срив, се губеше безследно.

Тогавашната интеграция беше модул от един файл с един бутон „Синхронизирай“: без история, без отчет за грешки, без начин да се види какво е пристигнало. Служителите бяха свикнали да изпращат продукти на ръчно подбрани порции до 200 броя и на следващия ден да проверяват какво е стигнало до сайта. Снимките, качени в ERP, така и не се появяваха в магазина.

Истинската цена беше времето на екипа. Никой не виждаше кога един импорт започва и кога свършва, нито кои продукти са стигнали. За да разберат, служителите прекарваха часове в ръчно сравняване на продуктите в ERP с тези на сайта — всеки път.

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

Какво открихме

Проследихме 14 дефекта до причината им: 5 наследени, 8 в наши по-ранни версии и 1 в настройките на сървъра. Всеки беше възпроизведен в тест, преди да бъде поправен.

ДефектПроизходЕфект в магазинаПоправен в
Заявки към ERP на всеки 3–4 сек.НаследенПостоянно натоварване на ERP; оплакване от доставчикаv1.0.0 (яну 2026)
Фиксиран прозорец назад от „сега“НаследенПромени по време на срив се губехаЧастично: застъпващ се прозорец от 48 ч. от v1.1.2; „последно успешно четене“ предстои
Паролата за ERP в явен вид в кода; публична точка, която вика ERPНаследенРиск за сигурносттаСтарият модул е спрян през яну 2026, веднага след писмото на доставчика
Връзките към снимки от ERP се отхвърляха от WordPressНаследенСнимките не стигаха до магазинаv1.1.0 (юли 2026)
111 продукта, създадени два пътиНаследенОбновяването им винаги се проваляшеПочистване на данните, окт 2026
Планираната задача работеше със стара версия на PHP, без запис на грешкитеНастройки на сървъраНощната синхронизация спря безшумно за 9 дниПоправка на сървъра, 20 септ 2026
Всяка втора порция се пропускаше при импортНашОколо 1 от 2 нови продукта не се създавашеv1.1.1
Нощният списък се теглеше наново за всяка порция; ERP сменяше редаНашНякои продукти се пропускаха, други се обработваха двукратноv1.1.2
Историята записваше местно време като UTCНашДублирани редове, отрицателна продължителност, часове с 3 ч. разликаv1.2.0
Отварянето на таблото променяше данните за изпълнениетоНашЕдин поглед можеше да спре текуща синхронизацияv1.2.0
Кодовете за грешка от ERP не се засичахаНашПровалите се отчитаха като успехv1.2.0
Състоянието на изпълнението се пазеше в кеш, който два процеса виждаха различноНашПродукти отпадаха от изпълнения, стартирани от посещенияv1.2.1
Презареждането на страницата с напредъка стартираше пълна синхронизацияНашРиск от случайна синхронизация за цяла седмицаv1.2.2
Управление на наличността се налагаше и на външни продуктиНашВсеки от 730-те продукта „по поръчка“ не се обновяваше при промяна в ERPv1.2.3

Дублираните продукти показват как се проваляше старият подход: двете копия на всяка двойка са създадени в една и съща минута, точно в седмиците, когато доставчикът регистрира заявки на всеки 3–4 секунди. Това съответства на две застъпващи се заявки, които създават един и същ продукт; старият код няма защита срещу това. Премахнахме всичките 111 дубликата безплатно — като грижа за ценен дългогодишен клиент.

Какво изградихме

Синхронизацията вече тръгва веднъж на нощ по собствения график на сървъра, задава на ERP един-единствен въпрос и проверява собствената си работа, преди да обяви изпълнението за завършено. Нищо в магазина не зависи от това някой да посети сайта или да натисне бутон.

ВерсияДатаКакво се промени за магазина
v1.2.33 окт 2026Продуктите „по поръчка“ (външни) се обновяват правилно; експортът на журнала е поправен
v1.2.22 окт 2026Синхронизация тръгва само с изрично натискане; грешките за дублиран продукт посочват другия продукт; журналът отделя реалните промени от повторните проверки
v1.2.11 окт 2026Една заявка към ERP на нощ вместо по една на порция; състоянието на изпълнението се пази в базата данни, не в кеш
v1.2.027 септ 2026Табло само за преглед, точни часове в историята, засичане и известяване за кодове за грешка от ERP
v1.1.222 септ 2026Нощният списък се фиксира в началото; изпълнение с необработен артикул се маркира като непълно, никога като „готово“
v1.1.120 септ 2026Импортът вече не пропуска всяка втора порция
v1.1.017 юли 2026Снимките от ERP стигат до магазина; неуспешните снимки се виждат в историята
v1.0.0яну 2026Замени модула с един бутон: планирана синхронизация, порции, ограничение на заявките, история, отчети по имейл, табло
Таблото на модула (чувствителните данни са скрити)Пълен размер
Таблото на модула (чувствителните данни са скрити)

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

Никой вече не трябва да стартира, наблюдава или проверява синхронизацията. Всяка стъпка, която екипът правеше на ръка, сега се случва сама.

ЗадачаПредиСега
Стартиране на импортНякой натискаше бутон и подбираше порции до 200 продуктаТръгва автоматично всяка нощ в 04:15
Кога е миналНикъде нямаше час на начало и крайВсяко изпълнение е в историята: начало, край, продължителност
Какво е пристигналоЧасове ръчно сравняване на ERP със сайтаЗапис за всеки продукт: обновен, без промени или неуспешен — и защо
Как разбираш резултатаСамо ако отидеш да проверишОтчет по имейл след всяко изпълнение, известие при проблем
АрхивНямаВсяко изпълнение може да се изтегли като CSV файл
Журнал на синхронизацията (чувствителните данни са скрити)Пълен размер
Журнал на синхронизацията (чувствителните данни са скрити)

Спестеното време се връща в бизнеса — в продажби, не в проверки.

Как го доказахме

От септември 2026 г. всяка поправка първо се показва как се проваля на стария код, преди да бъде написана, а пълният набор от тестове (318 проверки в 22 скрипта) минава, преди версия да напусне компютъра.

  • Тестове спрямо реалността. Тестовият сървър отговаря като истинската ERP система — сверен с документацията на доставчика и с анонимизиран реален отговор.
  • Повторяеми версии. Всяка версия се изгражда два пъти от един и същ код и трябва да даде идентичен файл, проверен отново преди качване.
  • Безопасно внедряване. Пълно резервно копие преди всяка промяна, внедряване само през деня с часове резерв за връщане назад и писмена процедура за връщане с едно качване.
  • Ежедневна проверка. Всяка сутрин: магазинът отговаря на анонимен посетител, нощното изпълнение е обхванало всеки артикул точно веднъж, сървърният лог е чист.
  • Чиста седмица. Седем чисти нощи подред, преди да кажем „готово“. Всяка необяснена грешка започва броенето отначало. Последната нощ планировчикът на хостинга пропусна един цикъл; синхронизацията тръгна сама 15 минути по-късно и пак обхвана всяка промяна.

Ежедневната проверка доказа смисъла си още на първата сутрин под v1.2.2: тя хвана продукт „по поръчка“, който никога не се беше обновявал — стар наш дефект, който никой тест не покриваше. Беше поправен и пуснат същия ден, а на следващата нощ продуктът се обнови без грешка.

Резултати

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

ПоказателПредиСега
Заявки към ERPНа всеки 3–4 сек., денонощно (логове на доставчика)1 на нощно изпълнение
Типично нощно изпълнениеСпряно 9 дни, без никой да забележи (септ 2026)16 сек. в тиха нощ; 2 427 променени артикула за 31 мин. (3 порции); проверка всяка сутрин
Цяла седмица промени, наваксани наведнъжНевъзможно2 512 артикула за 10 мин. 28 сек., 0 дубликата
Дублирани продукти в магазина111 двойки0 (без засегнати поръчки)
Синхронизации, стартирани от посетителиДа0 от 1 окт 2026
Чисти нощи подред—7 (3–10 окт 2026): 4 938 артикула, 1 нов продукт, 0 грешки
„Дори не съм си представяла, че това е възможно.“
— Цветелина Куманова, „Семпло Концепт“ ООД

Какво следва

Следващата версия добавя еднократно пълно обновяване, поискано от клиента, така че всеки продукт да се изравни с ERP в едно дневно изпълнение. Тя ще замени и фиксирания 48-часов прозорец с „промените от последното успешно изпълнение“ — подходът, препоръчан от доставчика на ERP още през януари.

Ако магазинът и ERP системата ви не са на едно мнение какво продавате, можем да открием защо.

1

заявка към ERP на нощ

111 → 0

дублирани продукта

7

безпроблемни дни подред

Същият клиент, друга задача: брандовият сайт на Semplo Concept Следващ проектВила Аяна →

Имате проект наум?

Продавате мода онлайн? Заявете безплатен одит на готовността на каталога ви за AI пазаруване.

Заявете безплатния одит