Доступ к товарам и услугам

Доступ к товарам и услугам через АПИ

Cтруктура моделей, назначение полей

Модель Good (инфо. товара/услуги)

Модель Good — представляет товар, услугу, сейчас небольшими доработками внедряется поддержка прочих ТМЦ.

* @property integer $id // ИД продукта
* @property integer $group_id // ИД группы в которой находится продукт - Принадлежит GoodGroup
* @property string $title // Название товара
* @property integer $unit_storage_id // Единица в которой товар хранится на складе - Принадлежит Unit
* @property integer $is_warehouse_account // Вести учет этого товара на складе?
* @property integer $is_active // Товар активен?
* @property string $code // Артикул товара
* @property integer $category_id // ИД Категории для зарплаты, если она переопределяется у товара
* @property integer $is_call // Относится ли этот товар или услуга к вызову
* @property string $barcode // Штрихкод товара
* @property integer $is_for_sale // Подлежит ли товар продаже?
@property string $description // описание
@property decimal prime_cost // себестоимость


Содержит многие GoodSaleParam

Модель GoodGroup (инфо. группы товара/услуги)

Модель GoodGroup — представляет группу товаров или услуг

* @property integer $id // ИД групы
* @property string $title // Название группы
* @property integer $price_id // ИД категории (наименование будет изменено, использовать не рекомендуется)
* @property integer $is_service // Группа товаров, или услуг
* @property double $markup // Наценка на группу товаров, справочное поле для склада
@property integer $is_show_in_vaccines // определяет будут ли товары из этой группы отображаться в списке вакцин. Значения 0/1

Модель GoodSaleParam (параметры продажи товара)

Модель GoodSaleParam — представляет параметр продажи

* @property integer $id // ИД
* @property integer $good_id // ИД товара - Принадлежит Good
* @property double $price // Цена основная
* @property double $coefficient // Коэффициент пересчета для списания со склада.
* @property integer $unit_sale_id // ИД. ед. измерения - принадлежит Unit
* @property double $min_price // Минимальная цена - указывается для возможности редактирования цены прям со счета
* @property double $max_price // Максимальная цена - указывается для возможности редактирования цены прям со счета
* @property string $barcode // Штрих-код
* @property string $status // Статус ('active','disabled')
* @property int $clinic_id // ИД Клиники
@property double $markup // процент наценки
@property string $price_formation // параметр определяет цена с наценкой или фиксированная. значения: increase, fixed
При значении поля fixed - поле $markup должно быть равно 0, поле $price должно быть больше 0
При значении поля increase - поле $markup должно быть больше 0, поле $price должно быть равно 0

Модель Unit (ед. измерения)

Модель Unit — представляет единицу измерения

* @property integer $id //ИД
* @property string $title // Название

Примеры запросов

Пример получения данных по товару

curl --location --request GET 'https://{DOMAIN NAME}/rest/api/Good/485' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'

Ответ сервера

{
     "success": true,
     "message": "Record Retrieved Successfully",
     "data": {
          "totalCount": 1,
          "good": {
               "id": "485",
               "group_id": "30",
               "title": "Остеосинтез бедра, плеча (с) (min)",
               "unit_storage_id": "7",
               "is_warehouse_account": "1",
               "is_active": "1",
               "code": "",
               "is_call": "0",
               "is_for_sale": "1",
               "barcode": null,
               "create_date": null,
               "description": "",
               "prime_cost": "0.0000000000",
               "category_id": null,
               "group": {
                    "id": "30",
                    "title": "Ортопедия",
                    "is_service": "0",
                    "markup": null,
                    "is_show_in_vaccines": "0",
                    "price_id": "42"
               },
               "unitStorage": {
                    "id": "7",
                    "title": "шт",
                    "status": "active"
               },
               "goodSaleParams": [
               {
                    "id": "1",
                    "good_id": "485",
                    "price": "3000.0000000000",
                    "coefficient": "1",
                    "unit_sale_id": "7",
                    "min_price": "0.0000000000",
                    "max_price": "0.0000000000",
                    "barcode": null,
                    "status": "active",
                    "clinic_id": "1",
                    "markup": "0.0000000000",
                    "price_formation": "fixed"
               }
          ]
          }
     }
}


Пример добавления товара

После добавления товара/услуги нужно добавить параметр продажи для этого товара. Для услуги можно добавить параметр продажи только с фиксированной ценой.

curl --location --request POST 'https://{DOMAIN NAME}/rest/api/Good' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}' \
--data-raw '{
"group_id":53,
"title":"товар003",
"unit_storage_id":0,
"is_warehouse_account":0,
"is_active":1,
"code":"",
"category_id":,
"is_call":0,
"is_for_sale":1,
"barcode":"",
"description":"",
"prime_cost":0
}'


Ответ сервера

{
     "success": true,
     "message": "Record(s) Created",
     "data": {
          "totalCount": 1,
          "good": [
          {
               "is_warehouse_account": 0,
               "is_active": 1,
               "is_call": 0,
               "is_for_sale": 1,
               "prime_cost": 0,
               "group_id": 53,
               "title": "товар003",
               "unit_storage_id": 0,
               "code": "",
               "barcode": "",
               "description": "",
               "id": "5382",
               "create_date": null,
               "category_id": null
          }
          ]
     }
}

Создание товара:
Обязательное поле: title.

