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

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


Recommended Posts

20 часов назад, indaled сказал:

Модуль на данном этапе не для конечника, а для опытного разработчика, который готов долго и упорно пилить индивидуальные решения. Разумеется цена внедрений высока и далеко не каждый владелец готов их оплачивать :)

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

 

Автор же данного модуля, похоже, слышит только себя. Ему не один раз уже чуть ли не на блюдечке приносят готовые правки выявленных у него багов, а он продолжает упорно перетаскивать их в свои новые беты дальше и дальше. Очень странный человек. Либо это такой своеобразный способ привлечь потенциальных клиентов и подсадить их на вечный донат. "Ой, какой классный модуль, как у него много всего! Но у меня почему-то не работает, а надо срочно - поможите? Я заплачу! ... ... Конечно, помогу!" Тогда это не очень красиво, мягко так скажем. И тогда сразу думаешь, а стоит ли как-то помогать в разработке, если человек в этом не только не нуждается, а даже чутка процессу вредит?

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


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

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


Если актуально с картинками для характеристик в function setProductOptionValue

вставляем

$this->query("UPDATE `" . DB_PREFIX . "option_value` SET `image` = '" .(string)$data_value['image'] . "' WHERE `option_value_id` = " . (int)$option_value_id);
$this->log("Запись картинки  = " . (string)$data_value['image']);

 

и в function parseProductOptions

добавляем

строка 5838

$feature_image = '';

строка 5860

$feature_image .= ($feature_image) ? ', ' . $image : $image;

строка 5866

