Проект
IOI-TECH – интеграция на POS и ERP за търговия
IOI-TECH е доставчик на технологични услуги с централа в Рияд, Саудитска Арабия, и втори офис в Джеда. От основаването си през 2018 г. компанията реализира проекти за дигитална трансформация в Саудитска Арабия и в по-широкия Близък изток и обслужва стартъпи, малки и средни предприятия и глобални корпорации в над 20 индустрии — от търговия, банкиране и телекомуникации до нефт и газ, здравеопазване и публичен сектор.
Портфолиото ѝ обхваща системи за управление на ресурсите (SAP S/4HANA, SAP Business One, Oracle Fusion, Odoo), управление на човешките ресурси, облачен хостинг, разработка на сайтове и портали, анализ на данни и AI, киберсигурност, мобилна разработка и автоматизация на продажбите — заедно с внедряването, обучението и поддръжката около тях.
ERP е основната компетентност на IOI-TECH, а клиентите ѝ от търговията водят бизнеса си в SAP. Липсваше им търговски слой и слой за продажби на място, който говори същия език като ERP системата. IOI-TECH избраха nopCommerce за основа и се обърнаха към нас, за да го изградим.
Проектът
Предизвикателството
Търговските клиенти на IOI-TECH в Саудитска Арабия и Близкия изток водят финансите, наличностите и основните си данни в SAP Business One, а продават едновременно през онлайн магазин и физически обекти: няколко клона, касови апарати и касиери, касови чекмеджета, които трябва да се броят и засичат, наличности по клонове, договорени ценови листи за отделни клиенти и продукти, продавани в няколко мерни единици наведнъж — брой, кашон, палет.
Стандартният nopCommerce не покрива нищо от това, а закачането на отделен POS продукт към уеб магазина щеше да доведе до класическия резултат: три системи, три версии на истината и служители, които въвеждат наново продукти, клиенти и поръчки между магазина, сайта и ERP системата.
Решението
Проектирахме и изградихме комплект от осем интегрирани плъгина за nopCommerce 4.50 върху .NET 6, които превръщат стандартната инсталация на nopCommerce в пълноценна омниканална търговска платформа, свързана директно със SAP Business One. Цялата бизнес логика стои в бекенда на магазина; POS терминалите говорят с него през отделен REST API слой, а магазинът говори със SAP през Service Layer. Продажба на касата, поръчка от сайта и документ, осчетоводен в ERP системата, описват една и съща транзакция. Всичко се доставя като плъгини — ядрото на nopCommerce не се разклонява, така че клиентът остава на пътя за обновяване.
Интеграция със SAP Business One
Модулът за интеграция свързва nopCommerce със SAP Business One Service Layer през специално изграден HTTP клиент с автентикация и покрива бизнес партньори и групи партньори, артикули и групи артикули, поръчки, фактури, стокови разписки, кредитни известия, входящи плащания, ценови листи, складове, ДДС групи, валути, разходни центрове, измерения, търговци и серии документи.
- Двупосочен контрол за всяка същност. Продукти, клиенти, доставчици, поръчки, доставки и ДДС групи имат собствен превключвател за синхронизация и собствена посока — от SAP към nopCommerce, от nopCommerce към SAP или в двете посоки — така че всеки клиент решава коя система владее кои данни.
- В реално време плюс по график. Консуматор на събития изпраща промените към SAP в момента, в който се случват — направена поръчка, платена поръчка, отказана или възстановена поръчка, доставена пратка, създаден, променен или изтрит продукт, клиент или доставчик — а планирана задача прави периодичното пълно засичане.
- Съпоставяне вместо твърдо кодиране. Управлявани от админа съпоставяния свързват категориите, клиентските роли, ролите на доставчици, данъчните категории и складовете в nopCommerce със съответните им в SAP, а кодовете на картите на бизнес партньорите и клиентските измерения се поддържат за всеки запис. Поръчките могат да се записват в SAP автоматично или да се пускат ръчно, а номерирането на документите следва SAP сериите на клиента.
- Управляемо в продукция. Всеки обмен се логва и се търси от админ таблица, с автоматично почистване по срок на съхранение, така че неуспял документ се диагностицира от бекенда на магазина, а не от ERP системата.
Модули за търговия и POS
- Point Of Sale — основният търговски модул. Клонове и разпределение на продукти по клонове, POS устройства и типове устройства, каси с процес по отваряне и затваряне и броене на пари, движения по касовото чекмедже с конфигурируеми основания, работа с работна дата, търсене по баркод, точки за получаване в магазина, машина за печат на касови бележки с шаблони и QR кодове, активиране с лицензен ключ за всяко устройство и отделен набор от права за POS с API защита на ниво устройство и касиер.
- Inventory — прехвърляния на стока между клонове и складове, така че наличността по клонове да остава точна, докато стоката се движи.
- Price List — множество ценови листи със стойности за всеки продукт, съпоставени с конкретни клиенти и достъпни през API, за търговия на едро и договорени B2B цени успоредно с цената на дребно.
- Product Unit Conversion — мерни измерения и коефициенти за преобразуване за всеки продукт, синхронизирани между свързаните системи, така че един и същ продукт да може да се поръчва, окомплектова и продава в различни единици.
- Split Payment — една поръчка, платена с няколко метода наведнъж, като всяка транзакция се записва отделно за засичането в края на деня.
- Pay In Cash — плащане в брой на касата, вързано в процеса на касата и чекмеджето.
- Delivery Shipping — цени за доставка според теглото и стойността на поръчката за стоки, продадени в магазина, но доставяни до клиента.
Инженерен подход
- Чиста плъгин архитектура — домейн същности, услуги, фабрики и DTO-та, разделени по модули; FluentMigrator миграции за схемата, така че инсталацията и обновяванията са повторяеми.
- Админ интерфейс, изграден с нативните Razor изгледи и view компоненти на nopCommerce, така че мениджърите на магазина работят в интерфейса, който вече познават.
- REST API слой за POS приложението на терминала, защитен с token автентикация плюс собствени атрибути за авторизация, които ограничават всяка заявка до лицензирано устройство и автентикиран касиер.
- Модулна доставка: всеки плъгин се инсталира самостоятелно, а комплектът се сглобява в цялостно решение, така че клиентът може да започне с уеб магазина и връзката към ERP и да добави POS слоя по-късно.
Резултатът
IOI-TECH вече има повторяема търговска платформа, която конфигурира за всеки клиент, вместо да я строи наново всеки път. Магазинът, сайтът и ERP системата споделят един каталог, една бройка наличност и една история на клиента; поръчките и плащанията стигат до SAP, без някой да ги преписва; касиерите отварят и затварят каси с пълна одитна следа за всяко движение в чекмеджето; а B2B клиентите се обслужват със собствени ценови листи и мерни единици — всичко това вътре в инсталация на nopCommerce, която продължава да може да се обновява.
Технологии
.NET
C#- ASP.NET Core MVC
- nopCommerce 4.50
Entity Framework Core- LinqToDB
SQL Server- FluentMigrator
- AutoMapper
- Razor Views
REST API- JWT
- FluentValidation
- QRCoder