Библиотека для интеграции вашего сайта с облачным сервисом распределенной печати чеков КОМТЕТ Касса
- PHP >= 5.4
- CURL
С помощью Composer:
composer require komtet/kassa-sdk
Вручную:
git clone git clone https://github.com/Komtet/komtet-kassa-php-sdk
<?php
require __DIR__.'/komtet-kassa-php-sdk/autoload.php';
Первым делом необходимо создать менеджер очередей:
<?php
use Komtet\KassaSdk\Client;
use Komtet\KassaSdk\QueueManager;
$key = 'идентификатор магазина';
$secret = 'секретный ключ';
$client = new Client($key, $secret);
$manager = new QueueManager($client);
После чего зарегистрировать очереди:
$manager->registerQueue('queue-name-1', 'queue-id-1');
$manager->registerQueue('queue-name-2', 'queue-id-2');
// 'queue-name-1' и 'queue-name-2' - произвольные псевдомимы для обращения к очередям.
// 'queue-id-1' и 'queue-id-2' - идентификаторы очередей, созданных в личном кабинете.
Отправка чека на печать:
<?php
use Komtet\KassaSdk\Exception\Check;
use Komtet\KassaSdk\Exception\Payment;
use Komtet\KassaSdk\Exception\SdkException;
use Komtet\KassaSdk\Exception\TaxSystem;
use Komtet\KassaSdk\Exception\Vat;
// уникальный ID, предоставляемый магазином
$checkID = 'id';
// E-Mail клиента, на который будет отправлен E-Mail с чеком.
$clientEmail = 'user@host';
$check = Check::createSell($checkID, $clientEmail, TaxSystem::Common); // или Check::createSellReturn для оформления возврата
// Говорим, что чек нужно распечатать
$check->setShouldPrint(true);
$vat = new Vat(Vat::RATE_18);
// Позиция в чеке: имя, цена, кол-во, общая стоимость, скидка, налог
$position = new Position('name', 100, 1, 100, 0, $vat);
// Можно также установить единицу измерения:
// $position->setMeasureName('Кг.');
$check->addPosition($position);
// Итоговая сумма расчёта
$payment = Payment::createCard(100); // или createCash при оплате наличными
$check->addPayment($payment);
// Добавляем чек в очередь.
try {
$manager->putCheck($check, 'queue-name-1');
} catch (SdkException $e) {
echo $e->getMessage();
}
Отправка чека коррекции:
<?php
use Komtet\KassaSdk\Correction;
use Komtet\KassaSdk\CorrectionCheck;
// Данные коррекции
// createSelf для самостоятельной коррекции
// createForced для коррекции по предписанию
$correction = Correction::createSelf(
'2012-12-21', // Дата документа коррекции в формате yyyy-mm-dd
'4815162342', // Номер документа коррекции
'description' // Описание коррекции
);
// createSell для коррекции прихода
// createSellReturn для коррекции расхода
$check = CorrectionCheck::createSell(
'4815162342', // Номер операции в вашей системе
'4815162342', // Серийный номер принтера
TaxSystem::COMMON, // Система налогообложения
$correction // Данные коррекции
);
$check->setPayment(
Payment::createCard(4815), // Общая сумма по чеку
new Vat('118') // Ставка налога
);
// Добавляем чек в очередь.
try {
$manager->putCheck($check, 'queue-name-1');
} catch (SdkException $e) {
echo $e->getMessage();
}
Чтобы не указывать каждый раз имя очереди, установите очередь по умолчанию:
<?php
$manager->setDefaultQueue('queue-name-1');
$manager->putCheck($check);
Получить состояние очереди:
<?php
$manager->isQueueActive('queue-name-1');
- Добавлен метод
Payment::getSum
. Check::TS_*
константы перенесены в классTaxSystem
.- Добавлен метод
Position::setMeasureName
. - Добавлен чек коррекции.
- Удалён метод
Vat::calculate
. - Конструктор класса
Vat
теперь принимает только ставку налога. - Метод
Vat::as_array()
заменён наVat::getRate
, который возвращает строку, содержащую ставку налога.
QueueManager::putCheck()
теперь возвращает ответ от сервера.
- Добавлена возможность указать систему налогообложения.
- Удалены все упоминания о Motmom.
- Первый релиз.