/sites/default/files/2022-07/111.jpg

По закону №54-ФЗ «О применении контрольно-кассовой техники», владелец интернет-магазина обязан интегрировать свой сайт с онлайн-кассой. Это нужно для соблюдения требований законодательства: отправлять в налоговую инспекцию электронные версии чеков, передавать фискальные данные и т.д.

Помимо обязательных данных, прописанных в законе, с 2018 года некоторых предпринимателей коснулось нововведение: «Честный ЗНАК» — система маркировка товаров, которая пока охватывает только несколько категорий, но в ближайшем будущем будет обязательной для всех российских производств. Эта маркировка должна быть нанесена на товар, а информация о ней содержаться в чеке полного расчёта.

В этой статье мы расскажем о нашем Drupal-модуле для онлайн-касс и о том, как мы модифицировали его для маркировки чеков по системе «Честный знак» для нашего клиента.

Drupal-модуль от Initlab для генерации чеков

Наш разработчик Геворг Мкртчян создал контрибный модуль для выполнения требований ФЗ-54. Контрибный означает, что его можно скачать с drupal.org, он поддерживается сообществом Drupal-разработчиков. Если вы программист, можете скачать его бета-версию по ссылке.

Важное уточнение: эта версия модуля не включает передачу маркировки «Честного ЗНАКА», о которой мы пишем ниже. Решение написано под бизнес-процессы конкретного клиента, делиться им в публичном доступе мы пока не планируем. Однако базовая версия прекрасно подойдёт для работы с Бизнес.Ру.

Этот модуль позволяет интегрировать сайт на Drupal с сервисом «Онлайн-чеки» от Бизнес.Ру  — это облачный сервис для автоматизации бизнеса, который поддерживает интеграцию со многими популярными платформами интернет-магазинов и осуществляет полную поддержку онлайн-касс (54-ФЗ) и ЕГАИС.

Наш модуль генерирует чек, сохраняет его копию в базе данных сайта и направляет его со всеми необходимыми данными в онлайн-кассу Бизнес.Ру. Этот модуль и был подключен на сайте нашего клиента RASTL — интернет-магазина постельного белья и ивановского текстиля. 

Здесь может возникнуть резонный вопрос: почему бы не воспользоваться готовым сервисом генерации чеков, например, в составе процессинга платежей Сбербанка? У решения использовать отдельный сервис для оплаты чеков три причины: 

1)  для удобства клиентов, на сайте задействовано несколько методов платежей, а не только процессинг Сбербанка, поэтому пришлось бы писать отдельные решения под каждую платёжную систему, что крайне затратно;
2) на момент внедрения онлайн-кассы возможности работы с чеками у процессинга Сбербанка были ограничены, а Бизнес.Ру был одним из лидеров в этой сфере, с хорошей клиентской поддержкой и условиями;
3) у клиента на сайте своя логика продаж, скидок и промокодов, поэтому оптимально было использовать именно отдельный сервис.

Наш модуль — это универсальный способ учесть все требования законодательства и не сломать сложную систему внутренней логики продаж. Например, в процессе формирования чека учитывается алгоритм применения скидок. При этом в модуле можно прописать применение промокодов, стоимость доставки и любые другие опции по заказам.

Мы кратко опишем этапы покупки без сложных технических подробностей. Это нужно для понимания роли нашего модуля в процессе продаж и как в дальнейшем он был доработан:
1) человек оплачивает покупку на сайте любым удобным способом;
2) наш модуль формирует чек о предоплате, сохраняет его на сервере сайта и отправляет на Бизнес.ру;
3) Бизнес.Ру направляет сформированный электронный чек в ОФД (оператор фискальных данных) и в онлайн-кассу интернет-магазина;
4) ОФД направляет чек покупателю и передаёт данные о продаже в ФНС.

