API за връзка с програма ЯНАК

Основният URL за всички заявки е: https://api.eyanak.com:5555/e-shop/api/

#Заявка за взимане на JWT Bearer токен: POST https://api.eyanak.com:5555/e-shop/api/login
[
’email’ => string [‘required’]
‘username’ => string [‘required’]
]
— Токен-а е валиден 12 часа и след изтичането му, всяка заявка към api-то ще връща грешка 401 или 500.
— Всяка следваща заявка към api-то, трябва да изпраща хедър:
“Authorization: Bearer token”

Контролери за стоки и групи.

# Заявка за взимане на групи GET https://api.eyanak.com:5555//e-shop/api/groups

[
‘stockID’ => int,
];

# Взимане на информация за стока GET https://api.eyanak.com:5555//e-shop/api/stock

[
‘stockID’ => int,
‘selbuy_id’ => int,
];

# Заявка за взимане на всички стоки GET https://api.eyanak.com:5555/e-shop/api/getstocks
[
‘warehouseID’ => 0,
‘groups’ => [],
‘filters’ => [],
‘filterByName’ => ”,
‘currentPage’ => 1,
‘itemsPerPage’ => 1000000,
‘countItems’ => true,
‘showFilters’ => true,
‘orderBy’ => 1,
‘minPrice’ => -1,
‘maxPrice’ => -1
]

