През 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 можете да ни пишете и ще Ви изпратим готов файл.