$options[$feature_name] = array(
                'value'        => $feature_value,
                'guid'        => '',
                'image'        => $image

строка 5880

$options[$feature_name] = array(
                'value'        => $feature_value,
                'guid'        => '',
                'image'        => $image

 если УТ 10.3 то так же допиливать приходится добавление картинки к характеристике по аналогии как для товара

 

 

2121212.PNG

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


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

Не полностью - это значит, что не проставляется дата доставки, а также адрес покупателя. Система УНФ 1с Фреш. В ней доставка выглядит так:

0.thumb.png.d79d4b7bf01e8db71542e6e6d7a792b8.png

При этом сумма заказа считается правильно.

 

В синхронизации со стороны 1с проставлено так:

Спойлер

Система управления сайтом: 1-C Битрикс

Статусы заказов и id(Код статуса) указывать как в OC. ID можно получить по аналогии ниже по тексту, только нужно смотреть "id=xx" в редактирование статусов заказов.

1.thumb.png.439316b8cec0971ef6d505debd0edd1a.png

 

Способы доставки указывать так. Т.е. в 'Служба доставки на сайте' указывается название модуля доставки. Посмотреть его можно в OC Дополнения->Дополнения Выбираем из выпадающего списка 'Доставка' и жмём редактировать любую из доставок. В адресной строке будет название.

Пример:  https://xxxxxxxxxxxxxxx.xx/admin/index.php?route=extension/shipping/pickup&token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Берёте название из 'route=extension/shipping/pickup'. Название доставки будет 'pickup'.

Код службы указываете из 1С.

2.thumb.png.8aac4139d3f704e0bf4ea8fd97080bf4.png

 

Ещё нудно будет в номенклатуре создать услугу "Доставка товара".

 

 

Далее по коду. У меня скачена и поставлена версия oc2.3-exchange1c_1.6.4.4b34.ocmod.

Там такое кол-во косяков... Короче модуль из коробки не заработает и править его вам придётся пару дней.

По поводу доставки. Нус начнём +)

 

Фаил admin/model/extension/exchange1c.php.

Первая правка кода :

Спойлер

	/**
	 * ver 12
	 * update 2018-04-08
	 * Выгружает заказы в торговую систему
	 */
	public function queryOrders() {

		$this->log("==== Выгрузка заказов ====",2);
		$this->log('model_sale_order->getOrder():', 2);

		$orders_export = $this->queryOrdersExport();

		// Валюта документа
		$currency = $this->config->get('exchange1c_order_currency') ? $this->config->get('exchange1c_order_currency') : 'руб.';
		$document = array();
		
		if(!empty($orders_export)) {
			$this->log("==== Найдены новые заказы к выгрузке ====",2);

			$document_counter = 0;

			$this->load->model('customer/customer_group');
			$this->load->model('sale/order');
			//$this->load->model('catalog/unit');

			foreach ($orders_export as $order_id => $order_status_id) {

				$order = $this->model_sale_order->getOrder($order_id);
				$this->log('model_sale_order->getOrder():', 2);
				$this->log($order, 2);

				$this->getCustomerInfo($order);

				$this->log("> Выгружается заказ #" . $order['order_id']);

				$order['date'] = date('Y-m-d', strtotime($order['date_added']));
				$order['time'] = date('H:i:s', strtotime($order['date_added']));
				$customer_group = $this->model_customer_customer_group->getCustomerGroup($order['customer_group_id']);

				// Шапка документа
				$document['Документ' . $document_counter] = array(
					 'Ид'          => $order['order_id']
					,'Номер'       => $order['order_id']
					,'Дата'        => $order['date']
					,'Время'       => $order['time']
					,'Валюта'      => $currency
					,'Курс'        => 1
					,'ХозОперация' => 'Заказ товара'
					,'Роль'        => 'Покупатель'
					,'Сумма'       => $order['total']
					,'Комментарий' => $order['comment']
					//,'Соглашение'  => $customer_group['name'] // the agreement
				);

				// Первая буква должна быть заглавной и убираем лишние пробелы сдева и справа
				// ТОЛЬКО ДЛЯ САЙТА РАБОТАЮЩЕГО НА КОДИРОВКЕ UTF-8
				$order['lastname'] = mb_convert_case(trim($order['lastname']), MB_CASE_TITLE, "UTF-8");
				$order['firstname'] = mb_convert_case(trim($order['firstname']), MB_CASE_TITLE, "UTF-8");
				if (isset($order['middlename']))
					$order['middlename'] = mb_convert_case(trim($order['middlename']), MB_CASE_TITLE, "UTF-8");
				else
					$order['middlename'] = '';

				// Собираем полное наименование покупателя, ФИО
				$order['username'] =  $order['lastname'] . ' ' . $order['firstname'] . ($order['middlename'] ? ' ' . $order['middlename'] : '');

				// ПОКУПАТЕЛЬ (КОНТРАГЕНТ)
				$document['Документ' . $document_counter]['Контрагенты']['Контрагент'] = $this->setCustomer($order);
				if ($this->ERROR) return false;

				// ТОВАРЫ ДОКУМЕНТА
				$products = $this->model_sale_order->getOrderProducts($order_id);

				$product_counter = 0;
				foreach ($products as $product) {
					$product_guid = $this->getGuidByProductId($product['product_id']);
					$document['Документ' . $document_counter]['Товары']['Товар' . $product_counter] = array(
						'Ид'             => $product_guid,
						'Наименование'   => $product['name'],
						'БазоваяЕдиница' => array(
							'ATTRIBUTES' => array( 
								'Код' => '796',
								'НаименованиеПолное' => 'Штука',
								'МеждународноеСокращение' => 'PCE'
							),
							'CODE' => 'шт'
						),
						'ЦенаЗаЕдиницу'  => $product['price'],
						'Количество'     => $product['quantity'],
						'Сумма'          => $product['total'],
						'Скидки'         => array(
							'Скидка' => array(
								'УчтеноВСумме' => 'false',
								'Сумма' => 0
							)
						),
						'ЗначенияРеквизитов' => array(
							'ЗначениеРеквизита' => array(
								'Наименование' => 'ТипНоменклатуры',
								'Значение' => 'Товар'
							)
						),
						'ЗначенияРеквизитов' => array(
							'ЗначениеРеквизита' => array(
								'Наименование' => 'ВидНоменклатуры',
								'Значение' => 'Товар'
							)
						),
						
					);
					$current_product = &$document['Документ' . $document_counter]['Товары']['Товар' . $product_counter];
					// Резервирование товаров
					if ($this->config->get('exchange1c_order_reserve_product') == 1) {
						$current_product['Резерв'] = $product['quantity'];
					}

					// Характеристики
					$feature_guid = $this->getFeatureGuid($product['order_product_id'], $order_id);
					if ($feature_guid) {
						$current_product['Ид'] .= "#" . $feature_guid;
					}

					$product_counter++;
				}
				
				// Доставка в комментарий
				$query = $this->query("SELECT `title`, `value` FROM `" . DB_PREFIX . "order_total` WHERE `order_id` = " . $order_id . " AND `code` = 'shipping'");
				if($query->num_rows) {
					$document['Документ' . $document_counter]['Товары']['Товар' . $product_counter] = array(
						'Ид'             => 'ORDER_DELIVERY',
						'Наименование'   => 'Доставка заказа',
						'БазоваяЕдиница' => array(
							'ATTRIBUTES' => array( 
								'Код' => '796',
								'НаименованиеПолное' => 'Штука',
								'МеждународноеСокращение' => 'PCE'
							),
							'CODE' => 'шт'
						),
						'ЦенаЗаЕдиницу'  => $query->row['value'],
						'Количество'     => 1,
						'Сумма'          => $query->row['value'],
						'ЗначенияРеквизитов' => array(
							'ЗначениеРеквизита' => array(
								'Наименование' => 'ТипНоменклатуры',
								'Значение' => 'Услуга'
							)
						),
						'ЗначенияРеквизитов' => array(
							'ЗначениеРеквизита' => array(
								'Наименование' => 'ВидНоменклатуры',
								'Значение' => 'Услуга'
							)
						),
					);
					$document['Документ' . $document_counter]['Комментарий'] .= "Доставка: " . $query->row['title'] . ". Сумма доставки: " . $query->row['value'] . "\n";
				}
				
				// Доставка в комментарий
				
				// РЕКВИЗИТЫ ДОКУМЕНТА
				$requisites = array();
				$requisites['Метод оплаты'] = $order['payment_method'];
				
				$shipping_code = explode('.', $order['shipping_code']);
				$requisites['Способ доставки'] = $shipping_code[1];
				
				$requisites['Заказ оплачен'] = 'false';
				
				$requisites['Доставка разрешена'] = 'true';
				
				$requisites['Дата разрешения доставки'] = '' . $order['date'] . ' ' . $order['time'] . '';
				
				$requisites['Финальный статус'] = 'false';
				
				
				$document['Документ' . $document_counter]['ЗначенияРеквизитов'] = $this->setDocumentRequisites($order, $document, $requisites);
				if ($this->ERROR) return false;				
				// 
				
				//$document['Документ' . $document_counter]['Контрагенты']['Контрагент'] = $this->setCustomer($order);

				$document_counter++;

			}  // foreach ($query->rows as $orders_data)

		} // if (count($orders_export))
		//$this->log($document, 2);
		// Формируем заголовок
		$root = '<?xml version="1.0" encoding="utf-8"?><КоммерческаяИнформация ВерсияСхемы="2.07" ДатаФормирования="' . date('Y-m-d', time()) . '" />';

		$root_xml = new SimpleXMLElement($root);
		$xml = $this->array_to_xml($document, $root_xml);

		// Проверка на запись файлов в кэш
		$cache = DIR_CACHE . 'exchange1c/';
		if (@is_writable($cache)) {
			// запись заказа в файл
			$f_order = @fopen($cache . 'orders.xml', 'w');
			if (!$f_order) {
				$this->log("Нет доступа для записи в папку: " . $cache);
			} else {
				fwrite($f_order, $xml->asXML());
				fclose($f_order);
			}
		} else {
			$this->log("Папка " . $cache . " не доступна для записи, файл заказов не может быть сохранен!",1);
		}

		return $xml->asXML();

	} // queryOrders()

 

И тут же ещё 1-но изменение, т.к. затрагивается функция $this->setDocumentRequisites()

Спойлер

	/**
	 * ver 2
	 * update 2017-06-03
	 * Формирует реквизиты документа
	 */
	private function setDocumentRequisites($order, $document, $dop = array()) {

		$requisites = array();
		// Счетчик
		$counter = 0;

		$requisites['Дата отгрузки'] 				= $order['date'];
		$requisites['Статус заказа'] 				= $this->getOrderStatusName($order['order_status_id']);
		$requisites['Вид цен'] 						= $this->getPriceTypeName($order['customer_group_id']);
		$requisites['Контрагент'] 					= $order['username'];
//		$requisites['Склад'] 						= $this->getWarehouseName($order['warehouse_id']);
//		$requisites['Организация'] 					= 'Наша фирма';
//		$requisites['Подразделение'] 				= 'Интернет-магазин';
//		$requisites['Сумма включает НДС'] 			= 'true';
//		$requisites['Договор контрагента'] 			= 'Основной договор';
//		$requisites['Метод оплаты'] 				= 'Заказ по телефону';

		// Для 1С:Розница
//		$requisites['ТочкаСамовывоза'] 				= 'Название магазина';
//		$requisites['ВидЦенНаименование'] 			= 'Розничная';
//		$requisites['СуммаВключаетНДС'] 			= 'true';
//		$requisites['НаименованиеСкидки'] 			= 'Скидка 5%';
//		$requisites['ПроцентСкидки']				= 5;
//		$requisites['СуммаСкидки']					= 1000;
//		$requisites['СкладНаименование']			= 'Основной склад';
//		$requisites['ПодразделениеНаименование']	= 'Основное подразделение';
//		$requisites['Склад']						= 'Основной склад'

		// Для УНФ XML 2.08
//		$requisites['ВидЦен'] 						= 'Розничная';
//		$requisites['СкладДляПодстановкиВЗаказы'] 	= 'Склад основной';

		
		// Добавлено мной!!!


		$data = array();
		foreach ($requisites as $name => $value) {

			// Пропускаем пустые значения
			if (!$value) continue;

			$data['ЗначениеРеквизита'.$counter]	= array(
				'Наименование'		=> $name,
				'Значение'			=> $value
			);

			$counter ++;

		} // foreach
		
		if(!empty($dop)){
			foreach ($dop as $name => $value) {

				// Пропускаем пустые значения
				if (!$value) continue;

				$data['ЗначениеРеквизита'.$counter]	= array(
					'Наименование'		=> $name,
					'Значение'			=> $value
				);

				$counter ++;

			} // foreach			
		}

		return $data;

	} // setDocumentRequisites()

 

И ещё одно изменение, данный код вызывается самым последним запросом с 1С. И там лезла ошибка 2101 и после "return false;". Ошибка самого модуля OC. Чо это я хз. Разбираться стало лень, ибо просто её закоментировав всё норм работает.

Спойлер

	/**
	 * ****************************** ФУНКЦИИ ДЛЯ ЗАГРУЗКИ ЗАКАЗОВ ******************************
	 */

	/**
	 * ver 6
	 * update 2018-03-10
	 * Меняет статусы у новых заказов заказов
	 *
	 * @param	int		exchange_status
	 * @return	bool
	 */
	public function queryOrdersChangeStatus($orders) {
		
		// Если статус новый пустой, тогда не меняем, чтобы не породить ошибку
		$new_status = $this->config->get('exchange1c_order_status_exported');
		if (!$new_status) {
			//$this->errorLog(2101, $new_status);	
			$this->Log("Я закоментировал после '$this->errorLog(2101, $new_status);' строку '//return false;'", $new_status);
			//return false;
		}

		// Уведомление при смене статуса
		$notify = 0;

		if ($orders) {

			$this->NOW = date('Y-m-d H:i:s');

			foreach ($orders as $order_id => $order_status_id) {

				// Пропускаем те у кого статус не равен "Статус для выгрузки"
				if ($order_status_id != $this->config->get('exchange1c_order_status_export')) {
					$this->log("> Cтатус заказа #" . $order_id . " не менялся.", 2);
					continue;
				}

				// Меняем статус
				$query = $this->query("UPDATE `" . DB_PREFIX . "order` SET `order_status_id` = " . (int)$new_status . " WHERE `order_id` = " . (int)$order_id);
				$this->log("> Изменен статус заказа #" . $order_id);

				// Добавляем историю в заказ
				$query = $this->query("INSERT INTO `" . DB_PREFIX . "order_history` SET `order_id` = " . (int)$order_id . ", `comment` = 'Заказ выгружен в учетную систему', `order_status_id` = " . (int)$new_status . ", `notify` = " . $notify . ", `date_added` = '" . $this->NOW . "'");
				$this->log("> Добавлена история в заказ (изменен статус) #" . $order_id, 2);
			}
		}

		return true;

	}  // queryOrdersStatus()

 

 

Ещё изменения в функиции queryOrdersExport(), при чем почему это не учтено было сразу, я не понимаю. Ну можно же по аналогии с уже похожими функциями сделать. Короче, изначально, когда покупатель доходит до подтверждения заказа, но не нажимает кнопку подтвердить, заказ всё ровно создаётся, но его статус 0. И ОС такие заказы игнорирует, но вот наш модуль исправно грузил их в 1С...

Короче вот код изменённый:

Спойлер

	/**
	 * ver 1
	 * update 2018-03-10
	 * Получает список заказов на экспорт
	 */
	public function queryOrdersExport() {
		$orders_export = array();

		$this->log("==== Формирование заказов для экспорта в УС ====", 2);

		// Выгрузка измененных заказов
		if ($this->config->get('exchange1c_orders_export_modify')) {
			
			// По текущую дату и время
			$to_date = date('Y-m-d H:i:s');

			$this->log($this->config->get('exchange1c_order_date'), 2);
			if ($this->config->get('exchange1c_order_date')) {
				$from_date = str_replace('T',' ',$this->config->get('exchange1c_order_date')) . ":00";
			} else {
				// При первом обмене это поле будет пустым, если не изменено вручную. Для пустого поля зададим начало столетия
				$from_date = '2001-01-01 00:00:00';
			}
			$this->log($from_date , 2);
			
			$this->log(" > Выгружаю заказы с " . $from_date . " по " . $to_date, 2);

			// Этот запрос будет использовать индексы поля date_modified
			$query = $this->query("SELECT o.order_id, o.order_status_id FROM " . DB_PREFIX . "order o LEFT JOIN " . DB_PREFIX . "order_status os ON (o.order_status_id = os.order_status_id) WHERE o.date_modified BETWEEN STR_TO_DATE('" . $from_date . "', '%Y-%m-%d %H:%i:%s') AND STR_TO_DATE('" . $to_date . "', '%Y-%m-%d %H:%i:%s') AND o.order_status_id > '0'");

			if ($query->num_rows) {
				foreach ($query->rows as $row) {
					$orders_export[$row['order_id']] = $row['order_status_id'];
				}
			}
		}

		// Выгрузка заказов со статусом
		if ($this->config->get('exchange1c_order_status_export') != 0) {

			$query = $this->query("SELECT o.order_id, o.order_status_id FROM " . DB_PREFIX . "order o LEFT JOIN " . DB_PREFIX . "order_status os ON (o.order_status_id = os.order_status_id) WHERE o.order_status_id = " . (int)$this->config->get('exchange1c_order_status_export')) . " AND o.order_status_id > '0'";

			if ($query->num_rows) {

				foreach ($query->rows as $row) {

					// Пропускаем если такой заказ уже выгружается
					if (isset($orders_export[$row['order_id']])) {
						continue;
					}

					$orders_export[$row['order_id']] = $row['order_status_id'];
				}
			}
		}

		$this->log('queryOrdersExport():', 2);
		$this->log($orders_export, 2);
		return $orders_export;

	} // queryOrdersExport()

 

Изначально не было условия:

o.order_status_id > '0'

И не проверялись статусы вообще:

"SELECT order_id, order_status_id FROM " . DB_PREFIX . "order ..."

Т.е. LEFT JOIN не было!!!

 

И я просто не понимаю, как это можно было проигнорировать. Толи автор не понимает, как вообще работает ОС, толи я вообще хз...

 

Вроде что-то ещё правил в контроллере...

 

Прилагаю архив с папкой admin, ибо реально не помню, что там ещё правил, что бы модуль начал нормально работать +)

admin.rar

 

Добавлю, что 1с-ка без всяких допилов. Вес и всё остальное даже не копал, ибо не надо. Мне проще, чтобы всё это рассчиталось на сайте, а в 1с-ку пришла просто сумма, а также кому и куда. Если кому надо, могу полностью весь модуль по файлам скинуть, как руки дойдут =).

 

Так же если кто-то разберётся с адресом доставки и датой напишите.

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

Коллега, вы УНФ с Битриксом через этот модуль дружите? Разве у Битрикса нет своего модуля интеграции? Вроде недавно вышло обновление, которое довольно пристойно работает.

 

Радует ваш подход ничего не трогать в 1С. Для данной задачи обмена вовсе не нужно менять код конфигурации и не нужно менять структуру базы 1С и структуру таблиц опенкарта. Дополнительные таблицы можно и нужно создавать, для хранения связей, но менять структуру полей штатного магазина - не нужно. Автор же данного модуля со времен царя гороха зачем-то крячит дефолтные таблицы, с одному ему известным целями, тем самым потенциально разрушая совместимость с другими модулями.

 

По поводу доставки. Я уже писал чуть ранее, что в 1С начали плотно заниматься этим вопросом интегрировали функционал отвечающий за теги доставки в CommerceML, а еще раньше - сделали её отдельной закладкой в форме заказа покупателя в УНФ (остальные конфигурации не смотрел). Наворотили там конечно будь здоров, я же со времен УНФ 1.4 продолжаю держать отдельную группу справочника номенклатуры с несколькими услугами доставки для покупателя и проставляю эти услуги в заказ. Реализовать эту схему даже для полностью двунаправленного обмена данными заказов достаточно легко - было бы желания, а его у автора нет. Вопрос с доставкой было поднят мной еще два года назад, в апреле-мае я ему прислал законченное ТЗ - реакция была нулевая. Поздравил меня с наступающими праздниками...

 

