Двупосочна интеграция и синхронизация: OpenCart & Di-Sklad

Автоматизирайте целия процес – от създаването на продукти и наличностите до финализирането на поръчката.

CSV Наличности и XML Поръчки

Въведение: Краят на ръчната работа

Когато вашият електронен магазин генерира десетки поръчки дневно, ръчното им преписване в складовата програма е немислимо. Но интеграцията отива по-далеч – тя затваря кръга между наличностите в склада и витрината на вашия OpenCart.

Без грешки

Данните за доставка и фактура се прехвърлят автоматично.

Светкавична скорост

Поръчката става продажба само с няколко клика.
(ако не се прави корекция по поръчка)

Реални наличности

Ако стоката свърши в склада да не може да се поръча от  сайта(ако е активирано в Ел. магазина)

Схема на автоматизирания процес

OpenCart
Източник на поръчки
XML ДАННИ
Поръчки и клиенти
Импорт чрез бутон "Ел. Маг."
Di-Sklad
Регистрира продажба
OpenCart
Създаване на продукти
CSV ДАННИ
НОВИ АРТИКУЛИ, СНИМКИ, ОПИСАНИЯ
Di-Sklad чете от URL
Di-Sklad
Автоматичен внос
Di-Sklad
Физическа наличност
CSV ДАННИ
ЦЕНИ И КОЛИЧЕСТВА
OpenCart актуализира витрината
OpenCart
Блокира изчерпани стоки

1. От Склада към Магазина (Наличности)

Този процес гарантира, че клиентът няма да поръча нещо, което е свършило във физическия обект. Di-Sklad генерира CSV файл, който магазинът прочита.

items_to_file_csv.php
set_charset("utf8");

$query = "SELECT item_number, quantity, unit_price FROM dds_di_sklad_items WHERE is_online = 1 AND deleted = 0";
$result = $mysqli->query($query);

$data = "";
while($row = $result->fetch_assoc()) {
    $data .= $row['item_number'].",".$row['quantity'].",".$row['unit_price'].",\n";
}
file_put_contents('file.csv', $data);
$mysqli->close();
?>

2. От Магазина към Склада (Създаване на продукти)

Тъй като в OpenCart е по-лесно да добавяте снимки и описания, можете да ползвате магазина като „майсторска“ база. Di-Sklad прочита CSV файла от магазина и ако продуктът е нов, го създава автоматично.

import_to_sklad.php
set_charset("utf8");

// Вземаме съдържанието от CSV експорта на OpenCart
$handle = fopen("http://url-to-shop.com/csvexport/file.csv", "r");

while(($row = fgetcsv($handle, 1000, "*")) !== FALSE) {
    $sku_online = $mysqli->real_escape_string($row[1]);
    $name_online = $mysqli->real_escape_string($row[2]);
    $price_online = number_format(($row[3] * 1.2), 2, '.', '');
    $item_id = $mysqli->real_escape_string($row[4]);

    // Проверка дали продуктът вече съществува
    $check = $mysqli->query("SELECT item_id FROM dds_di_sklad_items WHERE item_id = '$item_id' AND deleted = 0");

    if ($check->num_rows > 0) {
        // Продуктът съществува - само обновяваме цена
        $mysqli->query("UPDATE dds_di_sklad_items SET unit_price = '$price_online' WHERE item_id = '$item_id'");
    } else {
        // Продуктът е нов - ВМЪКВАМЕ ГО
        $mysqli->query("INSERT INTO `dds_di_sklad_items` (`name`, `unit_price`, `item_number`, `is_online`, `description`) 
                        VALUES ('$name_online', '$price_online', '$sku_online', 1, 'Автоматично добавен от магазин')");
        echo "Добавен нов продукт: " . $name_online . "
"; } } fclose($handle); $mysqli->close(); ?>

3. XML Фийд за поръчки (Импорт в реално време)

Този скрипт се извиква от Di-Sklad чрез натискане на бутона "Ел. Маг.". Той извлича последните поръчки и ги подготвя за влизане в склада.

xml_feed_orders.php
set_charset("utf8");

header("Content-Type: application/xml; charset=UTF-8");

$xml = '';
$query = "SELECT * FROM site_order ORDER BY order_id DESC LIMIT 50";
$result = $mysqli->query($query);

while($row = $result->fetch_assoc()) {
    $xml .= '';
    $xml .= '' . $row['order_id'] . '';
    $xml .= '' . htmlspecialchars($row['firstname'] . ' ' . $row['lastname']) . '';
    $xml .= '' . $row['telephone'] . '';
    
    $xml .= '';
    $order_id = $row['order_id'];
    $items = $mysqli->query("SELECT * FROM site_order_product WHERE order_id = $order_id");
    while($item = $items->fetch_assoc()) {
        $sku_res = $mysqli->query("SELECT sku FROM site_product WHERE product_id = ".$item['product_id']);
        $sku_row = $sku_res->fetch_assoc();
        $xml .= '';
        $xml .= '';
        $xml .= '' . $item['quantity'] . '';
        $xml .= '' . number_format($item['price'], 2, '.', '') . '';
        $xml .= '';
    }
    $xml .= '';
    $xml .= '';
}
$xml .= '';
echo $xml;
$mysqli->close();
?>

Автоматизация чрез Cron Job

Синхронизацията на продуктите и наличностите трябва да се случва автоматично. Настройте следните задачи в cPanel:

*/15 * * * * /usr/bin/php /home/user/public_html/import_to_sklad.php

// Обновява продуктите в склада на всеки 15 мин.

Обработка в Di-Sklad

След като поръчката е в сайта, Вие само:

  1. Отваряте Продажби.
  2. Натискате сивия бутон Ел. Магазин.
  3. Избирате поръчката – тя автоматично попълва клиентски данни и стоки.
  4. Натискате ПРИКЛЮЧИ.
Важно: Ако в XML фийда има SKU, което го няма в склада, Di-Sklad ще Ви предупреди веднага!


Готови ли сте за модерна търговия?

WooCommerce
OpenCart
Custom

Имате друг електронен магазин или специфичен проект?

Свържете се с нас