През 2022 г. в софтуера беше добавена функционалност за автоматично извличане на данни от поръчки от онлайн магазини. Ако сте администратор на онлайн магазин вече можете само с въвеждане на номер на поръчката и натискане на един бутон да пренесете данните от поръчката (данните на клиента и поръчаните стоки) в бланката на вашата фактура, проформа или друг документ.
Настройка на системата
Уверете, че сте включили допълнителна съвместимост за онлайн магазини от меню "Настройки" » "Системни настройки".
След това отворете меню "Настройки" » "Номенклатури" » "Онлайн магазини" и натиснете бутона "Добавяне", за да добавите данните на онлайн магазина в софтуера. Ако вече виждате онлайн магазина в списъка, кликнете с мишката два пъти върху него, за да се отвори формата за редакция.
В първите полета въведете домейна и наименованието на онлайн магазина. В полето "ТИП НА ОНЛАЙН МАГАЗИНА" изберете платформата, която е използвана за направянето на онлайн магазина. В "Bridge URL" въведете URL адреса на PHP скрипта, който ще подава данните за поръчката от вашия онлайн магазин. Например - https://www.magazin.bg/download-order-data.php. Въведете текст от 5 до 20 символа в полето "Секретен ключ". Генерираният ключ се предава автоматично към PHP скрипта. Използвайте този ключ на указаното място в скрипта, за допълнителна защита при комуникация.
Настройка на онлайн магазина
Създайте PHP файл със следното съдържание и го качете на адреса, който попълнихте в полето "Bridge URL". Заредете адреса в браузъра и се уверете, че връща резултат.
<?php
error_reporting(E_ALL);
define('LICENSE_COMPANY_NO', '***'); // ЕИК с който се ползва софтуера.
define('SOFTWARE_SECRET_KEY','***'); // Взима се от Fakturirane.com от полето Секретен ключ в редакция на онлайн магазин и се слага на мястото на ***
if((LICENSE_COMPANY_NO != '***') and (SOFTWARE_SECRET_KEY != '***')){ // ако сте попълнили ЕИК на ред 4 и секретен ключ
if($_SERVER['HTTP_APIAUTHENTICATION'] != '@@fakturnik-bridge-2022@@'.LICENSE_COMPANY_NO.'@@'.SOFTWARE_SECRET_KEY){
echo 'Wrong Secret key';
exit;
}
}
/* Допълнителна защита по IP
// достъп от позволени IP адреси
define('ALLOWED_IPS', array('0.0.0.0', ));
if(count(ALLOWED_IPS) > 0){
if(!in_array($_SERVER['REMOTE_ADDR'], ALLOWED_IPS)){
echo 'This IP address is not allowed!';
exit;
}
}
*/
try {
$action = isset($_REQUEST['action'])?$_REQUEST['action']:''; // order
if($action != ''){
$secret_key = isset($_REQUEST['sc'])?$_REQUEST['sc']:'';
define('SECRET_KEY', 'sc2022f'); // Допълнителна защита - не се променя
if($secret_key == SECRET_KEY){
$order_id = isset($_REQUEST['order_id'])?$_REQUEST['order_id']:0; // orders
if($action == 'orders'){
//$orders = $cl->getOrders();
echo json_encode($orders);
}elseif($action == 'order'){
//$order = $cl->getOrder($order_id);
$res_order = array(
'order_id'=>1,
'face'=>'МОЛ',
'email'=>'email на клиент',
'phone'=>'телефон на клиент',
'company'=>'Фирма',
'country_code'=>'BG',
'place'=>'Населено място',
'address'=>'Данъчен адрес',
'company_number'=>'ЕИК',
'company_vat'=>'ДДС номер',
'total'=>'30.66',
'currency'=>'BGN',
'errors'=>'', // попълва се в случай, че желаете да изведете съобщение за грешка във Fakturirane.com
'lines'=>array());
$res_order['lines'][] = array(
'product_id' => 133,
'name' => 'Име на стока или услуга',
'sku'=>'SKU', // подайте артикулния номер, който използвате във Fakturirane.com
// При използване на модул "Склад" е много важно артикулният номер да е попълнен
'quantity' => 2,
'measure_id'=>90, // Full list
// Мерната единица трябва да е добавена предварително във Fakturirane.com от Настройки > Мерни единици
'price' => 10, // ед. цена без ДДС
'total' => 2*10 // тотал на реда
);
/* ако имате няколко стоки в масив $products
foreach ($products as $product) {
$res_order['lines'][] = array(
'product_id' => $product['id'],
'name' => $product['name'],
'sku' => $product['sku'],
'quantity' => $product['quantity'],
'measure_id'=>70, // 70 - брой, Full list
'price' => $product['price'],
'total' => $product['quantity']*$product['price']
);
}
*/
$res_order['lines'][] = array(
'product_id' => 0,
'name' => 'Доставка',
'sku' => 'code-delivery',
'measure_id'=>70, //70 - брой, Full list
'quantity' => 1,
'price' => '5.55',
'total' => '5.55'
);
$res_order['sub_total'] = '25.55'; // Данъчна основа
$res_order['vat_percent'] = 20; // ДДС %
$res_order['vat'] = '5.11'; // ДДС сума
$res_order['payment_method_id'] = 18;
//1- В брой, 2-По банка, 3-POS/карта, 4-ePay.bg, 5-Частично в брой, 6-Насрещно прихващане,7-Наложен платеж,
// 8-ППП,9-PayPal,10-myPOS,11-Paysera,12-Виртуален POS,13-Stripe,14-Комбинирано, 15-Amazon Pay, 16-Apple Pay,17-Google Pay,18-Споразумение за онлайн продажби
// https://fakturirane.eu/help/api/misc-payment-types-list.php
$res_order['paid'] = 1; // 1 - платена, 0 - неплатена
$res_order['added'] = '04.06.2022'; // дата на поръчка
$res_order['modified'] = '2022-06-04 13:28:30'; // дата а промяна
$res_order['comment'] = 'Допълнителни бележки към фактура';
$res_order['country_id'] = 17; // 17 - България, Full list
$res_order['courier_id'] = 7; //1 - Български пощи, 2 - Европът, 3 - Еконт, 4 - Интерлогистика, 5 - Лео Експрес, 6 - МиБМ, 7 - Спиди, 8 - DHL, 9 - DPD, 10 - TNT, 11 - UPS, 12 - CVC, 13 - FedEx, 101 - Собствен транспорт
$res_order['waybill'] = '№ товарителница';
echo json_encode($res_order);
}
}else{
echo 'General error (2)!';
}
}else{
echo 'General error (3)!';
}
}catch(Exception $e) {
echo 'Error: ' .$e->getMessage();
}
?>
Зареждане на данни във Fakturirane.com
Отворете нов документ, например фактура. Изберете онлайн магазин в полето "Онл. магазин" и въведете номера на поръчката. Натиснете бутона вдясно от номера на поръчката, за да се заредят примерните данни. Ако всичко е наред е необходимо да модифицирате PHP скрипта, така че да извличате данните за съответната поръчка (номера се подава като параметър order_id) от базата данни и заместете примерните стойности. Ако вашият онлайн магазин е базиран на OpenCart можете да ни пишете и ще Ви изпратим готов файл.