7 часов назад, DROND сказал:

Там такое кол-во косяков... Короче модуль из коробки не заработает и править его вам придётся пару дней.

...

И я просто не понимаю, как это можно было проигнорировать. Толи автор не понимает, как вообще работает ОС, толи я вообще хз...

 

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

 

Хотелось бы ошибаться, но боюсь, ваши труды, как и ряда других участников, автором не будут востребованы.

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


В 20.07.2018 в 14:32, DROND сказал:

Прилагаю архив с папкой admin, ибо реально не помню, что там ещё правил, что бы модуль начал нормально работать +)

admin.rar

 

Добавлю, что 1с-ка без всяких допилов. Вес и всё остальное даже не копал, ибо не надо. Мне проще, чтобы всё это рассчиталось на сайте, а в 1с-ку пришла просто сумма, а также кому и куда. Если кому надо, могу полностью весь модуль по файлам скинуть, как руки дойдут =).

 

Поставил чистую ocStore 2.3, на неё oc2.3-exchange1c_1.6.4.4b34.ocmod, поверх ваши файлы.

При выгрузке из 1с выдаёт ошибку 3001 (Файл не был загружен на сайт, проверьте права на запись в папке /system/storage/cache/exchange1c.)

В логе

2018-07-22 13:09:13 - (M) НАЧАЛО ЗАГРУЗКИ ДАННЫХ
2018-07-22 13:09:13 - (M) SELECT `language_id` FROM `oc_language` WHERE `code` = 'ru-ru'
2018-07-22 13:09:13 - (M) Язык загрузки, id: 1
2018-07-22 13:09:13 - (M) Читается XML файл: 'import.xml'
2018-07-22 13:09:13 - Строка ошибки: 8320 - error_3001_log
2018-07-22 13:09:13 - ОШИБКА 3001. Смотрите описание ошибки в справке модуля обмена.
2018-07-22 13:09:13 - 2524(C) Удален файл: /.../system/storage/cache/exchange1c/import.xml
2018-07-22 13:09:13 - 0049(C) failure
2018-07-22 13:09:13 - 0052(C) ERROR: 3001
2018-07-22 13:09:13 - Ошибка при загрузке файла: /.../system/storage/cache/exchange1c/import.xml

