Проект — E-commerce и интеграции · WooCommerce + Bizzio ERP
semplohome.com: спасяване на интеграция между ERP и онлайн магазин
Нощна синхронизация с ERP за 11 000+ продукта — напълно автоматизирана, с отчети и доказана.
Клиент — „Семпло Концепт“ ООД

Накратко
„Семпло Концепт“ ООД — софийският търговец на мебели и обзавеждане зад 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-те продукта „по поръчка“ не се обновяваше при промяна в ERP | v1.2.3 |
Дублираните продукти показват как се проваляше старият подход: двете копия на всяка двойка са създадени в една и съща минута, точно в седмиците, когато доставчикът регистрира заявки на всеки 3–4 секунди. Това съответства на две застъпващи се заявки, които създават един и същ продукт; старият код няма защита срещу това. Премахнахме всичките 111 дубликата безплатно — като грижа за ценен дългогодишен клиент.
Какво изградихме
Синхронизацията вече тръгва веднъж на нощ по собствения график на сървъра, задава на ERP един-единствен въпрос и проверява собствената си работа, преди да обяви изпълнението за завършено. Нищо в магазина не зависи от това някой да посети сайта или да натисне бутон.
| Версия | Дата | Какво се промени за магазина |
|---|---|---|
| v1.2.3 | 3 окт 2026 | Продуктите „по поръчка“ (външни) се обновяват правилно; експортът на журнала е поправен |
| v1.2.2 | 2 окт 2026 | Синхронизация тръгва само с изрично натискане; грешките за дублиран продукт посочват другия продукт; журналът отделя реалните промени от повторните проверки |
| v1.2.1 | 1 окт 2026 | Една заявка към ERP на нощ вместо по една на порция; състоянието на изпълнението се пази в базата данни, не в кеш |
| v1.2.0 | 27 септ 2026 | Табло само за преглед, точни часове в историята, засичане и известяване за кодове за грешка от ERP |
| v1.1.2 | 22 септ 2026 | Нощният списък се фиксира в началото; изпълнение с необработен артикул се маркира като непълно, никога като „готово“ |
| v1.1.1 | 20 септ 2026 | Импортът вече не пропуска всяка втора порция |
| v1.1.0 | 17 юли 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
безпроблемни дни подред
Имате проект наум?
Продавате мода онлайн? Заявете безплатен одит на готовността на каталога ви за AI пазаруване.
Заявете безплатния одит