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

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


Recommended Posts

1 час назад, SoundMonster сказал:

Уважаемый раработчик, подойдет ли ваш модуль для такой 1С??

Screenshot_1.png.794f11c004f52795d3141515a882f62e.png

Настройте обмен с сайтом, выгрузите файлы в каталог, пришлите мне их. Я проверю, если что не так будет сразу поправлю, но в принципе должно работать.

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

4 часа назад, Kirillove сказал:

Настройте обмен с сайтом, выгрузите файлы в каталог, пришлите мне их. Я проверю, если что не так будет сразу поправлю, но в принципе должно работать.

Я настраивал на демо сайте вашем, не подключается!

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


54 минуты назад, Kirillove сказал:

Сегодня обязательно проверю водяные знаки. Сегодня уже выложу 1.6.3.9

 

Водяные знаки меня не интересовали, у меня другая проблема)

Но все равно спасибо)

 

 

Я нашел выход из своей ситуации, пришлось чуть-чуть переписать две функции

Функции переписаны только под CML2.04, у других версий будут ошибки.

\admin\model\tool\exchange1c.php

 

В функции private function parseProducts($xml, $classifier) заменил следующий участок кода

// Картинки, только для товара (CML 2.04)
if ($product->ОсновнаяКартинка) {


   $data['images'][0] = $this->parseImages($product->ОсновнаяКартинка, $data);
   
   if ($this->ERROR) return false;
   // дополнительные, когда элементы в файле называются <Картинка1>, <Картинка2>...
   $cnt = 1;
   $var = 'Картинка'.$cnt;
   while (!empty($product->$var)) {
      array_push($data['images'], $this->parseImages($product->$var, $data));
      if ($this->ERROR) return false;
      $cnt++;
      $var = 'Картинка'.$cnt;
   }
}

и в функции private function parseImages($xml, $data) в конце убрал квадратные кавычки:

	private function parseImages($xml, $data) {

		if (!$xml) {
			$this->ERROR = "parseImages() - Нет картинок в XML";
			return false;
		}

		$data_images = array();

		foreach ($xml as $image) {

			$image = (string)$image;
			if (empty($image)) continue;

			// Обрабатываем только картинки
			$image_info = @getimagesize(DIR_IMAGE . $image);
			if ($image_info == NULL) {
				$this->log("Это не картинка: " . DIR_IMAGE . $image);
			};

			$description = "";
			if (isset($data['description_files'][$image])) {
				$description = $data['description_files'][$image];
			}

			$this->log("Картинка: " . $image, 2);
			$this->log("Описание файла: " . $description, 2);
			$data_images = array(					/* вот тут убрал квадратные кавычки */
				'file'			=> $image,
				'description'	=> $description
			);

		}
		return $data_images;

	} // parseImages()

Картинки стали записывать в БД все как положено.

 

Не знаю как на производительности скажется, лучше проверь за мной)

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


Еще есть проблема.

если экспортируемый файл из 1с весит больше чем хостинг разрешает отправить,

то 1с делит архив на части и отправляет по очереди,

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

 

Версия модуля 1.6.3.8
Версия ocStore 2.1.0.2.1

CML 2.04

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


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

Это связано с тем что основная картинка в товар прописывается раньше, а наложение происходит позже. 

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

55 минут назад, indaled72 сказал:

Еще есть проблема.

если экспортируемый файл из 1с весит больше чем хостинг разрешает отправить,

то 1с делит архив на части и отправляет по очереди,

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

 

Версия модуля 1.6.3.8
Версия ocStore 2.1.0.2.1

CML 2.04

А с какого перепуга они будут с одинаковым названием??? у них должно быть названия import0_1.xml, import0_2.xml , importX_Y.xml, где X это порядковый номер каталога, Y - порядковый номер файла. И модуль не собирает их в один файл а обрабатывает каждый XML по отдельности как полноценный XML.

Если у Вас другой алгоритм, тогда мне нужна конфига 1С где бы я мог проверить. У меня сколько есть 1С версии такого не видел.

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

1 час назад, t04ka сказал:

Когда предвидится обновление с рабочими подкатегориями? =)

Товарные категории еще не сделал, выбор в настройках есть но работает некорректно. Но группы грузит правильно, сегодня выложу, буквально через минут 30

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

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

 

Водяные знаки меня не интересовали, у меня другая проблема)

Но все равно спасибо)

 

 

Я нашел выход из своей ситуации, пришлось чуть-чуть переписать две функции

Функции переписаны только под CML2.04, у других версий будут ошибки.

\admin\model\tool\exchange1c.php

 

В функции private function parseProducts($xml, $classifier) заменил следующий участок кода


// Картинки, только для товара (CML 2.04)
if ($product->ОсновнаяКартинка) {


   $data['images'][0] = $this->parseImages($product->ОсновнаяКартинка, $data);
   
   if ($this->ERROR) return false;
   // дополнительные, когда элементы в файле называются <Картинка1>, <Картинка2>...
   $cnt = 1;
   $var = 'Картинка'.$cnt;
   while (!empty($product->$var)) {
      array_push($data['images'], $this->parseImages($product->$var, $data));
      if ($this->ERROR) return false;
      $cnt++;
      $var = 'Картинка'.$cnt;
   }
}