Притом, что версия от автора товары выгружает, но перед загрузкой offers.xml пишет

Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Обмен не выполнен
Ответ сервера:
Successfully processed file: /.../system/storage/cache/exchange1c/import.xml

Выгрузка товаров завершена с ошибками!!!

 

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


решил чисто для интереса поставить на чистый магаз, только что установленный Осторе 2.3 

версию opencart2.3-exchange1c_1.6.3.12.ocmod 

 

 

 

Fatal error: Uncaught Error: Call to a member function installUnits() on null in /var/www/u0302539/data/www/xn--b1aceb4aencbodx.xn--p1ai/admin/controller/extension/module/exchange1c.php:1073 Stack trace: #0 /var/www/u0302539/data/www/xn--b1aceb4aencbodx.xn--p1ai/system/storage/modification/system/engine/action.php(51): ControllerExtensionModuleExchange1c->install(Array) #1 /var/www/u0302539/data/www/xn--b1aceb4aencbodx.xn--p1ai/system/storage/modification/system/engine/loader.php(24): Action->execute(Object(Registry), Array) #2 /var/www/u0302539/data/www/xn--b1aceb4aencbodx.xn--p1ai/admin/controller/extension/extension/module.php(25): Loader->controller('extension/modul...') #3 /var/www/u0302539/data/www/xn--b1aceb4aencbodx.xn--p1ai/system/storage/modification/system/engine/action.php(51): ControllerExtensionExtensionModule->install() #4 /var/www/u0302539/data/www/xn--b1aceb4aencbodx.xn--p1ai/admin/controller/startup/router.php(26): Action->execute(Object(Registry), Array) #5 /var/www/u0302539/data/www/xn--b1aceb4aencbodx in /var/www/u0302539/data/www/xn--b1aceb4aencbodx.xn--p1ai/admin/controller/extension/module/exchange1c.php on line 1073

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


