Download the PHP package mygento/module-kkm without Composer

On this page you can find all versions of the php package mygento/module-kkm. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package module-kkm

Build Status Latest Stable Version Total Downloads

Модуль интеграции Онлайн касс для Magento 1/2

Модуль разрабатывается для полной поддержки требований 54 ФЗ интернет-магазинами на Magento 1 и 2 для сервисов:

Функциональность модуля

Передача данных в Онлайн кассу

Повторная передача данных в Онлайн кассу (Resell)

(Не путать с чеком коррекции)

Получение данных из АТОЛ

Получение данных из Чеконлайн

Работа сервиса Чеконлайн построена по синхронному принципу, понятие «статус» документа в сервисе отсутствует. Вместо этого используются кэширование ответов. Ключём кэша являются поля Group, RequestId, ClientId, что значит, что если будут отправлены запросы с одинаковыми указанными полями, то сервис ответит данными из кэша. В кэш помещаются успешные ответы и некоторые ошибки устройства Ккм (см. документацию Чеконлайн)

Процесс отправки данных в Онлайн кассу

  1. На основании сущности Invoice или Creditmemo формируется объект Mygento\Kkm\Api\Data\RequestInterface. 1.1. При асинхронной передаче - объект помещается в очередь (см. Magento Queue Framework) 1.2. При синхронной передаче - передается классу Vendor для отправки

  2. Регистрируется попытка отправки данных. Создается сущность Api\Data\TransactionInterface\TransactionAttemptInterface со статусом NEW (1)

  3. Осуществляется передача данных в виде JSON.

    3.1. В случае УСПЕШНОЙ передачи (один из HTTP статусов [200, 400, 401])

    • создается транзакция - сущность Magento\Sales\Api\Data\TransactionInterface в который записываются уникальный идентификатор запроса (UUID - Атол; RequestId - Чеконлайн) и все данные о передаче. В админке это грид Sales -> Transactions.
    • Сущность попытки отправки TransactionAttemptInterface получает статус Sent (2)
    • Создается комментарий к заказу
    • Транзакция получает в ККМ-статус (kkm_status):

      • Атол - wait
      • Чеконлайн - done

      3.2. В случае НЕУСПЕШНОЙ передачи (статусы отличные от [200, 400, 401] (так же 500 для Чеконлайн), отсутствие ответа от сервера, некорректные данные в инвойсе или возврате)

    • Сущность попытки отправки TransactionAttemptInterface получает статус Error (3)
    • Создается комментарий к заказу с описанием причины ошибки
    • Заказ получает статус "KKM Failed"
    • Если выброшено исключение VendorBadServerAnswerException (сервер не отвечает и еще в некоторых случаях) и включена асинхронная передача - то отправка будет снова помещена в очередь.
    • Если выброшено исключение VendorNonFatalErrorException и включена асинхронная передача - то:
      • Атол - выполняется генерация нового external_id и отправка будет снова помещена в очередь.
      • Чеконлайн - Сущность транзакции получает статус wait и отправка снова помещается в очередь без генерации нового external_id, т.к. ответ с нефатальной ошибкой не кэшируется. Так же при работе «облачного» сервиса Чеконлайн могут возникать ошибки возвращающие HTTP код 500 и структуру, содержащая поля: FCEError, ErrorDescription, Device и Fatal. Поле Fatal со значением true показывает, что повторное выполнение запроса приведёт к ошибке. Если поле Fatal равно false то отправка так же помещается в очередь.
  4. Только Атол. Модуль автоматически запрашивает у АТОЛа статус по всем транзакциям с ККМ-статусом wait

    4.1 Попытки обновления статуса прекращаются, когда транзакция получает статус done

    4.2 Максимальное количество попыток настройкой модуля ККМ.

  5. В случае НЕУСПЕШНОЙ передачи выполняется несколько попыток отправки с увеличивающимися интервалами (например через 1 минуту, 5 минут, 15 минут, 30 минут, 1 час).

    5.1 Настройка интервалов доступна в настройках модуля ККМ.

    5.2 Максимальное количество попыток отправки тажке ограничего настройкой модуля ККМ.

    5.3 В случае, когда достигается максимальное количество попыток отправки, счетчик попыток обнуляется и отправка возобновляется через сутки.

Процесс повторной отправки данных (Resell)

Работает только для тех чеков, которые были отправлены и имеют статус Done.

  1. На основании Invoice создается чек возврата (refund) и отправляется в Онлайн кассу.
  2. Создается новая запись Payment Transaction, дочерняя от предыдущей отправки sell по этому инвойсу.
  3. Когда статус отправки из п.1 становится Done (Для Чеконлайн статус отправки сразу становится Done в случае успеха) - формируется и отправляется новый чек прихода (sell).
  4. Для нового чека прихода создается новая запись Payment Transaction, дочерняя от транзакции для чека возврата (п.2).
  5. Resell считается завершенным, если новый чек прихода (п.3) получает статус Done. Обновление статуса происходит так же как и во всех остальных случаях (Для Чеконлайн обновление статуса не происходит т.к. работа сервиса устроена по синхронному принципу)

Отчеты

Модуль отправляет отчеты об отправленных данных в Онлайн кассу на емейл (в конфиге). Неуспешные отправки отображаются в этом же письме с доп.деталями. Также этот отчет можно посмотреть в консоли.

Поддержка новых версий сервиса АТОЛ Онлайн

Модуль поддерживал версии сервиса v3 и v4. Если выйдет новая версия, необходимо сделать след.шаги:

  1. создать class RequestForVersionX наследник абстрактного класса Request
  2. релилизовать его JSON представление - метод jsonSerialize()
  3. добавить создание объекта реквеста в Mygento\Kkm\Model\Atol\RequestFactory
  4. добавить инфу о новой версии сервиса в сурс модель Mygento\Kkm\Model\Source\ApiVersion

Использование очередей

Ручная отправка данных

Логирование сообщений

Список Rewrite

нет

Список событий и плагинов, Описание действий и причины

События

Плагины

Список доступных реализованных API

нет

Список встроенных тестов, что и как они тестируют

нет

Cron-процессы

Консольные команды


All versions of module-kkm with dependencies

PHP Build Version
Package Version
Requires mygento/module-base Version ~2.4.0
magento/framework-message-queue Version 100.4.*
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package mygento/module-kkm contains the following files

Loading the files please wait ....