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

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


Recommended Posts

В 06.02.2021 в 11:03, 8fefur сказал:

Да, верно -  ispmanager. На что это влияет? 

у тебя в конце вписаны такие строчки еще?

RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !^(.*)1c_exchange(.*)$ [NC] [OR]
RewriteCond %{QUERY_STRING} !^(.*)1c_exchange(.*)$ [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,R=301,L]

?

и второе я в ispmanager прописывал в конфинг домена

server {

строчки такие, когда товаров тьма что ошибку выбивало из за место(

	client_max_body_size 500M;
	client_body_buffer_size 128K;
	client_body_in_file_only on;

 

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


13 минут назад, 26rus сказал:

у тебя в конце вписаны такие строчки еще?


RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !^(.*)1c_exchange(.*)$ [NC] [OR]
RewriteCond %{QUERY_STRING} !^(.*)1c_exchange(.*)$ [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,R=301,L]

?

и второе я в ispmanager прописывал в конфинг домена


server {

строчки такие, когда товаров тьма что ошибку выбивало из за место(


	client_max_body_size 500M;
	client_body_buffer_size 128K;
	client_body_in_file_only on;

 

Благодарю за подсказки. Я, кажется, разобрался с чем связана ошибка Инфо-предприятия, посмотрев на алгоритм выгрузки Битрикса.

Программа тупо ждет ответ "success" и если он не приходит - вываливает ошибку, как на скрине, что я приводил.

Поэтому....

В /admin/controller/extension/module/exchange1c.php находим:

	public function modeFileCatalog() {

        $error = '';

		$this->modeFile('catalog', $error);

		if ($error) {
			$this->echo_message(0, $error);
		} else {
			$this->echo_message(1, "Successfully import catalog ");
		}

	}

И меняем на 

	public function modeFileCatalog() {

        $error = '';

		$this->modeFile('catalog', $error);

		if ($error) {
			$this->echo_message(0, $error);
		} else {
			$this->echo_message(1, "success");
		}

	}

После этого ошибка пропадает. И данные грузятся на сайт - обновляются/добавляются. Одной головной болью меньше))

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


10 минут назад, 8fefur сказал:

Благодарю за подсказки. Я, кажется, разобрался с чем связана ошибка Инфо-предприятия, посмотрев на алгоритм выгрузки Битрикса.

Программа тупо ждет ответ "success" и если он не приходит - вываливает ошибку, как на скрине, что я приводил.

Ну, получается что ваша 1С не выполняет требования стандарта. Потому что первой строкой в ответе должен быть "success", а во второй сообщение.

 

Цитата

Сайт может вернуть ответ, в котором в первой строке может содержаться:

 

success - файл успешно обработан;

 

Модуль обмена именно так и делает, если посмотреть код выводящий уведомление - в этом можно убедиться:

	private function echo_message($ok, $message="") {
		switch ($ok) {
			case 1:
				echo "success\n";
				$this->log("success",2);
				if ($message) {
					echo $message;
					$this->log($message,2);
				}
				break;

 

В 05.02.2021 в 22:29, Ivanzo сказал:

Модуль рабочий. Комерцемл единый стандарт. Почему у всех разные ошибки? В чем проблема?

Вот и ответ на вопрос - не модуль обмена кривой, 1С кривые...

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


19 минут назад, Gmp сказал:

Ну, получается что ваша 1С не выполняет требования стандарта. Потому что первой строкой в ответе должен быть "success", а во второй сообщение.

Да, это и не 1С вовсе. Инфо-предприятие - бюджетный клон 1С со своими конфигурациями. 1С - старая УНФ 1.6 версии у меня как раз без всяких проблем работала. Инфо-предприятие запилили обмен с Битриксом, но, похоже, сделали кривовато.    

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


25 минут назад, Gmp сказал:

Ну, получается что ваша 1С не выполняет требования стандарта. Потому что первой строкой в ответе должен быть "success", а во второй сообщение.

 

 

Модуль обмена именно так и делает, если посмотреть код выводящий уведомление - в этом можно убедиться:


	private function echo_message($ok, $message="") {
		switch ($ok) {
			case 1:
				echo "success\n";
				$this->log("success",2);
				if ($message) {
					echo $message;
					$this->log($message,2);
				}
				break;

 

Вот и ответ на вопрос - не модуль обмена кривой, 1С кривые...

А так как баг подправить с заказом ?) чтобы не выгружался ?) 

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


1 час назад, 26rus сказал:

А так как баг подправить с заказом ?) чтобы не выгружался ?)

Ну, я ответов на свои вопросы так и не получил, я ж не телепат))

В 02.02.2021 в 18:22, Gmp сказал:

Если хотите чтоб помогли - нужны детали. Какой статус у неоплаченного заказа, какие настройки обмена заказами.

 

Точный статус вы не сообщили (смотреть таблице oc_order поле order_status_id), настройки обмена заказами не показали.

 

Можно только гадать.

 

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

 

Тогда возможно вам поможет это сообщение которое было 10 страниц назад. Но такой проблемы у вас быть не должно потому что в моей сборке эта проблема была решена очень давно. В общем телепат из меня не очень.

 

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


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

Ну, я ответов на свои вопросы так и не получил, я ж не телепат))

 

 

Точный статус вы не сообщили (смотреть таблице oc_order поле order_status_id), настройки обмена заказами не показали.

 

Можно только гадать.

 

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

 

Тогда возможно вам поможет это сообщение которое было 10 страниц назад. Но такой проблемы у вас быть не должно потому что в моей сборке эта проблема была решена очень давно. В общем телепат из меня не очень.

 

поле имеет order_status_id 0; да вы правы в этом. Ну у меня для ox3 версии.. То получается что нужно добавить чтобы в 1с не выгружались товары с 0 значением тогда???

Статус в модуле по сберу оплаты как раз таки такое выходит

Статус заказа после неуспешной или ожидаемой оплаты Статус для активации Отложенной оплаты - стоит в ожидание.

А статус Статус после удачной оплаты - стоит в обработке.

В вашей сборке я смотрю код получается такой должен быть?

// Этот запрос будет использовать индексы поля date_modified
			$query = $this->query("SELECT `order_id`,`order_status_id` FROM `" . DB_PREFIX . "order` WHERE `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 `order_status_id` != 0");

?? только не понятно, с заказами как там челик все описывал у меня такие проблемы не возникнут после этого? либо как настроить потерянные заказы или ольтфритовать список потерянные заказы?

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


Ничего нигде не возникнет, ставь условие как в строке выше, "нулевые" заказы никуда не должны попадать, их нет еще. Просто опенкарт их зачем-то сохраняет (для аналитики например).

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

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


9 минут назад, Gmp сказал:

Ничего нигде не возникнет, ставь условие как в строке выше, "нулевые" заказы никуда не должны попадать, их нет еще. Просто опенкарт их зачем-то сохраняет (для аналитики например).

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

Скорее всего это из-за того, что корзина покупателя хранится не в куках или кеше, а в базе. Видимо это и есть "Потерянные заказы".

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


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

Ничего нигде не возникнет, ставь условие как в строке выше, "нулевые" заказы никуда не должны попадать, их нет еще. Просто опенкарт их зачем-то сохраняет (для аналитики например).

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

понял, спасибо большое !)

