298  /  359

Собственный обработчик онлайн-кассы

Просмотров: 1425 (Статистика ведётся с 06.02.2017)
Татьяна Старкова
Сложность урока:
4 уровень - сложно, требуется сосредоточится, внимание деталям и точному следованию инструкции.
1
2
3
4
5

Не подходит стандартный обработчик онлайн-кассы? Используйте API продукта и напишите свой обработчик. Для этого вам необходимо:

  • Унаследовать класс \Bitrix\Sale\Cashbox\Cashbox и реализовать необходимые методы:
    Примечание: дополнительно вы можете использовать следующие интерфейсы:
    • \Bitrix\Sale\Cashbox\IPrintImmediately - необходим для отправки чека на печать сразу же после его создания;
    • \Bitrix\Sale\Cashbox\ICheckable - необходим, если требуется запрашивать информацию о результатах печати чека.
    class CashboxCustom extends Cashbox implements IPrintImmediately, ICheckable
    {
    	/**
    	 * @param Check $check
    	 * @return array
    	 */
    	public function buildCheckQuery(Check $check)
    	{
    		// построение запроса с информацией по чеку
    	}
    
    	/**
    	 * @param $id
    	 * @return array
    	 */
    	public function buildZReportQuery($id)
    	{
    		// построение запроса на печать z-отчета
    		// если печать z-отчета не требуется, возвращается пустой массив
    	}
    	
    	public function printImmediately(Check $check)
    	{
    		// алгоритм отправки чека на печать
    	}
    	
    	public function check(Check $check)
    	{
    		// алгоритм запроса состояния чека
    	}
    
    	/**
    	 * @return string
    	 */
    	public static function getName()
    	{
    		// название обработчика
    		return Localization\Loc::getMessage('SALE_CASHBOX_CUSTOM_TITLE');
    	}
    	
    	/**
    	 * @param array $data
    	 * @throws Main\NotImplementedException
    	 * @return array
    	 */
    	protected static function extractCheckData(array $data)
    	{
    		// извлечение данных по чеку дальнейшего сохранения
    	}
    }
  • Подключить обработчик кассы к системе с помощью события OnGetCustomCashboxHandlers. Обработчик события должен возвращать массив вида: array(полное_имя_класса => путь_к_файлу):
    function myCashboxFunction()
    {
        return new \Bitrix\Main\EventResult(
           \Bitrix\Main\EventResult::SUCCESS,
           array(
               '\CashboxCustom' => '/bitrix/php_interface/include/cashboxcustom.php',
           )
       );
    }
    

В результате в административном разделе сайта в настройках кассы появится ваш обработчик.



0
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии