Расширение «Ferma OFD.ru» связывает интернет-магазин на Joomla с облачной кассой Ferma. Оно формирует чеки по изменениям статусов заказа, получает результаты их обработки и ведёт реестр чеков. После установки и настройки основная работа происходит автоматически; администратор контролирует чеки в реестре и при необходимости проверяет их статус или повторяет отправку после определённой ошибки.
Один установочный пакет содержит компонент Ferma OFD и адаптеры для VirtueMart и JoomShopping. В настройках не нужно выбирать адаптер, расширение делает это самостоятельно.
Расширение поддерживает четыре операции по существующему заказу (см. таблицу 1).
Таблица 1. Операции, поддерживаемые расширением
| Операция | Когда используется |
|---|---|
| Предоплата 100% | Покупатель оплатил заказ до передачи товара или оказания услуги. |
| Полный расчёт | Товар передан или услуга оказана; ранее полученная предоплата засчитывается. |
| Возврат предоплаты | Деньги возвращаются до полного расчёта. |
| Возврат полного расчёта | Деньги возвращаются после полного расчёта. |
Статусы заказов, запускающие предоплату, полный расчёт и возврат, администратор выбирает сам. Для возврата расширение определяет вид чека по уже созданным операциям заказа. Назначайте разные статусы для трёх сценариев: один статус не должен одновременно означать оплату, передачу и возврат.
Чек содержит позиции существующего заказа. Администратор не вводит произвольный состав чека в реестре: наименование, количество, сумму и контакт покупателя расширение получает из заказа. Возврат использует сохранённый состав исходного чека.
Обычная последовательность: предоплата → подтверждение Ferma → полный расчёт. Если статус полного расчёта установлен, пока предоплата ещё обрабатывается, расширение сохраняет полный расчёт в очереди и отправляет после подтверждения исходного чека. Аналогично возврат может ждать подтверждения исходного чека; полный расчёт и возврат полного расчёта могут стоять в очереди одновременно, каждый за своим предшественником.
Если исходный чек не отправлен, зависимый чек ждёт его исправления и подтверждения. Если Ferma окончательно отклонила исходный чек или сообщила об ошибке ККТ, зависимый чек блокируется; причину нужно посмотреть в реестре. Отправка полного расчёта без чека предоплаты разрешается только отдельным переключателем. Включайте его лишь для сценария, где первый и единственный чек по заказу действительно должен быть полным расчётом.
Чек не становится подтверждённым сразу после отправки запроса. Ferma обрабатывает его асинхронно; результат поступает через callback или обнаруживается при проверке статуса.
Понадобится:
Начните с тестового контура Ferma. На рабочий контур переходите после проверки всех сценариев и согласования фискальных настроек с ответственным за учёт.
Дождитесь сообщения Joomla об успешной установке или обновлении. Чтобы перейти на страницу расширения: откройте «Компоненты» → «Ferma OFD».
На странице «Главная» до настройки может показываться предупреждение о выключенной фискализации — это нормально.
Если в дальнейшем не появляются события смены статуса заказа, проверьте, что адаптер VirtueMart и системный плагин Ferma OFD включены в менеджере плагинов. Установщик пакета включает их автоматически.
При обновлении установите новый ZIP тем же способом поверх существующего пакета. Настройки и реестр сохраняются, после обновления откройте страницу «Состояние» и проверьте подключение.
Откройте Компоненты → Ferma OFD → Настройки и настройте расширение, подробнее о настройках можно узнать в таблице 2.
Таблица 2. Основные настройки и параметры подключения к Ferma
| Блок / параметр | Что указать и на что влияет |
|---|---|
| Основное → «Включить фискализацию» | Включает автоматическую работу расширения. Пока проверяете настройки, можно оставить выключенным. |
| Основное → «Компонент магазина» | Выбирается автоматически. |
| Основное → «Публичный URL сайта» | Обычно определяется автоматически. Меняйте только если публичный адрес отличается от адреса, который видит Joomla, например при обратном прокси. Из него формируются адреса callback и cron. |
| Подключение к Ferma → «Контур API» | «Тестовый» для проверки, «Рабочий» для настоящих чеков. Не путайте контуры: тестовый чек не заменяет рабочий. |
| «URL тестового API» | По умолчанию указан тестовый адрес Ferma. Меняйте только по инструкции сервиса; у рабочего контура отдельного редактируемого URL нет. |
| «Логин», «Пароль» | Логин и пароль ЛКК Ferma. При последующем сохранении пустое поле пароля сохраняет уже записанный пароль. |
| «ИНН» | ИНН лица, от имени которого формируются чеки. |
После заполнения нажмите «Сохранить настройки». Проверка подключения на странице «Состояние» использует именно сохранённые значения.
Настройка самого чека находится в компоненте, а не в параметрах плагина магазина.
В блоке «Параметры чека» задайте значения, которые будут применяться к позициям заказа, если для товара не настроено индивидуальное значение Ferma (см. таблицу 3).
Таблица 3. Параметры чека
| Параметр | Значение |
|---|---|
| «Система налогообложения» | Система, передаваемая в чек. Она должна соответствовать применяемой продавцом системе. |
| «НДС по умолчанию» | Ставка для товарных позиций без индивидуального НДС Ferma. Доступны «Без НДС», 0%, 5%, 7%, 10%, 22% и расчётные 5/105, 7/107, 10/110, 22/122. Налоговые поля самого магазина и НДС из строки заказа для выбора ставки Ferma не используются. |
| «Расчётный НДС для предоплаты» | Если включён, только в чеке предоплаты обычные ставки переводятся в расчётные: 5% → 5/105, 7% → 7/107, 10% → 10/110, 22% → 22/122. «Без НДС», 0% и уже расчётные ставки не меняются. В чеке полного расчёта обратного преобразования нет. |
| «Предмет расчёта» | Общий признак для товарных позиций: «Товар» или «Услуга». Для доставки есть отдельная настройка. |
| «Вид оплаты» | Форма оплаты для чека. При полном расчёте после подтверждённой предоплаты расширение передаёт зачёт предоплаты. |
| «Единица измерения» | Общая единица для товарных позиций. Для доставки настраивается отдельно. |
| «Полный расчёт без предоплаты» | Разрешает отправить чек полного расчёта первым, когда чека предоплаты нет. По умолчанию выключен. |
В блоке «Доставка в чеке» включите передачу доставки отдельной позицией, если платная доставка входит в расчёт с покупателем. Укажите её наименование, отдельную ставку НДС доставки, предмет расчёта («Услуга» или «Товар») и единицу измерения. При включённом расчётном НДС для предоплаты ставка доставки преобразуется на тех же условиях, что и ставка товара: например, заданные 22% станут 22/122 только в предоплате. «Без НДС» останется «Без НДС». Не отключайте передачу платной доставки, если её сумму нужно фискализировать: состав и сумма чека могут перестать соответствовать заказу.
В блоке «Кассир» при необходимости включите передачу сведений о кассире. Тогда ФИО обязательно; ИНН можно оставить пустым, а заполненный ИНН должен состоять из 10 или 12 цифр.
Индивидуальная ставка нужна, когда ставка отдельного товара отличается от «НДС по умолчанию». Она влияет только на чеки Ferma и не меняет налоговые настройки или цены магазина. Если индивидуальная ставка не указана, применяется значение из настроек Ferma. Переключатель расчётного НДС для предоплаты действует и на индивидуальную обычную ставку. Возврат воспроизводит ставку из исходного чека.
Поле применяется к товарной позиции. Ставку доставки задавайте в блоке «Доставка в чеке», не в карточке товара.
Для каждого события выберите статус именно того момента, когда должен создаваться чек: получение денег, передача товара/оказание услуги, возврат денег. Названия и набор статусов зависят от настроек магазина. Если автоматизация какого-то сценария не нужна, оставьте «Не создавать автоматически» и используйте ручное создание в реестре.
Если заказ сразу получает статус полного расчёта без отдельного статуса предоплаты, проверьте настройку «Полный расчёт без предоплаты». Без неё расширение защитит цепочку и не создаст прямой полный расчёт. Возврат не означает произвольный новый чек: он привязан к ранее созданному чеку этого заказа.
Ferma возвращает результат обработки чека на адрес callback, который расширение формирует автоматически. Посмотреть адрес можно на странице «Состояние». Публичный URL сайта должен указывать на доступный извне адрес Joomla. При блокировке запросов Ferma callback не поступит.
Кнопка «Обновить статусы» в реестре и кнопка обновления отдельного чека позволяют проверить статус вручную. Если выключить проверку по посещениям и не настроить cron, компонент покажет предупреждение об отсутствии резервной проверки.
Не публикуйте и не пересылайте целиком URL callback и cron. Они содержат секретный параметр. Передавать их следует только администратору сервера по защищённому каналу.
Когда заказ переходит в один из настроенных статусов, расширение определяет операцию, собирает данные существующего заказа и отправляет чек в Ferma или ставит зависимый чек в очередь. Простое открытие заказа либо сохранение его без смены статуса не запускает новый чек.
Пример обычного сценария:
Если этап 3 или 4 наступил раньше подтверждения предыдущего чека, следующая операция может появиться в реестре со статусом «Ожидает отправки». Она отправится после подтверждения источника при следующем запуске проверки/очереди. Повторно менять статус заказа только для ускорения очереди не требуется.
Откройте «Ferma OFD» → «Реестр чеков». Здесь показаны подробные детали по заказу.
Кнопка «Подробнее» открывает отдельную страницу с сообщением Ferma, реквизитами чека, временем следующей проверки и сохранёнными техническими данными. Кнопка «Обновить статусы» запускает проверку ожидающих чеков и обработку очереди; для отдельной записи доступна кнопка «Обновить» или «Обновить статус».
Номер заказа и InvoiceId — разные значения. Ссылка «Открыть чек» появляется, когда доступны сведения для её формирования. Отсутствие ссылки само по себе не означает ошибку отправки.
Ручная отправка полезна, если автоматический статус для нужной операции не назначен. Создать произвольный чек без заказа здесь нельзя.
Чек появится в реестре. Если исходный чек уже отправлен и ожидает подтверждения, новая операция будет ожидать отправки в очереди.
Сумма, состав позиций, НДС и контакт покупателя берутся из заказа и настроек Ferma. Перед отправкой проверьте заказ, отдельную ставку доставки и индивидуальные ставки товаров. Если нужной операции нет в списке, откройте уже существующие чеки этого заказа: операция может ждать подтверждения предыдущего чека, быть созданной ранее или блокироваться ошибкой.
Статусы чеков в реестре и рекомендуемые действия приведены в таблице 4.
Таблица 4. Статусы чеков и действия администратора
| Статус в интерфейсе | Что делать |
|---|---|
| «Ожидает отправки» | Зависимый чек находится в очереди. Проверьте исходный чек и работу callback/резервной проверки. Не отправляйте его отдельно. |
| «Ожидает ответа Ferma» | Запрос зарегистрирован; дождитесь callback или обновите статус позднее. |
| «Подтверждён» | Ferma сообщила об успешной обработке чека. Можно продолжать зависимую операцию. |
| «Не отправлен» | Отправка завершилась определённой ошибкой, ReceiptId нет. Исправьте причину и используйте «Повторить отправку», если кнопка показана. |
| «Отправлен: требуется проверка» | Результат отправки неизвестен. Не отправляйте заново: сначала выясните статус по имеющемуся InvoiceId через обновление. |
| «Ошибка ККТ» / «Отклонён Ferma» | Ferma вернула отрицательный итог. Проверьте сообщение и технический ответ, затем обратитесь в поддержку/к ответственному за кассу. Это не тот случай, для которого предназначена кнопка повтора неотправленного чека. |
| «Автопроверка остановлена» | Несколько проверок подряд не нашли документ. Выполните ручную проверку и выясните состояние в Ferma перед любыми новыми действиями. |
| «Заблокирован правилом цепочки» | Предыдущий чек отсутствует или окончательно отклонён; сначала разберитесь с ним. |
Кнопка «Повторить отправку» доступна в реестре и деталях только для чека со статусом «Не отправлен», у которого нет ReceiptId. После исправления причины нажмите её: расширение повторно берёт данные существующего заказа, создаёт новый InvoiceId и использует ту же запись реестра. Если исходный чек для этой операции ещё не подтверждён, повторная операция будет ждать в очереди.
Не используйте повтор для статусов «Ожидает ответа Ferma» и «Отправлен: требуется проверка»: Ferma могла принять первый запрос, и повтор создаст риск второго чека. Сначала обновите статус. При «Ошибка ККТ», «Отклонён Ferma» или неясном результате сверьте ситуацию с Ferma и поддержкой, а не меняйте статус заказа наугад.
Если чек не появился или не подтверждается:
Версия 1.0
Выпущена 08 октября 2018 г.
Первая отслеживаемая версия документа.
Версия 2.0
Выпущена 28 сентября 2026 г.
Документ обновлен под новую версию расширения.