-
Публікації
19 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем andreyegorov1987
-
-
При нажатии на любое поля в соответствии категорий, перебрасывает на гугл диск с несуществующим файлом
-
Glovo (процесс наработки, получилось выгрузить пока на свой сфтп, на их еще не пробовал), torgsoft не может формировать первую колонку в c заданным значением, в нашем случае id который дает GLOVO. Значит настраиваем выгрузку для каждой точки продаж по ftp к нам на сайт и пишем скрипт который будет добавлять нужный id по спецификации Glovo и отправлять на их SFTP по запросу из Torgsoft после выгрузки.
магазин.php
-----------------------------------------------------------------------------------------
<?php
// выполняем код
// путь к файлу CSV
$file_path = '/sites/мой_сайт.юа/image/catalog/torgsoft/glovo-lyst.csv';// определение кодировки и разделителя
$handle = fopen($file_path, 'r');
$first_line = fgets($handle);
fclose($handle);
$delimiter = ','; // задайте нужный разделитель
$encoding = mb_detect_encoding($first_line, 'UTF-8, Windows-1251'); // задайте подходящую кодировку// чтение файла и изменение содержимого
$data = array();
$row = 0;
if (($handle = fopen($file_path, 'r')) !== false) {
while (($csv_data = fgetcsv($handle, 1000, ";")) !== false) {
$num = count($csv_data);
for ($c = 0; $c < $num; $c++) {
$csv_data[$c] = mb_convert_encoding($csv_data[$c], 'UTF-8', $encoding);
}
if ($row == 0) { // изменение заголовка первой колонки
$csv_data[0] = 'Новый заголовок';
} else { // изменение значения первой колонки
$csv_data[0] = 'Новое значение';
}
// замена запятой на точку в числовых значениях
for ($c = 0; $c < $num; $c++) {
if (is_numeric($csv_data[$c])) {
$csv_data[$c] = str_replace(',', '.', $csv_data[$c]);
}
}
$data[] = $csv_data;
$row++;
}
fclose($handle);
}// сохранение файла с новым разделителем
$file_name = 'new_file_'.date('Ymd_Hi_s').'.csv';
$file_path = '/sites/мой_сайт.юа/image/catalog/torgsoft/'.$file_name;
$handle = fopen($file_path, 'w');
foreach ($data as $csv_data) {
$line = implode($delimiter, $csv_data) . "\n";
fwrite($handle, $line);
}
fclose($handle);// отправка файла по SFTP
$sftp_server = 'глово_сфтп';
$sftp_username = 'логин';
$sftp_password = 'пароль';
$sftp_path = 'путь_кототый они дают' . $file_name;
$local_path = $file_path;$connection = ssh2_connect($sftp_server);
ssh2_auth_password($connection, $sftp_username, $sftp_password);
$sftp = ssh2_sftp($connection);$stream = fopen("ssh2.sftp://{$sftp}{$sftp_path}", 'w');
if ($stream) {
$contents = file_get_contents($local_path);
fwrite($stream, $contents);
fclose($stream);
echo "Файл успешно загружен на SFTP сервер\n";
unlink($local_path);
}
else {
echo "Ошибка загрузки файла на SFTP сервер\n";
}
-
Инструкция автоматической выгрузки заказов в 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 для заказов. После синхронизации торгсофт удаляет файлы заказов (безопасно)
-
Тему создал для себя, что бы не забыть наработки может кому и пригодится, синхронизация с торгсофтом, все нюансы которые мне приходится решать, может кто-то присоединится
-
Есть модуль который создает дополнительную таблицу в бд opencart 3, туда нужен импорт по крону с файла в корне сайта, кто знает такой или может доработать модуль ?
-
Напишу сюда, интересует этот модуль очень, но не даёт пока автоматизация синхронизации. Товары в магазине обновляются каждый час, как это реализовать, через какой модуль дополнительный ? Я готов и его купить, вопрос существует ли он в природе ? Как обновлять эту отдельную таблицу в базе данных, все модули синхронизации с кроном, которые я нашёл обновляют только стандартные поля продукта. Я не понимаю как люди могут разработать такой сложный модуль и не доработать такую важную часть, ведь нет смысла в функции мультисклада, если остатки там не отображаются верно. Кто уже пользуется с 1с, как вы это реализовали ?
-
08.12.2022 в 14:52, radaevich сказал:
Можете попробовать функцию htmlspecialchars_decode для вывода описания
Ну а как это сделать. Указать в тексте описания товара перед кодом ?
-
Может есть какой нибудь известный способ, что бы различать код при сохранении карточки
-
08.12.2022 в 13:32, radaevich сказал:
А если через админку писать кодом описание, то выводит нормально? .Посмотрите оборачивает ли дополнительно система это текст в какие-то теги, может <pre>. А лучше скиньте ссылку на страницу, где есть такая проблема.
"<p><strong>Застосування:</strong> наносити 1 ампулу (15мл) виключно на корені волосся. Використовувати 2 рази в тиждень протягом 3-х місяців. Після відкриття ампули використовувати негайно.</p"
-
08.12.2022 в 13:32, radaevich сказал:
А если через админку писать кодом описание, то выводит нормально? .Посмотрите оборачивает ли дополнительно система это текст в какие-то теги, может <pre>. А лучше скиньте ссылку на страницу, где есть такая проблема.
Если через код в админке, то все нормально, но надо что бы это все было на стороне 1с, поскольку описание улетает на разные сайты. На странице товара его opencart заключает ""
-
Кто ни будь сталкивался с проблемой выгрузки ? С одной стороны есть 1с она выгружает уже форматированый текст с html, но в магазине эти теги в описании отображаются. Можно было бы отключить через код, но так не подходит, потому что есть часть товаров с описанием просто тектом
Исходный текст такой должен быть:
Ампули Pro-Keda Forte проти випадіння волосся 12x15мл + Шампунь 100 мл
Усуває випадіння волосся, додає об'єм і збільшує щільність волосся. Одні з основних активних компонентів – вітамін B5, кофеїн, екстракт бамбука.
Застосування: наносити 1 ампулу (15мл) виключно на корені волосся. Використовувати 2 рази в тиждень протягом 3-х місяців. Після відкриття ампули використовувати негайно.
В файле импорта и странице товар он виден как :
<h4>Ампули Pro-Keda Forte проти випадіння волосся 12x15мл + Шампунь 100 мл</h4>
<p>Усуває випадіння волосся, додає об'єм і збільшує щільність волосся. Одні з основних активних компонентів – вітамін B5, кофеїн, екстракт бамбука.</p>
<p><strong>Застосування:</strong> наносити 1 ампулу (15мл) виключно на корені волосся. Використовувати 2 рази в тиждень протягом 3-х місяців. Після відкриття ампули використовувати негайно.</p> -
Действительно, после обновления все вылечилось. Спасибо
- 1
-
-
Сервис turbosms.ua возможно привязать ? Если нет, сколько стоит доработка ?
Модуль Фид XML для экспорта товаров в Епицентр [Поддержка]
в Модули обмена данными
Опубліковано:
Рабочего модуля нет ?