В 20.07.2018 в 20:04, IronMann сказал:

Коллега, вы УНФ с Битриксом через этот модуль дружите? Разве у Битрикса нет своего модуля интеграции? Вроде недавно вышло обновление, которое довольно пристойно работает.

 

Вы меня не правильно поняли. В настройке синхронизации выбран битрикс, а подружить я пытаюсь УНФ и ОС.

3.thumb.png.91ad34bba5b791658cfb175bf0250fe3.png

 

 

 

21 час назад, ironzorin2 сказал:

Поставил чистую ocStore 2.3, на неё oc2.3-exchange1c_1.6.4.4b34.ocmod, поверх ваши файлы.

При выгрузке из 1с выдаёт ошибку 3001 (Файл не был загружен на сайт, проверьте права на запись в папке /system/storage/cache/exchange1c.)

В логе


2018-07-22 13:09:13 - (M) НАЧАЛО ЗАГРУЗКИ ДАННЫХ
2018-07-22 13:09:13 - (M) SELECT `language_id` FROM `oc_language` WHERE `code` = 'ru-ru'
2018-07-22 13:09:13 - (M) Язык загрузки, id: 1
2018-07-22 13:09:13 - (M) Читается XML файл: 'import.xml'
2018-07-22 13:09:13 - Строка ошибки: 8320 - error_3001_log
2018-07-22 13:09:13 - ОШИБКА 3001. Смотрите описание ошибки в справке модуля обмена.
2018-07-22 13:09:13 - 2524(C) Удален файл: /.../system/storage/cache/exchange1c/import.xml
2018-07-22 13:09:13 - 0049(C) failure
2018-07-22 13:09:13 - 0052(C) ERROR: 3001
2018-07-22 13:09:13 - Ошибка при загрузке файла: /.../system/storage/cache/exchange1c/import.xml

 

 

 

В чем у вас проблема может быть, я сказать затрудняюсь. Проверьте разрешения на папки. У меня 0776 и всё работает нормально.

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

Да, я вас понял. На вскидку не помню, там кроме битрикса что еще выбирается. UMI там есть? С настройками для UMI проверяли?

 

Надо понять, насколько серьезно отличается протокол обмена для Битрикса и всего прочего. Либо это печальная ситуация, когда протокол не универсален и требует разных тегов для разных CMS, либо, что более оптимистично, протокол универсален, а этой настройкой задается пресет, определяющий выгружать или не выгружать тот или иной состав данных для той или иной CMS.

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


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

Да, я вас понял. На вскидку не помню, там кроме битрикса что еще выбирается. UMI там есть? С настройками для UMI проверяли?

 

Надо понять, насколько серьезно отличается протокол обмена для Битрикса и всего прочего. Либо это печальная ситуация, когда протокол не универсален и требует разных тегов для разных CMS, либо, что более оптимистично, протокол универсален, а этой настройкой задается пресет, определяющий выгружать или не выгружать тот или иной состав данных для той или иной CMS.

 

С другими настройками не проверял, но там убирается некоторый функционал. На выбор всего три пункта: UMI, bitrix, другая. Вот, что написано в описании:

4.thumb.png.75809d518a5d5837c89380de26637e78.png

 

Думаю скорее всего второй вариант, хотя тут можно долго гадать, нужно смотреть парсер со стороны 1С.

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

Когда я игрался с сервисом UMI.CMS, я ставил в отладчике точку останова, где УНФ получает распакованный orders.xml. Там все рабочие теги на блюдечке. Оформляю на сайте заказ с как можно большим количеством интересующих данных, а потом смотрю, каким тегами те или иные данные передаются. Можно так все новые теги, которые реально работают, выцепить. А дальше - дело техники.

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


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

 

 

1)Сегодня решил обновиться на новую 132 релиз, посмотрел, лицензия закончилась, продлил за 899 рублей на форуме 

image.png.12deb049f779c228602101300637c536.png

 

Продлеваю, скачиваю 132 релиз, обновляюсь, но не хера не работает еще и сайт упал, товары не открываются, пишется нет лицензии. Хотя все куплено

Пишу в пооддержку 

 

image.png.9b79ac1dfbdc9f041e38d0114963a428.png

 

 

 

Я говорю как так то, продление куплено, в чем проблема 

 

 

 

 

image.png.805b26ef4eb61da6a251b73bc88952a5.png

 

Те по факту я обновился, лицензию анулировали))) Продление 10 тыс стоит, 

 

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


 

Цитата

 


1)Сегодня решил обновиться на новую 132 релиз, посмотрел, лицензия закончилась, продлил за 899 рублей на форуме 

Продлеваю, скачиваю 132 релиз, обновляюсь, но не хера не работает еще и сайт упал, товары не открываются, пишется нет лицензии. Хотя все куплено

...

Те по факту я обновился, лицензию анулировали))) Продление 10 тыс стоит, 

 

 

Это вы про модуль товарища из Донецка? По крайней мере, если не путаю, начиналось это как модуль от Alexdev из Донецка. и буквально еще полтора года назад, он свой модуль в бессрочном виде за 1800 рублей продавал. Потом, он/они/оно стало целое студио NeoSeo из Киева и Львова и в начале модуль стал стоить пятак, а теперь и целых 10 000 за него просят. Большое головокружение от успехов у студио, особенно на фоне того, что в этой теме с этим бесплатным модулем происходит. :) В начале, полагаю, тревожно и грустно было, когда тут такая движуха пошла - по функциональности заявленной местный модуль их модуль раза в четыре превосходил, и при этом еще и бесплатно! Но потом, когда человек/ребята убедились, что опасности отсюда никакой не исходит и исходить не будет, решил(и) дать волю своим желаниям, которые, судя по ценнику, не слабые. :)

 

Цитата

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

 

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

 

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


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

$filesize = file_put_contents($uplod_file, $data, FILE_APPEND | LOCK_EX);

Убрал "FILE_APPEND", все ок стало.

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


Выгрузка товаров завершена с ошибками!!!
Выгружено товаров: 72
Выгружено картинок: 0
Выгружено файлов: 0
Выгружено предложений: 72
Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Обмен не выполнен
Ответ сервера:
ERROR: 3000

Выгрузка товаров завершена с ошибками!!!

 

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

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


У меня тоже никак не взлетает. Автор, помогите пожалуйста.

Вот что происходит:

На стороне 1С:

Интерактивный обмен 16.07.2018 16:05:30
Запуск выгрузки товаров 16.07.2018 16:05:30
Завершено формирование файлов выгрузки товаров
Выгружено товаров: 8 предложений: 1 картинок: 3 файлов: 0
В том числе для каталога Основной каталог товаров: товаров: 8 предложений: 1 картинок: 3 файлов: 0
16.07.2018 16:05:33 Выгрузка на сайт завершилась с ошибками.
Отправка файла на сервер:
Получен пустой ответ сервера. import.xml:
Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Ответ сервера:
16.07.2018 16:05:33 Завершена выгрузка товаров
На стороне сервера в логах следующее:
ошибка ОШИБКА! Файл не является стандартом XML или обрезан
я вручную сжал файлы в zip. При попытке загрузить в ручную:
Internal Server Error Internal Server Error
Вот мой файл:
 
При некоторых других настройках сервера ошибки были такие (похоже на тему выше, через одну):
2018-07-14 12:31:59 - 2300(C) POST_MAX_SIZE: 8388608 2018-07-14 12:31:59 - 2059(C) PHP Version: 50445 2018-07-14 12:31:59 - 2060(C) client_max_body_size: 2018-07-14 12:31:59 - 1995(C): 2018-07-14 12:31:59 - Array ( [0] => zip=no [1] => file_limit=8388608 ) 2018-07-14 12:31:59 - 1996(C) Mode Catalog Init 2018-07-14 12:31:59 - 1997(C): 2018-07-14 12:31:59 - Array ( [0] => zip=no [1] => file_limit=8388608 ) 2018-07-14 12:31:59 - 2361(C) upload file: /home/admin/web/mag1.gu.ru/public_html/system/storage/cache/exchange1c/import.xml 2018-07-14 12:31:59 - 2369(C) file size: 78045 2018-07-14 12:31:59 - 0042(C) success 2018-07-14 12:31:59 - 0045(C) Successfully import catalog 2018-07-14 12:31:59 - 2361(C) upload file: /home/admin/web/mag1.gu.ru/public_html/system/storage/cache/exchange1c/offers.xml 2018-07-14 12:31:59 - 2369(C) file size: 2541 2018-07-14 12:31:59 - 0042(C) success 2018-07-14 12:31:59 - 0045(C) Successfully import catalog 2018-07-14 12:31:59 - 2361(C) upload file: /home/admin/web/mag1.gu.ru/public_html/image/import_files/49/49c513c2586111e8960c00001cd77723_26f0b7655f3411e8960c00001cd77723.jpg 2018-07-14 12:32:00 - 2369(C) file size: 62445 2018-07-14 12:32:00 - 0042(C) success 2018-07-14 12:32:00 - 0045(C) Successfully import catalog 2018-07-14 12:32:00 - 2361(C) upload file: /home/admin/web/mag1.gu.ru/public_html/image/import_files/49/49c513c2586111e8960c00001cd77723_26f0b7665f3411e8960c00001cd77723.jpg 2018-07-14 12:32:00 - 2369(C) file size: 101107 2018-07-14 12:32:00 - 0042(C) success 2018-07-14 12:32:00 - 0045(C) Successfully import catalog 2018-07-14 12:32:00 - 2361(C) upload file: /home/admin/web/mag1.gu.ru/public_html/image/import_files/49/49c513c2586111e8960c00001cd77723_e7662d3f592911e8960c00001cd77723.jpg 2018-07-14 12:32:00 - 2369(C) file size: 55540 2018-07-14 12:32:00 - 0042(C) success 2018-07-14 12:32:00 - 0045(C) Successfully import catalog 2018-07-14 12:32:01 - 2488(C) modeImport 2018-07-14 12:32:01 -
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2018-07-14 12:32:01 - 8190(M) НАЧАЛО ЗАГРУЗКИ ДАННЫХ 2018-07-14 12:32:01 - 8195(M) Язык загрузки, id: 1 2018-07-14 12:32:01 - 8209(M)
Читается XML файл: 'import.xml' 2018-07-14 12:32:01 - 0106(M)
Время обработки xml_load: 0.0041041374206543 сек
2018-07-14 12:32:01 - PHP Unknown: Object of class LibXMLError could not be converted to string in /home/admin/web/mag1.gu.ru/public_html/admin/model/extension/exchange1c.php on line 8218
2018-07-14 12:32:01 - Строка ошибки: 8218 - error_3000_log
2018-07-14 12:32:01 - PHP Unknown: Object of class LibXMLError could not be converted to string in /home/admin/web/mag1.gu.ru/public_html/admin/model/extension/exchange1c.php on line 8219
2018-07-14 12:32:01 - 8219(M)
2018-07-14 12:32:01 - ОШИБКА 3000. Смотрите описание ошибки в справке модуля обмена.
2018-07-14 12:32:01 - 0049(C) failure 2018-07-14 12:32:01 - 0052(C) ERROR: 3000
2018-07-14 12:32:01 - Ошибка при загрузке файла: /home/admin/web/mag1.gu.ru/public_html/system/storage/cache/exchange1c/import.xml
2018-07-14 12:32:01 - 6706(M) ==== Выгрузка заказов ====
2018-07-14 12:32:01 - 6646(M) ==== Формирование заказов для экспорта в УС ====
2018-07-14 12:32:01 - 6651(M) 2000-01-01T00:00
2018-07-14 12:32:01 - 6658(M) 2000-01-01 00:00:00
2018-07-14 12:32:01 - 6692(M) queryOrdersExport():
2018-07-14 12:32:01 - 6693(M):
2018-07-14 12:32:01 - Array ( [1] => 1 [2] => 1 [3] => 1 [4] => 1 [5] => 1 [6] => 1 )
Надіслати
Поділитися на інших сайтах


Ребята, добрый день! Подскажите пожалуйста, нет ли инструкции от этого модуля или демо-доступ какой? Все перепробовал, ну не загружаются у меня характеристики и все тут(без характеристик норм). Писал автору, не отвечает пока, видимо занят. Готов заплатить за настройку! Помогите ответом люди добрые) или вариантом каким..

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


22 минуты назад, kiwi063 сказал:

Ребята, добрый день! Подскажите пожалуйста, нет ли инструкции от этого модуля или демо-доступ какой? Все перепробовал, ну не загружаются у меня характеристики и все тут(без характеристик норм). Писал автору, не отвечает пока, видимо занят. Готов заплатить за настройку! Помогите ответом люди добрые) или вариантом каким..

Не совсем рабочие они

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


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

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

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

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

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

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

Вхід

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

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

Important Information

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