а как проблему с https решить то?)) чтобы в 1с соединялось по протоколу https что тут из вариантов не работает(((

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


11 часов назад, 26rus сказал:

а как проблему с https решить то?))

Ну, раз мы решаем проблемы "выгружаются не те заказы", то видимо всё работает? Или нет? Ты же выше показывал кому-то свой рабочий htacess с которым как я понял всё заработало.

 

Тут нужно кому-то дать доступ к серверу + доступ к 1С + деньжат и тогда будут разбираться. Подсказки какие я знал я уже сказал. Нужно или самому гуглить-пробовать-гуглить-пробовать или заплатить кому-то кто сделает это за тебя. Как я говорил - чудо решения нет (или я его не знаю).

 

Нужно проверить версию платформы 1С, точно не вспомню, обсуждалось несколько страниц назад, но с 8.3.9 кажется она поддерживает обмен по https без танцев с бубном.

 

Проверь чтоб не было редиректов, например с www на без www или наоборот.

 

Ответ скорее всего есть тут или тут.

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


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

Ну, получается что ваша 1С не выполняет требования стандарта. Потому что первой строкой в ответе должен быть "success", а во второй сообщение.

 

 

Модуль обмена именно так и делает, если посмотреть код выводящий уведомление - в этом можно убедиться:


	private function echo_message($ok, $message="") {
		switch ($ok) {
			case 1:
				echo "success\n";
				$this->log("success",2);
				if ($message) {
					echo $message;
					$this->log($message,2);
				}
				break;

 

Кстати, похоже, что нет. Про вторую строку сказано в разделе "Ожидание окончания обработки данных на сайте", но не в разделе "Выгрузка файлов на сайт". Там сказано:

Цитата

Сайт может вернуть ответ:

  • success - файл доставлен;
  • failure - файл не доставлен;
  • если ничего не пришло, то файл также не доставлен.

https://dev.1c-bitrix.ru/api_help/sale/algorithms/data_2_site.php

Сейчас модуль обмена после успешной загрузки файла, получается, возвращает:

success\nSuccessfully import catalog

Я попробовал закомментировать строку echo "success\n"; и вернуть просто "success" - работает.

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


А куда это в 10.3 УТ нужно добавить?? кусок кода который автор пишет

Если НЕ ПараметрыПодключения.ЗащищенноеСоединение Тогда
	ssl = Неопределено;
Иначе
      
	ssl = Новый ЗащищенноеСоединениеOpenSSL(
               Новый СертификатКлиентаWindows(),
               Новый СертификатыУдостоверяющихЦентровWindows());   

КонецЕсли;

Соединение = Новый HTTPСоединение(ПараметрыПодключения.Сервер, ПараметрыПодключения.Порт, ПараметрыПодключения.Пользователь, ПараметрыПодключения.Пароль, ПараметрыПодключения.Прокси, ,ssl);

 

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


2 часа назад, 8fefur сказал:

Кстати, похоже, что нет. Про вторую строку сказано в разделе "Ожидание окончания обработки данных на сайте", но не в разделе "Выгрузка файлов на сайт".

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

Вот вроде да, при внимательном рассмотрении то что вы описали логично, но при этом все популярные конфигурации 1С которые умеют обмениваться с сайтом - ждут success в первой строке и сообщение во второй. Это сообщение и выводится в 1С когда запускается обмен.

 

2 часа назад, 26rus сказал:

А куда это в 10.3 УТ нужно добавить?? кусок кода который автор пишет

УТ10.3 умеет обмениваться по https без всяких танцев и файлов htaccess (если версия платформы как я указывал выше), просто пишете в адресе обмена https:// и тд.

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

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


28 минут назад, Gmp сказал:

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

Вот вроде да, при внимательном рассмотрении то что вы описали логично, но при этом все популярные конфигурации 1С которые умеют обмениваться с сайтом - ждут success в первой строке и сообщение во второй. Это сообщение и выводится в 1С когда запускается обмен.

 

УТ10.3 умеет обмениваться по https без всяких танцев и файлов htaccess (если версия платформы как я указывал выше), просто пишете в адресе обмена https:// и тд.

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

=))) ну а так уже и по гуглил пробовал вставлять один и тот же результат. Неверный логин или пароль пишет а на http нормально все((

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

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


и еще один вопрос, может кто и делал или знает как сделать. Как сделать чтобы с этого модуля 2 выгрузки шли это с 10.3 и с 11 версии 1с и все работало четенько на сайте и выгрузки ?)

А то получается выгрузку только можно 1 поставить и все а две нельзя(

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


В 03.02.2021 в 22:31, xenobia сказал:

Добрый вечер. Организовалась небольшая проблема. Некорректно выгружается дата поступления товара из 1с Управление Торговлей 11.4.13.47 ocStore 2.3.0.2.3.

 

 Видимо у вас проблема с настройкой даты на сервере . И дату поступление этот модуль не выгружает из 1С . 

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

Спасибо за модуль и неоф. доработки (1.6.4.8). На чистом сайте все завелось.

 

Не работает одна опция - Не показывать товар с нулевой ценой.

Товар все равно вылазит на сайте.

И почему-то не помогает отбор в обмене на стороне 1С (цена не равно 0).

 

Что поколупать?

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


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

Не работает одна опция - Не показывать товар с нулевой ценой.

 

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

Что поколупать?


Отключает товар, если у товара будет основная цена (скидка для группы) и акция равны нулю.  Это условие выполнено ?

Ищите в модели "Не показывать товар если цены нулевые"  и колупайте .

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

В 09.02.2021 в 20:01, Demon85 сказал:

 

 Видимо у вас проблема с настройкой даты на сервере . И дату поступление этот модуль не выгружает из 1С . 

 

Поглядел, вроде на сервере дата и время совпадает. Может тыкните носом куда смотреть именно?

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


не знаю. Как исправить то, чтобы он данные именно брал с способ доставки??? то-есть это адрес/имя/фамилию и другое. А то получается он берет инфу с аккаунта регистрированного, а не из способы доставки!)

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


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

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

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

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

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

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

Вхід

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

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

Important Information

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