Основният 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
# Взимане на информация за стока GET https://api.eyanak.com:5555//e-shop/api/stock
[
‘stockID’ => int, – id на стоката
‘selbuy_id’ => int, – id (sb_idnumb) на клиента взет от контролера //e-shop/api/user/login
];
# Заявка за взимане на всички стоки GET https://api.eyanak.com:5555/e-shop/api/getstocks
[
‘warehouseID’ => int,
‘customerID’ => int,
‘groups’ => [],
‘filters’ => [],
‘filterByName’ => string,
‘currentPage’ => int,
‘itemsPerPage’ => int,
‘countItems’ => bool,
‘showFilters’ => bool,
‘orderBy’ => int,
‘minPrice’ => int,
‘maxPrice’ => int
]
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” = bool
‘last_change_date’ = DateTime (dd.mm.yyyy hh:mm:ss)
‘stock_list’ = [ {stock_id: int} ]
‘customerID’ => int,
#От коя дата напред да гледа за промяна в стоката.
‘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’]
‘send_api_mail’ => bool / Дали да изпраща мейл през настроената система където се намира базата данни на клиента.
]
# Заявка за добавяне на отстъпка към цялата количка POST https://api.eyanak.com:5555//e-shop/api/order/coupon-discount
[
“isPercent”: => bool, —> типа отстъпка.
“discountValue”: => double, —-> количеството отстъпка ( може да е отрицателно тогава е надбавка)
“sessionId”: =>string, —> номер на заявката с която работим
“customerID”: => int , —-> клиентско ID ако има такова
“information”: => string, —-> код на отстъпката ( записва се като име на стоката ако не е процентна отстъпката)
“yanak_coupon”: => bool —-> дали кода който се използва е създаден през модул “Код за отстъпка”
]
Контролери за вход на потребител. Използват се за прихващане на персонални промоции.
# Заявка за вход на потребител: 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 ,
‘is_teilor_api’ => boolean ( При ‘true’ създава ‘Контрагент’ или закача към сеществуващ такъв. При ‘False’ записва данните за фактура като забележка към ‘Лицето за контакт’ , трябва ръчно да се създаде ‘Контрагент’ и да се обвърже с ‘Лицето за контакт’
];
–Ако 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]
]
— ВАЖНО. Ако има такава фирма в базата данни , ще обвърже потребителя към тази фирма. Ако такава фирма няма ще върне съобщение че трябва да се обърне към оператор за да бъде добавен към дадена фирма и ще запише данните като ‘Забележка’ към потребителя за фактуриране.
# Заявка за взимане на всички контрагент GET https://api.eyanak.com:5555//e-shop/api/customer
$inputs = [];
# Заявка за добавяне на фирма към потребител 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],
];
$result = ако има такава фирма в базата данни , ще върне информация за фирмата и ще обвърже потребителя към тази фирма. Ако такава фирма няма ще върне съобщение че трябва да се обърне към оператор за да бъде добавен към дадена фирма и ще запише данните като ‘Забележка’ към потребителя за фактуриране.
# Заявка за редактиране на фирма потребител 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’ => string (адреса)
]
# Заявка за смяна на парола на потребител PUT https://api.eyanak.com:5555//e-shop/api/user/password
[
’email’ => string [‘required’]
‘password’ => string [‘required’]
];
***** Контролери за ЕКСПОРТ на продажби *******
# Заявка за извличане на данни за продажби за период от време с филтри POST https://api.eyanak.com:5555//api/reports/get-desktop-data
# Заявка за извличане на данни за последната продажба
POST https://api.eyanak.com:5555/api/reports/get-last-sell-doc
request :
{}
response :
{
error : string
data:
{
“doc_id”: long
“doc_type”: string,
“doc_date”: string,
“client_id”: int,
“client_name”: string,
“client_email”: string,
“client_phonenumber”: string,
“client_bulstat”: string
}
}