Обновление товара:
Нет обязательных полей (но как минимум одно поле нужно передать).

Пример goodGroup

curl --location --request GET 'https://{DOMAIN NAME}/rest/api/goodGroup/27' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'

Ответ сервера

{
     "success": true,
     "message": "Record Retrieved Successfully",
     "data": {
          "totalCount": 1,
          "goodGroup": {
               "id": "27",
               "title": "Стоматология",
               "is_service": "0",
               "markup": null,
               "is_show_in_vaccines": "0",
               "price_id": "5"
          }
     }
}

Пример добавления группы товаров для вакцин

curl --location --request POST 'https://{DOMAIN NAME}/rest/api/goodGroup' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'
--data-raw '{
"title": "Группа вакцин 02",
"is_service":0,
"is_show_in_vaccines":1
}

Ответ сервера

{
     "success": true,
     "message": "Record(s) Created",
     "data": {
          "totalCount": 1,
          "goodGroup": [
          {
               "is_service": 0,
               "is_show_in_vaccines": 1,
               "title": "Группа вакцин 02",
               "id": "73",
               "markup": null,
               "price_id": null
          }
          ]
     }
}

Список обязательных полей

Создание товара:
Обязательное поле: title.

Обновление товара:
Невозможно редактировать группу

Пример goodSaleParam

curl --location --request GET 'https://{DOMAIN NAME}/rest/api/goodSaleParam/1' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'

Ответ сервера

{
     "success": true,
     "message": "Record Retrieved Successfully",
     "data": {
          "totalCount": 1,
          "goodSaleParam": {
               "id": "1",
               "good_id": "485",
               "price": "3000.0000000000",
               "coefficient": "1",
               "unit_sale_id": "7",
               "min_price": "0.0000000000",
               "max_price": "0.0000000000",
               "barcode": null,
               "status": "active",
               "clinic_id": "1",
               "markup": "0.0000000000",
               "price_formation": "fixed",
               "unitSale": {
                    "id": "7",
                    "title": "шт",
                    "status": "active"
               },
               "good": {
                    "id": "485",
                    "group_id": "30",
                    "title": "Остеосинтез бедра, плеча (с) (min)",
                    "unit_storage_id": "7",
                    "is_warehouse_account": "1",
                    "is_active": "1",
                    "code": "",
                    "is_call": "0",
                    "is_for_sale": "1",
                    "barcode": null,
                    "create_date": null,
                    "description": "",
                    "prime_cost": "0.0000000000",
                    "category_id": null
               }
          }
     }
}


Пример запроса добавления параметра продажи с фиксированной ценой

curl --location --request POST 'https://{DOMAIN NAME}/rest/api/GoodSaleParam' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'
--data-raw '{
     "good_id": 5379,
     "price":500,
     "coefficient":1,
     "unit_sale_id":7,
     "min_price":0,
     "max_price":0,
     "barcode":"",
     "status":"active",
     "clinic_id":1,
     "markup":0,
     "price_formation":"fixed"
}'


Ответ сервера

{
     "success": true,
     "message": "Record(s) Created",
     "data": {
          "totalCount": 1,
          "goodSaleParam": [
     {
          "good_id": 5379,
          "coefficient": 1,
          "unit_sale_id": 7,
          "status": "active",
          "clinic_id": 1,
          "price_formation": "fixed",
          "price": 500,
          "min_price": 0,
          "max_price": 0,
          "barcode": "",
          "markup": 0,
          "id": "1040"
          }
          ]
     }
}


Пример запроса добавления параметра продажи с наценкой

curl --location --request POST 'https://{DOMAIN NAME}/rest/api/GoodSaleParam' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'
--data-raw '{
     "good_id": 5379,
     "price":0,
     "coefficient":1,
     "unit_sale_id":7,
     "min_price":0,
     "max_price":0,
     "barcode":"",
     "status":"active",
     "clinic_id":1,
     "markup":2,
     "price_formation":"increase"
}'


Ответ сервера

{
     "success": true,
     "message": "Record(s) Created",
     "data": {
          "totalCount": 1,
          "goodSaleParam": [
     {
          "good_id": 5379,
          "coefficient": 1,
          "unit_sale_id": 7,
          "status": "active",
          "clinic_id": 1,
          "price_formation": "increase",
          "price": 0,
          "min_price": 0,
          "max_price": 0,
          "barcode": "",
          "markup": 2,
          "id": "1041"
     }
     ]
  }
}


Пример unit

curl --location --request GET 'https://{DOMAIN NAME}/rest/api/unit/7' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'

Ответ сервера

{
     "success": true,
     "message": "Record Retrieved Successfully",
     "data": {
          "totalCount": 1,
          "unit": {
               "id": "7",
               "title": "шт",
               "status": "active"
          }
     }
}


Пример получения цены продажи

curl --location --request GET 'https://{DOMAIN NAME}/rest/api/Good/GoodSalePriceByIdSaleParamIdClinicId?good_id=1&good_sale_param_id=1&clinic_id=1&quantity=1' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'

Ответ сервера

{
     "success": true,
     "message": "Records Retrieved Successfully",
     "data": {
          "totalCount": 3,
          "good_sale_price_info": {
               "price": 0,
               "min_price": "0.0000000000",
               "max_price": "0.0000000000"
          }
     }
}


Powered by