Покупка совершена, требования законодательства выполнены. С модулем у нашего клиента не было никаких проблем до появления системы «Честный ЗНАК». Его было необходимо доработать, потому что на предпоследнем шаге чек стало нужно наполнять новой информацией и отправлять в новое место, но обо всём по порядку. 

«Честный ЗНАК»

В 2018 году в нашей стране появился «Честный ЗНАК» — национальная система маркировки кодами Data Matrix. Она помогает отследить путь товара от производителя к покупателю и призвана бороться с незаконным оборотом продукции, некачественными товарами и недобросовестными производителями.

Уже с января 2021 коды Data Matrix наносят на табачные, меховые изделия, обувь, лекарственные препараты и др. Если вы предприниматель и вашей продукции пока что не коснулся ЧЗ, вам всё равно нужно морально к этому приготовиться: к 2024 году планируется сделать маркировку обязательной для всех без исключения товаров на российском рынке.

Каждому подлежащему маркировке товару присваивается уникальный код Data Matrix. Он должен быть нанесён на продукцию физически в виде наклейки, а информация о нём должна быть передана в систему «Честный ЗНАК» (дальше мы будем сокращать её как ЧЗ). Каждый код можно проверить в системе ЧЗ, где будет отражена подробная информация о товаре.

Кейс клиента

Итак, товары интернет-магазина RASTL  стали подлежать маркировке ЧЗ. То сеть теперь нашему клиенту нужно отправлять в Бизнес.Ру не только чек о предоплате, но и чек с информацией о маркировке. Давайте разбираться в этапах формирования, нанесения и передачи маркировки Data Matrix. 

Как проходит маркировка товаров

Код маркировки формируется сразу после его изготовления и ввода в оборот. Производитель продукции «заказывает» коды для товаров у системы ЧЗ и наносит их на товар:

1) в системе ЧЗ создаётся карточка товара, задаётся количество изготовленных единиц и после формируются уникальные коды маркировок для всей партии;
2) отсюда коды выводятся в печать на нужный носитель;
3) маркировка наносится на товары.

Затем производитель отправляет товар продавцу, в нашем случае интернет-магазину. В его CRM заносится количество единиц полученного товара и коды соответствующих им маркировок.

При подготовке оплаченного заказа к отправке, маркировка отобранных товаров должна сканироваться и передаваться вместе с сопроводительной документацией в Бизнес.ру в виде второго чека — чека полного расчёта. И поскольку первый чек генерирует наш модуль, то и генерацию второго нам нужно было доверить ему.

Что не так с маркировкой чеков?

По нашей первой цепочке чек с предоплатой, сформированный на сайте, попадает в ОФД, а затем в налоговую и клиенту. Но теперь мы должны отчитаться не о том, сколько денег получили от клиента, а о том, что продали то самое маркированное фабричное полотенце, а не сшили его в подвале. Налоговой и ЧЗ нужна разная информация, поэтому мы не можем упихнуть всё в один чек и прислать разом: оплачено, не контрафакт.

То есть получается, что теперь нам нужен второй чек:

1) первый чек — информация о предоплате (оплате заказа) для налоговой и покупателя, отправляется после формирования заказа;
2) второй чек — информация о маркировке для ЧЗ и покупателя, отправляется после сбора посылки.

Мы уже разобрались, как Data Matrix оказывается на товаре и как проходит оплата на сайте, теперь рассмотрим процессы, которые происходят после.

У интернет-магазина RASTL CRM собственной разработки, где содержится информация о товарных остатках и соответствующих им кодах маркировок. Именно отсюда передаются данные на сайт для дальнейшего взаимодействия с Бизнес.ру

После оплаты заказа происходит следующее:

1) чек предоплаты сформирован, отправлен в Бизнес.Ру и клиенту;
2) заказ с сайта импортируется в CRM для обработки;
3) заказ собирается и подготавливается к отправке. Как мы писали выше, на этом этапе в CRM регистрируются фактические коды маркировок для товаров, которые будут отправлены. Если сильно упростить, до момента отправки товара клиенту код «спит». Он сгенерирован, наклеен на товар и содержит информацию о нём, но нигде не отображается;
4) формируется сопроводительная документация, из CRM на сайт передаются коды маркировок;
5) модуль на сайте генерирует чек полного расчёта с информацией о маркировке товара и передаёт его в Бизнес.ру;
6) Бизнес.Ру передаёт этот чек в ОФД, ОФД отправляет его в ЧЗ и маркировка проданных товаров выводится из системы;
7) покупатель получает оба чека на электронную почту или по смс.

С этими знаниями мы приступили к апгрейду модуля, чтобы «научить» его передавать информацию о маркировке товара в Бизнес.Ру. 

Суть задачи и первые трудности

Код маркировки в физическом виде — это скопление квадратиков в квадратике. Но при передаче на сайт и дальше, когда заказ собран, ЧЗ через CRM шлёт на наш модуль строку с информацией о маркировке, которую мы должны передать в Бизнес.Ру. 

Конечно, хотелось бы рассказать, как мы слёту всё переделали и запустили. Но мы столкнулись с тем, что строка с информацией о маркировке ни при каких условиях не отправлялись на Бизнес.Ру. Постараемся не перегружать вас программистскими подробностями наших мытарств и сократим рассказ о поиске решения.

Перекодировка маркировки: как мы добивались правды у ЧЗ и Бизнес.Ру

Сама маркировка состоит из кода товара и серийного номера товара. Именно в таком формате она поступает из CRM клиента в наш модуль. Мы пытались передать её в таком формате в Бизнес.Ру, но ничего не получалось — маркировка не попадала в ОФД. За эту доработку взялся наш разработчик Константин Прозоров.

Честный знак Drupal


Мы стали искать ответы на сайте ЧЗ, так как вся заваруха ради них. Оказалось, что две группы данных из CRM (код и номер товара) нужно было перекодировать в шестнадцатиричный формат. К такому нас жизнь готовила, поэтому мы встроили перекодировку в наш модуль. Он стал передавать данные в нужном формате, чтобы и ЧЗ, и Бизнес.Ру были нами довольны. 

Честный знак Drupal

Первая маленькая победа: маркировка стала поступать в ОФД. Но нам сказали, что она всё равно некорректная. И поскольку мы сделали всё возможное по документации ЧЗ, дальше решили искать ответы у Бизнес.Ру. Спустя заявку на горячей линии, письмо на поддержку и ещё один звонок, нашего Константина соединили с программистом, который понимал всю тираду про байты, кодировки и прочее умное.

Выяснилось, что мы прописали слишком полную перекодировку по примеру ЧЗ. Но нигде не было сказано, что первые четыре байта дописывает Бизнес.Ру к уже преобразованной в шестнадцатиричный формат маркировке.

Честный знак Drupal

К слову сказать, если бы не живое общение, мы бы долго искали ответ. Например, в той же пояснительной документации Бизнес.Ру есть вот такая информация:

Честный знак Drupal

Но нет алгоритма формирования и никакой информации об этом «кусочке», который они подставляют сами.

В итоге всё сложилось благополучно. Модуль модифицирован, маркировка уходит куда нужно — хэппи энд.

Вместо вывода

«Честный ЗНАК» — неизбежное будущее всего российского рынка. В прошлом году это были шины, в этом питьевая вода и БАДы, а в следующем — ваши товары или товары ваших клиентов. Крайне рекомендуем всем, кто так или иначе связан с онлайн-торговлей, заранее к этому подготовиться. Пока что достаточно морально и информационно, но и с апгрейдом нужного инструментария не затягивайте — если что-то можно заранее организовать или улучшить, то так и поступите. 

Наша команда накопила приличный опыт в сфере автоматизации работы с чеками и маркировкой товаров для интернет-магазинов. Если у вас есть задачи по внедрению или настройке подобных технологий — обращайтесь к нам.

Добавить комментарий