Respons:
“items”: [
{
“quantity” => int
-количество
“id” => int,
-номер на стоката за последващи заявки
“name” => string
-име на стоката
“description” => string
описание ( попълва се в програма Янак)
“groupID” => int
-номер на групата
“basicPrice” => int
-базова цена на стоката
“price” => int
-цена след ценова листа
“specification” => int

“stkType” => int
-тип на стоката
1=>Стандартна
2=>Пакетна
3=>Рецепта
4=>Производствена
7=>Услуга
14=>Пакет за избор
15=>Пакетно меню по изборът с фиксирана цена

“code” => int
-1-ви баркод на стоката
“code_2” => int
-2-ри баркод на стоката
“stk_sellprice_2” => int
-2-ра продажна цена
“stk_sellprice_3” => int
-3-та продажна цена
},

# Заявка за взимане на всички стоки (лека версия) POST https://api.eyanak.com:5555//e-shop/api/getstockslite

[

‘includepricelist” = true

‘last_change_date’ = дд.мм.гггг чч:мм:сс

#От коя дата напред да гледа за промяна в стоката.

‘warehouse_id’=int

#Ако искаме да филтрираме по определен склад. Това id се взима чрез https://api.eyanak.com:5555//e-shop/api/getwarehouseid/

]

# Заявка за взимане всички складове POST https://api.eyanak.com:5555//e-shop/api/getwarehouseid/

[]

# Заявка за взимане на стоки от група GET https://api.eyanak.com:5555//e-shop/api/stocks

[
current_page => int,
posts_per_page => int,
filter_by_name => string,
groups => [],
ys_filters => array,
min_price => double,
max_price => double,
orderby: int
];

— Пример
[
current_page => 1,
posts_per_page => 100000,
filter_by_name => “”,
groups => [10],
ys_filters => [],
min_price => -1,
max_price => -1,
orderby => 1,
]

# Заявка за добавяне на стока към количка POST https://api.eyanak.com:5555//e-shop/api/cart

[
'sessionID' => уникална сесия за потребителя генерирана от сайта
'stockID' => int,
'customerID' => int (праща се или id-то на фирмата, ако няма 0)
'quantity' => float
'information' => '' (празен стринг)
'additions' => [] (празен масив)
'is_eshop' => bool (true)
'rootStockID' => 0
];

# Заявка за добавяне на стока към количка със свободна цена. POST https://api.eyanak.com:5555//e-shop/api/cart_b

[
‘sessionID’ => уникална сесия за потребителя генерирана от сайта
‘stockID’ => int,
‘customerID’ => int (праща се или id-то на фирмата, ако няма 0)
‘quantity’ => float
‘information’ => ” (празен String)
‘additions’ => [] (празен масив)
‘rootStockID’ => 0
‘is_eshop’ => bool (true)
‘price’ => int, (свободна цена на артикула)
];

# Заявка за редактиране на количеството на стока в количката PUT https://api.eyanak.com:5555//e-shop/api/cart
[
‘id’ => int (id-то на реда на стоката в количката)
‘quantity’ => (новото количество)
]

# Заявка за изтриване на стока от количката DELETE https://api.eyanak.com:5555//e-shop/api/cart
[
‘id’ => int (id-то на реда на стоката в количката)
]

# Заявка за взимане на всички стоки в количката GET https://api.eyanak.com:5555//e-shop/api/cart
[
‘sessionID’ => уникална сесия за потребителя генерирана от сайта,
‘customerID’ => int (id на фирмата, ако няма 0)
]

# Заявка за информация на направената поръчка GET http://eyanak.com/e-shop/api/order
[
‘docID’ => int (id-to на ордера)
]

# Заявка за създаване на поръчка POST https://api.eyanak.com:5555//e-shop/api/order

[
‘sessionID’ => уникална сесия за потребителя генерирана от сайта
‘ip’ => ip на потребителя [‘required’]
‘warehouseID’ => ip на потребителя [‘required’]
’email’ => email на потребителя [‘required’]
‘customerID’ => id на фирмата, ако няма 0 [‘required’]
‘total’ => Обща сума за плащане [‘required’]
‘paymentMethod’ => 1 [‘required’]
‘orderInfo’ => String; [‘required’]
‘FiscalDevice’ => 1 (Тремол) 2 (Елтрейд) 3(Датекс) [‘required’]
‘FiscalDeviceID’ => Номер на ФУ в FiscalServer (програма за комуникация между ФУ и програма Янак) [‘required’]
‘IPAdress’ => IP на компютър където е закачено ФУ [‘required’]
‘port’ => Порт на FiscalServer. Принципно е 9009 [‘required’]
]

Контролери за вход на потребител. Използват се за прихващане на персонални промоции.

# Заявка за вход на потребител: POST https://api.eyanak.com:5555//e-shop/api/user/login

[
’email’ => string [‘required’]
‘password’ => string [‘required’]
];

# Заявка за регистрация на потребител: POST https://api.eyanak.com:5555//e-shop/api/user
[
’email’ => string [‘required’]
‘password’ => string [‘required’, ‘minlength’ => 6, ‘maxlength’ => 50]
‘password_2’ => string
‘full_name’ => string [‘required’, ‘maxlength’ => 50]
‘phone’ => string [‘required’]
‘delivery_address’ string [‘required’, ‘minlength’ => 6, ‘maxlength’ => 500]
‘is_company’ => boolean
];

–Ако user-a има фирма параметъра ‘is_company’ се сетва на true и се добавят:
[
‘company_name’ => string [‘required’, ‘minlength’ => 2, ‘maxlength’ => 500]
‘company_mol’ => string [‘required’, ‘minlength’ => 2, ‘maxlength’ => 50]
‘company_bulstat’ => string [‘required’]
‘dds’ => boolean
‘vatnumber’ => string [‘required’]
‘company_address’ string [‘required’, ‘minlength’ => 6, ‘maxlength’ => 500]
]

# Заявка за добавяне на фирма към потребител POST https://api.eyanak.com:5555//e-shop/api/customer

$inputs = [
‘userID’ => int (id на потребителя)
‘company_name’ => string [‘required’, ‘minlength’ => 2, ‘maxlength’ => 500]
‘company_mol’ => string [‘required’, ‘minlength’ => 2, ‘maxlength’ => 50]
‘company_bulstat’ => string [‘required’]
‘company_address’ => string [‘required’, ‘minlength’ => 6, ‘maxlength’ => 500]
‘dds’ => boolean
‘vatnumber’ => string [‘required’]
‘company_address’ => string [‘required’, ‘minlength’ => 6, ‘maxlength’ => 500],
];

# Заявка за редактиране на фирма потребител PUT https://api.eyanak.com:5555//e-shop/api/customer

$inputs = [
‘userID’ => int (id на потребителя)
‘company_name’ => string [‘required’, ‘minlength’ => 2, ‘maxlength’ => 500]
‘company_mol’ => string [‘required’, ‘minlength’ => 2, ‘maxlength’ => 50]
‘company_bulstat’ => string [‘required’]
‘company_address’ => string [‘required’, ‘minlength’ => 6, ‘maxlength’ => 500]
‘dds’ => boolean
‘vatnumber’ => string [‘required’]
‘company_address’ => string [‘required’, ‘minlength’ => 6, ‘maxlength’ => 500],
];

# Заявка за редактиране на Име и Телефон на потребител PUT https://api.eyanak.com:5555//e-shop/api/user
[
‘full_name’ => string [‘required’, ‘maxlength’ => 50]
‘phone’ => string [‘required’]
]

# Заявка за добавяне на адрес на потребител POST https://api.eyanak.com:5555//e-shop/api/user/address
[
‘address’ => string [‘required’, ‘minlength’ => 6, ‘maxlength’ => 500],
]

# Заявка за редактиране на адрес на потребител PUT https://api.eyanak.com:5555//e-shop/api/user/address
[
‘address’ => string [‘required’, ‘minlength’ => 6, ‘maxlength’ => 500],
]

# Заявка за изтриване на адрес на потребител DELETE https://api.eyanak.com:5555//e-shop/api/user/address
[
‘userID’ => int (id на потребителя)
‘id’ => int (id на адреса),
‘delivery_address’ => стринг (адреса)
]

# Заявка за смяна на парола на потребител PUT https://api.eyanak.com:5555//e-shop/api/user/password

[
’email’ => string [‘required’]
‘password’ => string [‘required’]
];