Импортиране на данни от онлайн магазин (OpenCart, WooCommerce и др.)
Във "Фактурник" - версия 8.11 е добавена функция за автоматично извличане на данните от поръчки от онлайн магазин. Ако сте администратор на онлайн магазин вече можете само с натискане на един бутон да пренесете данните от поръчката (поръчаните стоки и данните на клиента) в бланката на вашата фактура, проформа или друг документ.
Настройка на системата
Уверете, че сте включили допълнителна съвместимост за онлайн магазини от меню "Настройки" » "Други настройки" » "Бизнес настройки".
След това отворете меню "Настройки" » "Онлайн магазини" и натиснете бутона "Добавяне", за да добавите данните на онлайн магазина в софтуера. Ако вече виждате онлайн магазина в списъка, кликнете с мишката два пъти върху него, за да се отвори формата за редакция.
В първото поле въведете наименованието на онлайн магазина. В полето домейн въведете домейна на онлайн магазина. В полето "Платформа" изберете платформата, която е използвана за направянето на онлайн магазина. В "Bridge URL" въведете URL адреса на PHP скрипта, който ще се и комуникира с "Фактурник". Например - https://www.freelance.bg/download-order-fakturnik.php
. Натиснете бутона със светкавицата, което е разположено вдясно от полето "Секретен ключ", за да се генерира ключ. Генерираният ключ се предава автоматично към PHP скрипта. Използвайте на указаното място в скрипта този ключ, за да се защити комуникацията.
Настройка на онлайн магазина
Създайте PHP файл със следното съдържание и го качете на адреса, който попълнихте в полето "Bridge URL". Заредете адреса в браузъра и се уверете, че връща резултат.<?php error_reporting(E_ALL); define('LICENSE_COMPANY_NO', '***'); // ЕИК с който е лицензиран софтуера. define('SOFTWARE_SECRET_KEY','***'); // Взима се от Фактурник от полето Секретен ключ в редакция на ЕЛМ и се слага на мястото на *** 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'=>'', // попълва се в случай, че желаете да изведете съобщение за грешка във Фактурник 'lines'=>array()); $res_order['lines'][] = array( 'product_id' => 133, 'name' => 'Име на стока или услуга', 'quantity' => 2, 'measure_id'=>90, // 90 - година, други мерни единици // Мерната единица трябва да е добавена във Фактурник от Настройки > Мерни единици 'price' => 10, // ед. цена без ДДС 'total' => 2*10 // тотал на реда ); /* ако имате няколко стоки в масив $products foreach ($products as $product) { $res_order['lines'][] = array( 'product_id' => $product['id'], 'name' => $product['name'], 'quantity' => $product['quantity'], 'measure_id'=>70, // 70 - брой, други мерни единици 'price' => $product['price'], 'total' => $product['quantity']*$product['price'] ); } */ $res_order['lines'][] = array( 'product_id' => 0, 'name' => 'Доставка', 'measure_id'=>70, //70 - брой, други мерни единици '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'] = 7; // 7 наложен платеж, кодове на други начини на плащане $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 - България, други държави $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(); } ?>
Зареждане на данни във Фактурник
Отворете нов документ, например фактура. Изберете онлайн магазин в полето "Онл. магазин" и въведете номера на поръчката. Натиснете бутона вдясно от номера на поръчката, за да се заредят примерните данни. Ако всичко е наред е необходимо да модифицирате PHP скрипта, така че да извличате данните за съответната поръчка (номера се подава като параметър order_id) от базата данни и заместете примерните стойности. Ако вашият онлайн магазин е базиран на OpenCart можете да ни пишете и ще Ви изпратим готов файл.