Skip to content

Instantly share code, notes, and snippets.

@stepun
Last active November 21, 2018 15:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save stepun/0bdedf0a1ec27ba0cbae765287aaa226 to your computer and use it in GitHub Desktop.
Save stepun/0bdedf0a1ec27ba0cbae765287aaa226 to your computer and use it in GitHub Desktop.

Set transaction by Product

Проводка операции по номенклатурному номеру с автоматическим добавлением номенклатуры в случае ее отсутсвия. Если операция (расхода) и на складе нет остатка то образуется минусовой баланс! При операции возврат используются следующие параметры: document_number | document_date | document_time | document_date_r | document_number_r при частичном возврате передается массив goods в котором передается идентификатор товара product_id и количество count

Resource URL

https://storencash.com/api/v1_product.json?action=setTransaction

Resource Information

  • Response formats JSON
  • Requires authentication? Yes

Parameters

Name Require Type Description
sabor_kid yes int(10) default = 0. Идентификатор контрагента.
sabor_rid yes int(10) default = 1. Идентификатор резидента (по-умолчанию идентификатор вашей организации из справочника организаций).
storage_id yes int(10) default - 0. Идентификатор склада (магазина), на который (с которого) делает приход (расход).
operation_id yes int(10) НЕТ. Идентификатор операции.
document_number no String(10) default Номер документа по-умолчанию устанавливается в номер транзакции.
document_date no Date(d.m.Y) or (YYYY-mm-dd) Дата документа по-умолчанию устанавливает текущую дату. Если передаваемые номер и дата документа совпадают с существующими в системе то они будут добавлены в сущесвующую транзакцию!!!
🆕document_number_r yes String(10) default Номер документа по которому производится возврат. Обязательный при операции ТОЧНЫЙ ВОЗВРАТ API
🆕document_date_r no Date(d.m.Y) or (YYYY-mm-dd) Дата документа по которому производится возврат. Обязательный при операции ТОЧНЫЙ ВОЗВРАТ API
document_time no String(10) default (00:00:00) Время документа.
susers_id no int(10) Сотрудник совершающий транзакцию. По умолчанию администратор системы (первый зарегистрированный пользователь)
email no String(100) Сотрудник совершающий транзакцию (email). Если такого нет, создается новый
username no String(40) Имя (ФИО) сотрудника совершающего транзакцию. Учитывается только в связке с email.
pay_type no int(3) default - 0 Тип оплаты 0 - безнал, 1 - наличные, 2 - карточка
device_id no varchar(100) default - null Уникальный идентификатор устройства (касса, терминал и тд)
🆕currency no int(10) default - 1 Уникальный идентификатор валюты в системе. Валюта транзакции (операции).
🆕course no double defauly - 1. Текущий курс валюты, если не передается то берется курс валюты выставленный в кабинете.
ext_data no text default - null json массив с любым набором данных пример: [{"transaction_id": 16334,"card_type":1, "card_number":****1212}]
goods no array default - null. Массив номенклатур, входящих в транзакцию.

Goods parameters

Name Require Type Description
product_id yes int(10) default - 0. Идентификатор номенклатуры
measureId yes int(10) default - 0. Идентификатор единицы измерения
price_p no double default - 0. Закупочная цена (учетная).
container no varchar(32) default - "". Идентификатор контейнера, необходим для операции возврата - явное указание товарной позиции.
price yes double default - 0. Цена продажи с учетом персональной скидки (discount_item).
price_d no double default - 0. Цена продажи исходная без учета персональной скидки (discount_item).
discount_item no double default - 0. Персональная скидка единицы товара в денежных единицах в валюте продажи (discount_item).
count yes double default - 0. Количество товара(услуг) в указанных единицах измерения.
remains_barcode no String(15) default - '' Штрихкод контейнера
stnds no Int(2) default - 0 Ставка НДС
sumnds no double default - 0 Сумма НДС
properties no array default - null. Массив свойств {0:{value_id:935, level_id:2}} где value_id это идентификатор значения свойства data:collection:id, level_id - идентификатор уровня дерева свойств data:collection:level_id

Example Request

Example Request for snc-sdk-php

/**
 * Операция "продажа" (operation_id == 3) остатков на "Основной склад" (storage_id == 1)
 */
$client = new SyncSnc();
$params = [
    'sabor_kid'     => 26,
    'sabor_rid'     => 1,
    'storage_id '   => 1,
    'operation_id'  => 1,
    'document_number' => '',
    'document_date' => '28.11.2015',
    'device_id' => 'DR5000',
    'ext_data' => json_encode(["card_type" => "Visa"])
    'goods'         => [
        [
            'product_id'    => 317,
            'measureId'     => 106,
            'price_p'       => 350,
            'price'         => 520,
            'count'         => 1,
            'remains_barcode'       => '7100000000147',
            'stnds'         => 10,
            'properties'    => [['value_id' => 576, 'level_id' => 2]],
        ],
        [
            'product_id'    => 317,
            'measureId'     => 106,
            'price_p'       => 350,
            'price'         => 520,
            'count'         => 2,
            'remains_barcode'       => '7100000000148',
            'stnds'         => 10,
            'properties'    => [['value_id' => 577, 'level_id' => 2]],
        ],
    ],
];
$response = $client->getClient()->postApi('v1_product.json?action=setTransaction', null, null, $params);

Example Result

{
    "status": "success",
    "data": {
        "transaction_id": 22
    }
}

Error codes

Code Description
'10000' Неизвестная операция
'10001' Операция возврата по данной транзакции уже совершена
'10002' Транзакции с данным номером не найдено
'10003' Ошибка удаления транзакции
'10004' Запрос на список транзакций пуст
'10005' Ошибка создания транзакции
'10006' Не передан список аргументов транзакции
'10007' Неверный или не корректный JSON
'10008' ID склада не должен быть пустым
'10009' Не передан массив товара для операции
'10010' Склад с таким ID не существует
'10011' ID номенклатуры не должено быть пустым
'10012' Номенклатуры с таким ID не существует
'10013' Переданная единица измерения не совпадает с номенлатурной
'10014' Единицы измерения с таким ID не существует
'10015' Цена продажи должна быть в формате цифр
'10016' Цена закупки должна быть в формате цифр
'10017' Количество товара должно быть в формате цифр
'10018' Операции с таким ID не существует

####Example error response

{
  "errors": [{
      "code": "10010",
      "message": "Склад с таким ID не существует"
    }],
  "status": "error",
  "message": "Склад с таким ID не существует"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment