Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]


Recommended Posts

11 часов назад, Espresso.Doktor сказал:

А заказы тоже прилетали с сайта в 1С со скидкой?

Можно ссылку на сайт, гляну как реализовано!

 

 

Сейчас убрали скидки с сайта, так как проблема с задваиванием. И еще момент, скидка в нашем случае это не скидка от цены, это оптовые цены от количества. То есть к примеру, стандартными средствами опенкарта можно сделать так. Цена А - обычная розничная. Цена Б - при покупке от 100 штук, Цена В - при покупке от 200 штук. И при выгрузке заказов с сайта в 1с, заказ будет просто прилетать с определенной ценой. 

Надіслати
Поділитися на інших сайтах


Пробую выгрузить заказ из OpenCart > 1C

 

Спойлер

Получение данных с сервера: Получен пустой ответ сервера.
Не удалось загрузить данные с сервера.
Обмен не выполнен
Не выгружен ни один заказ.
Обмен заказами завершен с ошибками!!!

 

Открываю файл orders.xml  а там пусто :(

 

Спойлер

<?xml version="1.0" encoding="utf-8"?>
<КоммерческаяИнформация ВерсияСхемы="2.07" ДатаФормирования="2019-06-10"/>

 

Вопрос, что надо сделать, что бы OpenCart сформировал и отдал информацию в файл orders.xml ?

 

В логе обмена есть упоминание о заказе 19 и 20, дальше чистый лог :(

 

Спойлер

2019-06-10 19:51:12 - 8096M КОНЕЦ ЗАГРУЗКИ ДАННЫХ
2019-06-10 19:51:12 - 0106M Время обработки exchange: 0.010096073150635 сек
2019-06-10 19:51:12 - 6430M Заказ #19
2019-06-10 19:51:12 - 6430M Заказ #20

 

Змінено користувачем Espresso.Doktor
Надіслати
Поділитися на інших сайтах


В 04.06.2019 в 16:14, Espresso.Doktor сказал:

Kirillove, установил модуль, сделал тестовую выгрузку товара, из 1С прилетает значение <Артикул>ABC123</Артикул> модуль его записывает в поле " SKU.

А надо его записать в поле "Модель", в каком файле нужно внести правки, и логично при "заказе" в 1С должно прилететь в Артикул.

 

Заранее благодарю!

\admin\model\extension\exchange1c.php

 

найдите функцию

private function parseProducts($xml) {

и замените

// АРТИКУЛ
$data['sku'] = $product->Артикул ? htmlspecialchars(trim((string)$product->Артикул)) : "";

на 

// АРТИКУЛ
$data['model'] = $product->Артикул ? htmlspecialchars(trim((string)$product->Артикул)) : "";

в таком случае нужно убрать или заменить на sku функцию отвечающую за запись модели (Если она у вас есть)

// МОДЕЛЬ
if ($product->Модель) {
   $data['model'] = htmlspecialchars(trim((string)$product->Модель));
}
Змінено користувачем indaled72
  • +1 1
Надіслати
Поділитися на інших сайтах


13 часов назад, indaled72 сказал:

\admin\model\extension\exchange1c.php

 

найдите функцию


private function parseProducts($xml) {

и замените


// АРТИКУЛ
$data['sku'] = $product->Артикул ? htmlspecialchars(trim((string)$product->Артикул)) : "";

на 


// АРТИКУЛ
$data['model'] = $product->Артикул ? htmlspecialchars(trim((string)$product->Артикул)) : ""

Супер, исправил, прилетело в поле Артикул (model).

 

Попробовал добавить следующую строку, что б значение Артикул прилетело в SEO URL страницы данного товара

// АРТИКУЛ
$data['keyword'] = $product->Артикул ? htmlspecialchars(trim((string)$product->Артикул)) : "";

Не прилетело в поле SEO URL карточки товара

 

Что нужно еще прописать?

 

Благодарю!

 

Надіслати
Поділитися на інших сайтах


23 часа назад, Espresso.Doktor сказал:

Супер, исправил, прилетело в поле Артикул (model).

 

Попробовал добавить следующую строку, что б значение Артикул прилетело в SEO URL страницы данного товара


// АРТИКУЛ
$data['keyword'] = $product->Артикул ? htmlspecialchars(trim((string)$product->Артикул)) : "";

Не прилетело в поле SEO URL карточки товара

 

Что нужно еще прописать?

 

Благодарю!

 

Так не прокатит, данные по SEO содержатся в отдельной таблице и плюс артикул может содержать пробелы..

Там же есть функции по работе с SEO, зачем велосипед.

Надіслати
Поділитися на інших сайтах


Единственное,.

В коде есть ошибка и поэтому, если настроить SEO, при обновлении товара оно не будет работать.

 

Чтобы взлетело:

1. Открываем файл: \admin\model\extension\exchange1c.php

2. Ищем функцию: 

private function updateProduct($product_id, $data) {

3. В функции находим строку:

if ($this->config->get('exchange1c_seo_manufacturer_mode') != 'disable') {

и заменяем ее на вот эту строку:

if ($this->config->get('exchange1c_seo_product_mode') != 'disable') {

 

Змінено користувачем Maximis
Подсветил код, для читабельности
Надіслати
Поділитися на інших сайтах


2 часа назад, Maximis сказал:

Единственное,.

В коде есть ошибка и поэтому, если настроить SEO, при обновлении товара оно не будет работать.

 

Чтобы взлетело:

1. Открываем файл: \admin\model\extension\exchange1c.php

2. Ищем функцию: 


private function updateProduct($product_id, $data) {

3. В функции находим строку:


if ($this->config->get('exchange1c_seo_manufacturer_mode') != 'disable') {

и заменяем ее на вот эту строку:


if ($this->config->get('exchange1c_seo_product_mode') != 'disable') {

 

 

Речь идет об этом участке кода?

 

// Производители

        if ($this->config->get('exchange1c_seo_manufacturer_mode') != 'disable') {
            if (isset($this->TAB_FIELDS['manufacturer_description'])) {
                // Выбрать все категории, нужны поля:
                // name, sku, model, manufacturer_id, description, product_id, category_id
                $no_update_description = array();
                if (isset($this->TAB_FIELDS['manufacturer_description']['meta_h1'])) {
                    $sql = "SELECT `m`.`manufacturer_id`, `md`.`name`, `md`.`meta_title`, `md`.`meta_description`, `md`.`meta_keyword`, `md`.`meta_h1` FROM `" . DB_PREFIX . "manufacturer` `m` LEFT JOIN `" . DB_PREFIX . "manufacturer_description` `md` ON (`m`.`manufacturer_id` = `md`.`manufacturer_id`) WHERE `md`.`language_id` = " . $language_id;
                } else {
                    $sql = "SELECT `m`.`manufacturer_id`, `md`.`name`, `md`.`meta_title`, `md`.`meta_description`, `md`.`meta_keyword` FROM `" . DB_PREFIX . "manufacturer` `m` LEFT JOIN `" . DB_PREFIX . "manufacturer_description` `md` ON (`m`.`manufacturer_id` = `md`.`manufacturer_id`) WHERE `md`.`language_id` = " . $language_id;
                    array_push($no_update_description, 'meta_h1');
                }

                $query = $this->query($sql);
                if ($query->num_rows) {
                    foreach ($query->rows as $data) {

                        $result['manufacturer']++;

                        $data_old = $data;

                        if ($this->config->get('exchange1c_seo_manufacturer_mode') != 'disable')
                            $update = $this->seoGenerateManufacturer($data['manufacturer_id'], $data);

                        if (!$update)
                            continue;

 

 

Змінено користувачем Espresso.Doktor
Надіслати
Поділитися на інших сайтах


25 минут назад, Espresso.Doktor сказал:

 

Речь идет об этом участке кода?

 

  Скрыть контент

// Производители

        if ($this->config->get('exchange1c_seo_manufacturer_mode') != 'disable') {
            if (isset($this->TAB_FIELDS['manufacturer_description'])) {
                // Выбрать все категории, нужны поля:
                // name, sku, model, manufacturer_id, description, product_id, category_id
                $no_update_description = array();
                if (isset($this->TAB_FIELDS['manufacturer_description']['meta_h1'])) {
                    $sql = "SELECT `m`.`manufacturer_id`, `md`.`name`, `md`.`meta_title`, `md`.`meta_description`, `md`.`meta_keyword`, `md`.`meta_h1` FROM `" . DB_PREFIX . "manufacturer` `m` LEFT JOIN `" . DB_PREFIX . "manufacturer_description` `md` ON (`m`.`manufacturer_id` = `md`.`manufacturer_id`) WHERE `md`.`language_id` = " . $language_id;
                } else {
                    $sql = "SELECT `m`.`manufacturer_id`, `md`.`name`, `md`.`meta_title`, `md`.`meta_description`, `md`.`meta_keyword` FROM `" . DB_PREFIX . "manufacturer` `m` LEFT JOIN `" . DB_PREFIX . "manufacturer_description` `md` ON (`m`.`manufacturer_id` = `md`.`manufacturer_id`) WHERE `md`.`language_id` = " . $language_id;
                    array_push($no_update_description, 'meta_h1');
                }

                $query = $this->query($sql);
                if ($query->num_rows) {
                    foreach ($query->rows as $data) {

                        $result['manufacturer']++;

                        $data_old = $data;

                        if ($this->config->get('exchange1c_seo_manufacturer_mode') != 'disable')
                            $update = $this->seoGenerateManufacturer($data['manufacturer_id'], $data);

                        if (!$update)
                            continue;

 

Нет, об этом:

		// Формируем SEO для товара и получаем поля которые изменились
		if ($this->config->get('exchange1c_seo_manufacturer_mode') != 'disable') {
			$modify_fields2 = $this->seoGenerateProduct($product_id, $data);
		} else {
			$modify_fields2 = array();
		}

Номер строки 2283, которую нужно заменить.

Змінено користувачем Maximis
Надіслати
Поділитися на інших сайтах


В ‎10‎.‎06‎.‎2019 в 19:22, Espresso.Doktor сказал:

Пробую выгрузить заказ из OpenCart > 1C

 

  Показать контент

Получение данных с сервера: Получен пустой ответ сервера.
Не удалось загрузить данные с сервера.
Обмен не выполнен
Не выгружен ни один заказ.
Обмен заказами завершен с ошибками!!!

 

Открываю файл orders.xml  а там пусто :(

 

Да забейте вы уже на этот модуль - за три с лишним года он нормально никогда не работал. А с января его написатель похоже окончательно его забросил - никаких обновлений не выходило. Пытаться исправить код бесполезно, написан настолько некачественно, что когда начинаешь править одно, другое третье, то понимаешь, что писать надо вообще с нуля. Купил в итоге платный модуль, мне работать сейчас надо.

Надіслати
Поділитися на інших сайтах


2 часа назад, IronMann сказал:

 

Да забейте вы уже на этот модуль - за три с лишним года он нормально никогда не работал. А с января его написатель похоже окончательно его забросил - никаких обновлений не выходило. Пытаться исправить код бесполезно, написан настолько некачественно, что когда начинаешь править одно, другое третье, то понимаешь, что писать надо вообще с нуля. Купил в итоге платный модуль, мне работать сейчас надо.

 

Да вижу, что модуль скорее сырой, и понимаю что надо его полностью допиливать под свои задачи!

Просто пока пытаюсь все задачи сформулировать у себя на бумаге, что не так легко, даже после многих лет работы!

 

Если не секрет, что за модуль купили?

После установки завелся с полуоборота, или надо было допиливать?

Работает от штатного модуля обмена битрикса в 1С? 

 

Надіслати
Поділитися на інших сайтах


Нашёл небольшую недоработку: если админка находится по адресу отличному от admin, то модуль не работает, т.к. путь к config прописан жёстко. Каждый раз при обновлении забываю про это.

// Configuration
require_once('../admin/config.php');

 

Надіслати
Поділитися на інших сайтах


Ещё есть такие ошибки:

2019-06-20 17:00:40 - PHP Warning:  count(): Parameter must be an array or an object that implements Countable in /model/extension/exchange1c.php on line 3353
2019-06-20 17:00:40 - PHP Warning:  count(): Parameter must be an array or an object that implements Countable in /model/extension/exchange1c.php on line 7889

 

PHP 7.2

Змінено користувачем d2boy
Надіслати
Поділитися на інших сайтах


12 часов назад, IronMann сказал:

 

С учетом того, что этому модулю больше трех лет, он уже скорее не сырой, а протухший...

 

Когда уже полностью устал ждать в этой теме чего-либо приемлемого для работы, купил себе модуль от НеоСео, а других и нет, по факту. Завелся сразу, плясать не пришлось. Вопрос с модулем для себя закрыл. На счет битрикса, вопрос не совсем понятен. Битрикс, это же свой движок CMS, у него свой модуль обмена с 1С.

 

Каждый имеет право высказать свое мнение, и я уважаю людей который имеют это сделать!

 

Читал про модуль НеоСео, но пока решил сообразить все свои задачи, что бы составить ТЗ хотя для себя.

Если не военная тайна, можно кинуть в личку ссылку на ваш сайт, хочу глянуть как выглядит со стороны "покупателя".

 

Благодарю и удачного уикенда!

Надіслати
Поділитися на інших сайтах


Вам проще будет взять его на 14 дней пробного доступа, поставить на тестовый домен и общупать со всех сторон самостоятельно. Я в свое время купил его просто на пробу, почти от безысходности, можно сказать. Ну ничего вообще рабочего не было. О НеоСео были очень противоречивые отзывы, по этому были некоторые предубеждения. Когда купил и поставил, пожалел только о том, что не сделал это раньше, начав вместо этого искать бесплатные решения. Потратил только время напрасно, по большому счету. Хотя приобрел при этом опыт и лучше разобрался в своих потребностях. Да, код закрыт, но я просто нашел компромиссные варианты между своими хотелками и имеющимся функционалом.

Змінено користувачем IronMann
Надіслати
Поділитися на інших сайтах


В 04.06.2019 в 14:14, Espresso.Doktor сказал:

Kirillove, установил модуль, сделал тестовую выгрузку товара, из 1С прилетает значение <Артикул>ABC123</Артикул> модуль его записывает в поле " SKU.

А надо его записать в поле "Модель", в каком файле нужно внести правки, и логично при "заказе" в 1С должно прилететь в Артикул.

 

Заранее благодарю!

В правилах загрузки нужно написать Артикул ## model . Код товара станет артикулом.

 

Не за что.

Надіслати
Поділитися на інших сайтах


В 20.06.2019 в 07:44, IronMann сказал:

 

Да забейте вы уже на этот модуль - за три с лишним года он нормально никогда не работал. А с января его написатель похоже окончательно его забросил - никаких обновлений не выходило. Пытаться исправить код бесполезно, написан настолько некачественно, что когда начинаешь править одно, другое третье, то понимаешь, что писать надо вообще с нуля. Купил в итоге платный модуль, мне работать сейчас надо.

Ну хз. Поставил, доработал. Замудохался - да. Работает - да. Есть ли у меня рабочая (нет) версия - да. Заработал ли этот ваш платный из коробки на чистой системе - нет. Функций в бесплатном больше - да.

Змінено користувачем herminator
Надіслати
Поділитися на інших сайтах


В 16.06.2019 в 23:01, indaled72 сказал:

\admin\model\extension\exchange1c.php

 

найдите функцию


private function parseProducts($xml) {

и замените


// АРТИКУЛ
$data['sku'] = $product->Артикул ? htmlspecialchars(trim((string)$product->Артикул)) : "";

на 


// АРТИКУЛ
$data['model'] = $product->Артикул ? htmlspecialchars(trim((string)$product->Артикул)) : "";

в таком случае нужно убрать или заменить на sku функцию отвечающую за запись модели (Если она у вас есть)


// МОДЕЛЬ
if ($product->Модель) {
   $data['model'] = htmlspecialchars(trim((string)$product->Модель));
}

Не надо так делать. Ответ выше.

Надіслати
Поділитися на інших сайтах


В 24.06.2019 в 16:13, zebratratata сказал:

Добрый день.

Поддержка под 3-й опенкарт не планируется? 

Неужели сложно одну последнюю страницу хотя бы прочитать.

Надіслати
Поділитися на інших сайтах


9 часов назад, herminator сказал:

Замудохался

 

Для данного модуля это его миссия.

 

9 часов назад, herminator сказал:

Заработал ли этот ваш платный из коробки на чистой системе - нет. Функций в бесплатном больше - да.

 

Вот как раз на чистой системе платный модуль работает как часы. И какой смысл в функциях условно бесплатного модуля, если они не работают. Модуль не рабочий и не поддерживаемый уже по факту. Эта тема превратится в смесь кружка народного творчества и места слета искателей халявы. Искать здесь решение потребностей реального бизнеса - бесцельно тратить время.

Надіслати
Поділитися на інших сайтах


5 часов назад, IronMann сказал:

Вот как раз на чистой системе платный модуль работает как часы.

Повторюсь, у меня не заработал. Начались проблемы с выгрузкой изображений.

 

А данный бесплатный вариант нужно доработать напильником, да. Но после этого он работает, и остаётся в рабочем виде. Где тут проблема?

Змінено користувачем herminator
Надіслати
Поділитися на інших сайтах


5 часов назад, herminator сказал:

Повторюсь, у меня не заработал. Начались проблемы с выгрузкой изображений.

 

А данный бесплатный вариант нужно доработать напильником, да. Но после этого он работает, и остаётся в рабочем виде. Где тут проблема?

 

Эх, грусть-печаль...

Знаете, вы далеко не первый, кто активно впрягается в защиту этого вредоносного модуля. За три года, были разные его защитники, которые чего-то где-то допилили и уверовали, что он хороший. А где итоговый результат?

Надіслати
Поділитися на інших сайтах


18 часов назад, zebratratata сказал:

Извиняюсь за возможную наглость, но кто-то может скинуть рабочий вариант с фиксом части багов?

Другие будете сами править, по мере налетания на них? :) Поверьте, там багов минное поле.

Надіслати
Поділитися на інших сайтах


  • dinox changed the title to Модуль обмена для opencart v2.3 с учетной системой по стандарту CommerceML [Поддержка]

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.