Интеграция между системи: магазин, склад и счетоводство
Интеграция между системи на практика: как да свържете онлайн магазина, склада, счетоводството и куриера, какви са вариантите и за какво да внимавате.
Интеграцията между системи означава вашите програми сами да си обменят данни: поръчката от онлайн магазина да стига до склада, наличността от склада да се връща в магазина, а фактурата и товарителницата да се създават без ръчно преписване. Ако днес някой копира поръчки от едно място в друго, има поне четири начина това да спре, с различна цена и надеждност. По-долу ще видите кои са, за какво да внимавате и как протича един такъв проект.
Проблемът: програми, които не си говорят
Типичната картина в малка търговска фирма или онлайн магазин изглежда така. Поръчките идват в онлайн магазина. Складът се води в отделна складова програма. Фактурите се издават в счетоводния софтуер. Пратките се създават в сайта или програмата на куриера.
Между тези четири места стоят хора. Някой преписва поръчката в склада, друг копира адреса в системата на куриера, трети въвежда фактурата. Вечер някой сверява наличностите и ги обновява ръчно в магазина.
Резултатът е познат: продадена стока, която я няма; грешен адрес на пратката; фактура с различна сума от поръчката; часове на ден в механична работа. Колкото повече растат поръчките, толкова повече хора са нужни само за прехвърляне на данни.
Преди да изберете вариант, проверете какво позволява всяка от вашите програми. Потърсете в документацията или попитайте доставчика три неща: има ли API и за кои данни, има ли готови модули за връзка с другите ви системи и може ли да експортира и импортира файлове автоматично, по график. Отговорите на тези въпроси често определят половината от решението още преди първия разговор с разработчик.
Четири начина за интеграция между системи
Няма един правилен начин. Изборът зависи от обема, от това какво позволяват вашите програми и колко точни трябва да са данните.
1. Ръчен експорт и импорт
Служител изтегля файл от едната програма (обикновено CSV или Excel) и го зарежда в другата. Това е най-евтиният старт и понякога е напълно достатъчен, например при седмично обновяване на ценоразпис.
Слабостите са ясни: зависи от човек, данните са актуални само в момента на импорта, а грешка във файла може да развали много записи наведнъж.
2. Готови конектори и плъгини
Много платформи за онлайн магазини, счетоводни и складови програми предлагат готови модули за връзка помежду си или с куриери. Инсталират се бързо и струват сравнително малко.
Проблемът идва, когато бизнесът ви има собствени правила: специални цени за определени клиенти, комплекти, няколко склада, различни типове документи. Готовият конектор прави това, за което е създаден, и рядко може да се настрои отвъд това.
3. API интеграция
API е официалният начин една програма да позволи на друга да чете и записва данни. API интеграцията е директна връзка, написана за вашия конкретен случай: при нова поръчка в магазина тя се създава в склада, при промяна на наличност се обновява магазинът.
Това е най-гъвкавият и надежден вариант, когато системите имат добро API. Изисква разработка, но поведението е точно такова, каквото ви трябва.
4. Междинен слой (middleware)
Когато системите са повече от две, директните връзки бързо се превръщат в паяжина. Тогава се изгражда междинен слой: отделна услуга, която получава данни от всички системи, прилага правилата ви и ги разпраща където трябва.
Предимството е, че цялата логика е на едно място, грешките се виждат в един дневник, а смяната на една програма засяга само една връзка. Middleware може да бъде платформа за автоматизация или собствено разработена услуга, в зависимост от сложността.
Сравнение на вариантите
| Вариант | Подходящ за | Актуалност на данните | Ориентировъчно усилие |
|---|---|---|---|
| Ръчен експорт/импорт | малък обем, рядка промяна | при всеки импорт | часове за настройка |
| Готов конектор | стандартни случаи | почти в реално време | дни |
| API интеграция | собствени правила, 2–3 системи | в реално време | седмици |
| Междинен слой | 3+ системи, растеж | в реално време | седмици до месеци |
Като ориентировъчни пазарни рамки: готовите конектори често струват от десетки до няколкостотин евро плюс абонамент, а индивидуална API интеграция или междинен слой обикновено струва от няколко хиляди до няколко десетки хиляди евро. Цената зависи главно от броя системи, качеството на техните API, броя правила и изключения и от изискванията за наблюдение и поддръжка.
Интеграция на онлайн магазин със склад: най-честият случай
Най-често фирмите търсят именно интеграция на онлайн магазин със склад. Логиката изглежда проста, но има няколко детайла, които решават дали връзката ще работи.
Типичният поток е следният:
- Клиентът поръчва в магазина.
- Поръчката автоматично се създава в складовата програма и стоката се резервира.
- Складът събира пратката, а системата създава товарителница при куриера.
- Номерът за проследяване се връща в магазина и клиентът получава известие.
- Издава се фактура в счетоводната програма.
- Новата наличност се изпраща обратно към магазина и към другите канали за продажба.
Всяка от тези стъпки трябва да има отговор на въпроса „какво става, ако се провали“. Ако куриерът не отговори, поръчката не бива да изчезне, а да чака и да опита отново. Ако артикул от магазина го няма в склада, някой трябва да бъде уведомен.
Ако продавате и на едро, интеграцията става по-сложна. В един наш проект изградихме B2B слой върху съществуващ онлайн магазин за крайни клиенти: фирмени клиенти със собствени условия и минимални количества за поръчка. Повече за този тип решения има в статията за B2B онлайн магазин.
За какво да внимавате
Единен източник на истина
За всяка информация трябва да е ясно коя система е главната. Наличността обикновено е истина в склада, цените може да са в ERP или в магазина, клиентските данни в CRM или в магазина. Ако две системи смятат, че са главни за едно и също нещо, рано или късно ще се презаписват една друга.
Направете проста таблица: вид данни, главна система, кои системи само четат. Това е най-полезният документ в целия проект.
Синхронизация на наличности
Синхронизацията на наличности е мястото, където интеграциите най-често се провалят. Причините са няколко: обновяване твърде рядко, продажби в няколко канала едновременно, ръчни корекции в склада, които не се изпращат нататък.
Добрите практики включват обновяване веднага след движение, а не само по график; буфер за стоки с малки количества; и периодична пълна сверка, която хваща разминаванията. Ако складовата ви програма не позволява това, може би е време да погледнете към складов софтуер, който е проектиран за връзка с други системи.
Обработка на грешки
Всяка интеграция ще среща грешки: външна система не отговаря, липсва задължително поле, артикул има различен код. Въпросът е какво се случва тогава.
Минималните изисквания са:
- автоматичен повторен опит при временни проблеми;
- известие до конкретен човек, когато нещо не може да се обработи;
- дневник, от който се вижда кой запис кога и с какъв резултат е минал;
- възможност грешният запис да се поправи и да се изпрати отново, без да се дублира.
Най-опасната интеграция е тази, която спира тихо и никой не разбира за това до оплакването на клиента.
Сигурност
Интеграцията получава достъп до данни на клиенти, цени и обороти. Използвайте отделни ключове за достъп за всяка връзка, с минимално необходимите права. Връзката трябва да е криптирана, а ключовете да не стоят в имейли или споделени таблици.
Когато се прехвърлят лични данни на клиенти, важат изискванията на GDPR. При съмнение за конкретни задължения се консултирайте с юрист.
Как протича един проект за интеграция
Проектът обикновено минава през тези етапи:
- Карта на системите. Кои програми има, какви данни държат, какво позволяват (API, експорт, конектори).
- Карта на данните. Кое поле от едната система на кое съответства в другата: кодове на артикули, мерни единици, ДДС групи, статуси на поръчки. Тук се намират повечето скрити проблеми.
- Правила и изключения. Какво става при частична доставка, връщане, анулирана поръчка, липсващ артикул.
- Разработка и тест. С реални данни, в тестова среда, ако системите я позволяват.
- Паралелна работа. Известно време интеграцията работи, а хората сверяват резултата.
- Наблюдение и поддръжка. Системите се обновяват, а с тях понякога и техните API. Връзката трябва да се следи.
Срокът за една API интеграция между две системи обикновено е от няколко седмици, а за междинен слой между четири-пет системи може да стигне два-три месеца. Най-много време често отива не за програмирането, а за уточняване на данните и правилата.
Интеграцията рядко е самоцел. Тя обикновено е част от по-широка автоматизация на бизнес процеси, която освобождава хората от преписване. Ако обаче програмите ви са толкова много и толкова стари, че всяка връзка е кръпка, понякога по-добрият ход е обща система. В един наш проект за търговска фирма със складове и магазини Excel, хартията и старата програма бяха заменени от единна ERP система, която днес ползват около 100 души всеки ден.
Накратко
- Интеграцията между системи премахва ръчното прехвърляне на поръчки, наличности, фактури и пратки.
- Вариантите са ръчен експорт/импорт, готови конектори, API интеграция и междинен слой; изборът зависи от обема, правилата и броя системи.
- Определете единен източник на истина за всеки вид данни, преди да започнете.
- Синхронизацията на наличности и обработката на грешки са местата, където интеграциите най-често се чупят.
- Планирайте сигурност, дневник и наблюдение от самото начало, не след първия проблем.
Ако вашите програми не си говорят и искате да разберете кой вариант е подходящ, можем да го обсъдим в безплатен 30-минутен разговор и да ви изпратим предложение с фиксирана цена. Вижте и как изграждаме интеграции между системи.
Често задавани въпроси
Може ли да се направи интеграция, ако програмата ни няма API?
Често да, но с ограничения. Възможни варианти са автоматичен обмен на файлове (CSV, XML), четене от базата данни на програмата, ако производителят го позволява, или периодичен експорт и импорт по график. Тези решения са по-крехки от API, затова изискват повече проверки и наблюдение.
Колко често трябва да се синхронизират наличностите?
Зависи от това колко бързо се движи стоката и колко канала продават едно и също. При малко поръчки синхронизация на всеки 15–30 минути обикновено е достатъчна. При много продажби или стоки с малки количества е по-добре наличността да се обновява веднага след всяко движение, за да не продавате нещо, което вече го няма.
Какво става с интеграцията, когато сменим някоя от програмите?
Връзката към сменената програма трябва да се направи наново, но останалите обикновено се запазват, ако интеграцията е изградена с отделен междинен слой. Затова е добре логиката да не е вградена в една от системите, а да стои отделно. Така смяната на куриер или счетоводна програма засяга само една част.
Сигурно ли е да се дава достъп на външна система до данните ни?
Може да бъде, ако се спазват основни правила: отделни ключове за достъп с минимални права, криптирана връзка, сменяеми пароли и дневник на заявките. Достъпът трябва да е само до данните, които интеграцията наистина ползва. Когато се обработват лични данни на клиенти, важат и изискванията на GDPR.