и в функции private function parseImages($xml, $data) в конце убрал квадратные кавычки:


	private function parseImages($xml, $data) {

		if (!$xml) {
			$this->ERROR = "parseImages() - Нет картинок в XML";
			return false;
		}

		$data_images = array();

		foreach ($xml as $image) {

			$image = (string)$image;
			if (empty($image)) continue;

			// Обрабатываем только картинки
			$image_info = @getimagesize(DIR_IMAGE . $image);
			if ($image_info == NULL) {
				$this->log("Это не картинка: " . DIR_IMAGE . $image);
			};

			$description = "";
			if (isset($data['description_files'][$image])) {
				$description = $data['description_files'][$image];
			}

			$this->log("Картинка: " . $image, 2);
			$this->log("Описание файла: " . $description, 2);
			$data_images = array(					/* вот тут убрал квадратные кавычки */
				'file'			=> $image,
				'description'	=> $description
			);

		}
		return $data_images;

	} // parseImages()

Картинки стали записывать в БД все как положено.

 

Не знаю как на производительности скажется, лучше проверь за мной)

Я по-другому сделал, проверил на тестовом файле. Уже скоро выложу 1.6.3.9

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

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

Я настраивал на демо сайте вашем, не подключается!

Обмен пока временно запретил

Завтра можно будет попробовать с 22:00 до 00:00 GMT+9

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

Поставил все четко, но не пускает в модуль!В чем проблема?

Screenshot_1.thumb.png.69c615f0d4cf58b30379016133a0c2d6.png

Проверьте права доступа у пользователя на модуль

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

 

Отправлено с моего Power Five Evo через Tapatalk

 

 

 

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

8 hours ago, Kirillove said:

Товарные категории еще не сделал, выбор в настройках есть но работает некорректно. Но группы грузит правильно, сегодня выложу, буквально через минут 30

 

Здорово! СПасибо!

 

Ошибка осталась так же  Undefined index: exchange_status in /admin/model/tool/exchange1c.php on line 5808

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


10 часов назад, Kirillove сказал:

Проверьте права доступа у пользователя на модуль

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

 

Отправлено с моего Power Five Evo через Tapatalk

 

 

 

Права прописанны!Я всегда выполняю это действие после установки каждого модуля. У Админа права на просмотр всех модулей!

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


Кстати цикл загрузки можно программно прервать если поместить файл с названием break в папку /system/storage/cache/exchange1c
Пока там этот файл лежит загрузка import и offers будет прерываться после первого товара.

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

8 часов назад, abadrozadub сказал:

 

Здорово! СПасибо!

 

Ошибка осталась так же  Undefined index: exchange_status in /admin/model/tool/exchange1c.php on line 5808

Я не успел исправить эту ошибку еще, сегодня поправлю

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

В 16.05.2017 в 20:58, Kirillove сказал:

 

Я посмотрел, действительно не писал остатки так как еще не определился как все это будет выглядеть.

В версии 1.6.3.9 реализовал отдельной функцией записью остатков в опции, то есть теперь остаток характеристики будет записан во опцию или опции, то есть если у характеристики несколько опций, то у них будут одинаковые остатки. 

Нестандартная система для 1С, которая не совместима с логикой работы опций в opencart, поэтому то что я сделал пока буду считать временным решением.

Почему не совместима? Потому-что в 1С нет остатков у свойств характеристик, только у самой характеристики, а за это отвечает таблица в opencart product_quantity

Поэтому в карточку товара загружаются уже остатки каждой характеристики из таблицы product_quantity, дорабатывайте вывод для своего шаблона.

Чтобы остатки выводились в шаблон товара, модификатор (файл XML в комплекте дистрибутива, который устанавливается с модулем) в контроллере правит файл product.php.

Надеюсь понятно расписал, если непонятно спрашивайте.

Версию 1.6.3.9 на форум выложу чуть позже, когда обработаю все ошибки на текущий момент.

Благодарю за ответ, будем пробовать, если что переспрошу...

Подскажите, только увидел, один и тот же производитель при выгрузке из 1С создается на сайте как копия производителя и привязывается каждый товар отдельно к каждому производителю, не могу понять, по идее ИД у них одинаковый и наименование тоже, а выгружает как дубли... На форуме не нашел, это только у меня? Заранее спасибо!

производители.PNG

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


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

Благодарю за ответ, будем пробовать, если что переспрошу...

Подскажите, только увидел, один и тот же производитель при выгрузке из 1С создается на сайте как копия производителя и привязывается каждый товар отдельно к каждому производителю, не могу понять, по идее ИД у них одинаковый и наименование тоже, а выгружает как дубли... На форуме не нашел, это только у меня? Заранее спасибо!

производители.PNG

У Вас видимо у производителей присутствует Ид и он разный, скиньте мне Ваш import.xml

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

8 часов назад, SoundMonster сказал:

Права прописанны!Я всегда выполняю это действие после установки каждого модуля. У Админа права на просмотр всех модулей!

Может файл какой отсутствует? Постучитесь в скайп попробую разобраться

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

20 минут назад, Kirillove сказал:

Может файл какой отсутствует? Постучитесь в скайп попробую разобраться

Все разобрался через установку модулей, модуль встал не так, пришлось вручную кидать папку на фтп и ставить.Вот в чем проблема была!

 

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


Позже проверю выгрузку заказов, в купленном модуле от NeoSeo тут на форуме, заказы не грузит. Ответа от поддержки нет, а тут вы со своим модулем причем бесплатным. И с кучей фишек.Спасибо вам!

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


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

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

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

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

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

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

Вхід

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

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

Important Information

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