Инструкция автоматической выгрузки заказов в Torgsoft с Opencart.
-------------------------------------------------------------------------------------------------------------
orders.php (сохраняем выгруженный файл XML с форматом торгсофта по их спецификации)
-----------------------------------------------------------------------------------------------------------
<?php
// настройки подключения к базе данных
$db_hostname = 'localhost';
$db_username = 'пользователь';
$db_password = 'пароль к базе';
$db_database = 'база данных';
$db_prefix = 'oc_'; // префикс таблиц базы данных
// получаем данные о заказе из базы данных
$db = new mysqli($db_hostname, $db_username, $db_password, $db_database);
if ($db->connect_error) {
die('Ошибка подключения к базе данных: ' . $db->connect_error);
}
$sql = "SELECT * FROM `" . $db_prefix . "order` ORDER BY `order_id` DESC LIMIT 1";
$result = $db->query($sql);
if (!$result) {
die('Ошибка запроса к базе данных: ' . $db->error);
}
if ($result->num_rows == 0) {
echo "Заказы не найдены в базе данных";
} else {
// Обрабатываем все заказы, полученные из запроса SQL
while ($order_data = $result->fetch_assoc()) {
// Получаем данные о товарах из таблицы `oc_order_product`
$sql = "SELECT * FROM `" . $db_prefix . "order_product` WHERE order_id = " . $order_data['order_id'];
$product_result = $db->query($sql);
// формируем XML-документ для каждого заказа
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><Order></Order>');
$client = $xml->addChild('Client');
$client->addChild('Name', $order_data['firstname'] . ' ' . $order_data['lastname']);
$client->addChild('MPhone', $order_data['telephone']);
$client->addChild('CPhone', $order_data['fax']);
$client->addChild('ZIP', $order_data['postcode']);
$client->addChild('Country', $order_data['payment_country']);
$client->addChild('Region', $order_data['payment_zone']);
$client->addChild('City', $order_data['payment_city']);
$client->addChild('Address', $order_data['payment_address_1'] . ' ' . $order_data['payment_address_2']);
$client->addChild('EMail', $order_data['email']);
$options = $xml->addChild('Options');
$options->addChild('SaleType', 1);
$options->addChild('Comment', $order_data['comment']);
$options->addChild('OrderNumber', $order_data['order_id']);
$options->addChild('DeliveryCondition', $order_data['shipping_method']);
$options->addChild('ReserveDate', date('Ymd', strtotime($order_data['date_added'])));
$options->addChild('BonusPay', $order_data['reward']);
$options->addChild('OrderDate', $order_data['date_added']);
$options->addChild('CurrencyInternationalCode', $order_data['currency_code']);
$goods = $xml->addChild('Goods');
while ($product_data = $product_result->fetch_assoc()) {
$good = $goods->addChild('Good_' . ($product_data['product_id']));
$good->addChild('GoodID', $product_data['model']);
$good->addChild('Price', $product_data['price']);
$good->addChild('Count', $product_data['quantity']);
}
$xml_file = __DIR__ . '/order_' . $order_data['order_id'] . '.xml';
}
$xml->asXML($xml_file);
$result->free_result();
$db->close();
}
?>
------------------------------------------------------------------------------------------------------------------
/сайт.юа/image/catalog/torgsoft/
Копируем orders.php сюда, меняем внутри доступ
------------------------------------------------------------------------------------------------------------------
Дальше с модулем Simple меняем......
--------------------------------------------------------------------------------------------------------------
/мой_сайт.юа/catalog/controller/checkout/success.php
/storage/modification/catalog/controller/checkout/success.php
Вставляем
require_once(DIR_IMAGE . 'catalog/torgsoft/orders.php');
перед
$this->response->setOutput($this->load->view('common/success', $data));
В конце файла
------------------------------------------------------------------------------------------------------------
В итоге имеем после оформления заказа сораняется файл с заказом в каталоге с файлом импорта товаров. Заказы забираются торгсофтом после синхронизации и появляются в заказе удаленного клиента. В тогсофте обязательно не забыть выставить XML для заказов. После синхронизации торгсофт удаляет файлы заказов (безопасно)