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

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


Recommended Posts

а возможно как-то передавать скидки и др возможности "учета в заказе" в 1с? Не нашел документацию по XML обмена битрикс по заказам.

т.е. у меня в данный момент идет скидка за онлайн-оплату 10%, а в 1с эта скидка никак не передается. Возможно это как-то передать в 1с и как это правильно сделать?
 

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


28.02.2022 в 21:25, Kirillove сказал:

Здравствуйте, если версия модуля 1.6 тогда смотреть нужно parseOffers() читаются предложения, включите лог в режиме отладки и выполните обмен

Выделенным текстом выводится в лог информация массива $data где формируется цена предложения.

Проверьте правильная тут цена?

Далее нужно точно знать в этом товаре есть характеристики в 1С ?

Если есть в 1С характеристики (опции на сайте) то за расчет цен берется функция:

 

image.png.e47413b0239c2922192961e491a129b4.png

 

Далее нужно точно знать в этом товаре есть характеристики в 1С ?

Если есть в 1С характеристики (опции на сайте) то за расчет цен берется функция getProductFeaturesQuantityPrice():

 

image.png.5911668bca80f0caec87fae1075f6ff8.png

 

Непосредственно в сам товар цену и остатки записывает функция updateOffers().

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

маленькие не смог отловить, когда хочешь записать лог,- становится всё гуд, как на авто в сервис приехал, а она как часики там работает, но стоит ток выехать...
Может не поддерживается установка цен с 2х магазинов, т.е. один магазин должен быть скидкой... Тогда норма... (как автор пишет - нашел первую цену, -записал, ушел)
вопрос такой.
Где в коде начало присвоение цены, после обработки xml и где финальная, после всех обработак, т.е. где можно жестко присвоить цену, например $baks=200 начало и конец .
Если не сложно, напишите как массив в файл записать, давно с ними не работал, лет 10(( всё забыл. С логом сложновато, объем инфы огромный и хз что как пишется.
Чувствую, что где то гемор с ценами. Ну или просто не под меня сделано.
Господа пользователи, не показывать товар с нулевыми остатками у Вас нормально отрабатывает?
 

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


01.03.2022 в 19:40, nash сказал:

а возможно как-то передавать скидки и др возможности "учета в заказе" в 1с? Не нашел документацию по XML обмена битрикс по заказам.

т.е. у меня в данный момент идет скидка за онлайн-оплату 10%, а в 1с эта скидка никак не передается. Возможно это как-то передать в 1с и как это правильно сделать?
 

Да можно сделать на стороне сервера, нужно указать цену без скидки а сумму за минусом скидки и 1С в документе должна разницу поставить в скидку.

Такое можно и модулем сделать, но лучше написать модификатор отдельный и включать - выключать когда Вам надо

А код добавить в функцию queryOrders()

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

01.03.2022 в 21:48, doronus сказал:

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

маленькие не смог отловить, когда хочешь записать лог,- становится всё гуд, как на авто в сервис приехал, а она как часики там работает, но стоит ток выехать...
Может не поддерживается установка цен с 2х магазинов, т.е. один магазин должен быть скидкой... Тогда норма... (как автор пишет - нашел первую цену, -записал, ушел)

Возможно, такой вариант не тестировался. Такое можно попробовать реализовать только на версии 2.0, так как 1.6.4 уже архивная, доработки уже мной там не предусмотрены, тем более обработка цен в 1.6 ведется во время загрузки предложений, а в 2.0 после загрузки файла с предложениями

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

Не понимаю, что там должно быть на месте красного выделения?! В админке адрес такой:
image.thumb.png.45d2120b82ac38f3f9c68f05e2afa5e2.png

 

а в заказе 1с так:

 

image.thumb.png.3f5964920f0e74dc3bc46b9a62665600.png

 

private function setCustomerAddress($order, $mode = 'shipping') {

		// Соответствие полей в XML и в базе данных
		$fields = array(
			'Почтовый индекс' 	=> 'postcode',
			'Страна' 			=> 'country',
			'Регион'			=> 'zone',
			'Район'				=> 'none',
			//'Населенный пункт'	=> 'none',
			'Город'				=> 'city',
			'Адрес'				=> 'address_1',
			'Улица'				=> 'street',
			'Дом'				=> 'house',
			'Корпус'			=> 'building',
			'Квартира'			=> 'flat'
		);
		// Представление: Индекс, Город, Улица, Дом, Корпус, Квартира
		// Представление: Индекс, Город, Улица, Дом, Квартира
		// Представление: Индекс, Город, Улица, Дом
		//'Представление'	=> $order['shipping_postcode'] . ', ' . $order['shipping_zone'] . ', ' . $order['shipping_city'] . ', ' . $order['shipping_address_1'] . ', '.$order['shipping_address_2'],

		$address = array();
		$counter = 0;

		// Представление
		$arName = array();

		// Формирование полей
		foreach ($fields as $type => $field) {

			if (isset($order[$mode . '_' . $field])) {

				// Формируем типы полей
				//$address['АдресноеПоле' . $counter] = array(
				//	'Тип'		=> $type,
				//	'Значение' 	=> $order[$mode . '_' . $field]
				//);

				// формируем наименование
				$arName[] = $order[$mode . '_' . $field];

			}
		}

		$address['Представление'] = implode(', ', $arName);

		return $address;

	} // setCustomerAddress()

 

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


01.03.2022 в 03:34, nash сказал:

да, именно так)

Такая возможность доступна только в версии 2.0, я хотел на примере внедрения проверить обмен заказами.

Пока внедрял её в opencart 2.1 и opencart 2.3 времени не было, время появится только в конце этой недели, проверю на своем сервере и напишу о результатах.

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

01.03.2022 в 20:07, Kirillove сказал:

Да можно сделать на стороне сервера, нужно указать цену без скидки а сумму за минусом скидки и 1С в документе должна разницу поставить в скидку.

Такое можно и модулем сделать, но лучше написать модификатор отдельный и включать - выключать когда Вам надо

А код добавить в функцию queryOrders()

у меня цены идут и так без скидки, а сумма итоговая за минусом скидки. Что-то я недогоняю как надо...)

image.thumb.png.cbd2ac1a80c435c617ba039451d8ab37.png

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


02.03.2022 в 00:22, nash сказал:
'Район'				=> 'none',

Это поле не сопоставлено, будет пустым, справа указывается поле в таблице order или order_shipping (см. mode=?)  если не нужно закомментарьте.

А вообще 1С у меня такой адрес не воспринимает, это зависит от того какой ФИАС у вас использует 1С. Старые версии 1С хавали строку представления как строку и все, а вот если загружен ФИАС 1С пытается разложить адрес на поля, если не получается то игнорирует.

В версии 2.0 когда буду тестить заказы на своем сервере обязательно найду решение, и можно будет доработать функцию в версии 1.6

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

01.03.2022 в 20:40, Kirillove сказал:

Это поле не сопоставлено, будет пустым, справа указывается поле в таблице order или order_shipping (см. mode=?)  если не нужно закомментарьте.

А вообще 1С у меня такой адрес не воспринимает, это зависит от того какой ФИАС у вас использует 1С. Старые версии 1С хавали строку представления как строку и все, а вот если загружен ФИАС 1С пытается разложить адрес на поля, если не получается то игнорирует.

В версии 2.0 когда буду тестить заказы на своем сервере обязательно найду решение, и можно будет доработать функцию в версии 1.6

 

у нас как-то вот так, я так понимаю тоже не сопоставит получается...

image.png.90275008f59094afb49544d2138b578e.png

 

закомментил, но все равно идет пустое значение.

 

image.png.cc84cdb745f762796973cf98e6028296.png

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


02.03.2022 в 00:34, nash сказал:

у меня цены идут и так без скидки, а сумма итоговая за минусом скидки. Что-то я недогоняю как надо...)

Я посмотрел там есть в таблице товаров поле <Скидка>XXX</Скидка> но эта скидка на товар а не весь документ.

Какая конфигурация Вашей 1С? Нужно будет в конфигураторе посмотреть функцию 

image.thumb.png.a159355035f8d9a7ed18d9fc9d8d2cb9.png

 

внутри этой функции запускается разбор самого документа

 

image.thumb.png.8c744def84b0d63522dba48df8ee02cb.png

 

На форуме битрикс от 2016 года поднимался вопрос, но ответ от битрикс был что БУС не поддерживает поэтому 1С не включает это возможность.

Можно попробовать в шапку документа включить поле <Скидка> и указать скидку на весь документ. Хотя я не нашел такое у себя в функции 1С.

Либо реализовать такое решение через расширение для 1С и добавить скидку либо в шапку либо в свойства документа или реквизиты документа.

Когда доберусь до заказов смогу поискать решение

 

Свежие 1С доработали загрузки с сайта доставку

image.thumb.png.e10cb8076977e8218b9535530bc37254.png

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

02.03.2022 в 00:46, nash сказал:

 

закомментил, но все равно идет пустое значение.

 

image.png.cc84cdb745f762796973cf98e6028296.png

 

Так район на стороне сайта у вас заполняется разве? Если значения в 1С и на сайте совпадают то можно вместо none указать имя поля, либо если у вас есть функции разбора адреса, то доработать эту функцию чтобы подтягивались поля оттуда.

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

01.03.2022 в 21:08, Kirillove сказал:

Какая конфигурация Вашей 1С?

"Управление торговлей", редакция 10.3 (10.3.72.2) 

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


Добрый день. Есть вопросы.

Подойдет ли этот модуль для Версия ocStore 3.0.2.0 и 1С 8.3 УТ 10.3

 

По инструкции не могу настроить 1 пункт FTP. В настройках сайта нет такого.

При установке модуля выходит ошибка: Этот каталог bitrix не доступен для записи!

 

Есть кто может помочь с интеграцией?

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


04.03.2022 в 15:24, dmitru сказал:

Добрый день. Есть вопросы.

Подойдет ли этот модуль для Версия ocStore 3.0.2.0 и 1С 8.3 УТ 10.3

 

По инструкции не могу настроить 1 пункт FTP. В настройках сайта нет такого.

При установке модуля выходит ошибка: Этот каталог bitrix не доступен для записи!

 

Есть кто может помочь с интеграцией?

 

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


В том числе:
  создано новых: 35
Выгружено заказов: 54
Произошла ошибка на стороне сервера. Файл не отправлен (C:\Users\web\AppData\Local\Temp\1cbitrix\1cbitrix-ef50a455-21f9-448e-b4ec-2abb5c9396e7.xml).
Обмен не выполнен
Ответ сервера:
modeFileSale(): no XML files

Обмен заказами завершен с ошибками!!!

 

1. Как считается "выгружено заказов: 54"? Всего выгруженных заказов? Если да, то должно быть тогда 100+ заказов
2. Что это за ошибка и как ее решить?

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


Здравствуйте, есть ли возможность синхронизации существующих товаров по, например, артикулу или модели? В настройках вижу только Наименование и ПолноеНаименование

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


10.03.2022 в 13:14, heezy сказал:

Здравствуйте, есть ли возможность синхронизации существующих товаров по, например, артикулу или модели? В настройках вижу только Наименование и ПолноеНаименование

в версии 1.6 есть по модели и тд

image.thumb.png.153f44ce637e7a2746d573dc5c23ecb6.png

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


В 10.03.2022 в 11:14, heezy сказал:

Здравствуйте, есть ли возможность синхронизации существующих товаров по, например, артикулу или модели? В настройках вижу только Наименование и ПолноеНаименование

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

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

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


10.03.2022 в 11:54, nash сказал:

в версии 1.6 есть по модели и тд

 

 

10.03.2022 в 12:39, searchingman сказал:

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

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

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

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


Подскажите кусок кода где находится эта синхронизация

10.03.2022 в 12:39, searchingman сказал:

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

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

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


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

Модуль подхватил артикулы и синхронизировал по ним.

10.03.2022 в 15:41, searchingman сказал:

В admin\model\extension\exchange1c.php -> private function setProduct(&$data)

 

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


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

 

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

09.03.2022 в 16:27, nash сказал:
В том числе:
  создано новых: 35
Выгружено заказов: 54
Произошла ошибка на стороне сервера. Файл не отправлен (C:\Users\web\AppData\Local\Temp\1cbitrix\1cbitrix-ef50a455-21f9-448e-b4ec-2abb5c9396e7.xml).
Обмен не выполнен
Ответ сервера:
modeFileSale(): no XML files

Обмен заказами завершен с ошибками!!!

 

1. Как считается "выгружено заказов: 54"? Всего выгруженных заказов? Если да, то должно быть тогда 100+ заказов
2. Что это за ошибка и как ее решить?

@Kirillove не подскажите как это считается? и с чем может быть связана ошибка? Читал в теме, что якобы статусы не назначены... но в настройках все настроено. Версия 1.6.4.8

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


@Kirillove подскажи пожалуйста, как в таблицу oc_product (поле location) подставить значение из offers.xml (<Склад> - <Наименование>)?
(поле "Расположение:" в админке - вкладка "Данные" на странице товара)
 

Есть два отдела со своими складами, территориально они в разных местах (Сантехника и Электрика - в разных концах города). Хочется на странице каждого товара отображать где именно данный товар выставлен на продажу (в отделе Электрике или Сантехнике)

1C у меня эти данные выгружает:
 

Цитата

<Склады>
            <Склад>
                <Ид>761dea1b-5b2b-11ec-9790-5800e36039e6</Ид>
                <Наименование>Магазин Сантехника</Наименование>
            </Склад>
            <Склад>
                <Ид>66c5f3f2-e3b9-11eb-b762-a26573e75a7a</Ид>
                <Наименование>Магазин Электрика</Наименование>
            </Склад>
            <Склад>
                <Ид>65356ba6-5bf1-11ec-a660-309c23852e25</Ид>
                <Наименование>Оптовый склад</Наименование>
            </Склад>
        </Склады>

 

           <Предложение>
                <Ид>9af87daa-5b51-11ec-9790-5800e36039e6</Ид>
                <Наименование>"SOLO" FM, MP3 microSD, AUX, мощность 5Вт, 600mAh, синяя</Наименование>
                <БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE"/>
                <Штрихкод>4607147652053</Штрихкод>
                <Артикул>PF_5205</Артикул>
                <Цены>
                    <Цена>
                        <Представление>1 119 руб. за шт</Представление>
                        <ИдТипаЦены>761dea1a-5b2b-11ec-9790-5800e36039e6</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>1119</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                        <Единица>796</Единица>
                        <Коэффициент>1</Коэффициент>
                    </Цена>
                </Цены>
                <Количество>10</Количество>
                <Склад ИдСклада="761dea1b-5b2b-11ec-9790-5800e36039e6" КоличествоНаСкладе="0"/>
                <Склад ИдСклада="66c5f3f2-e3b9-11eb-b762-a26573e75a7a" КоличествоНаСкладе="10"/>
                <Склад ИдСклада="65356ba6-5bf1-11ec-a660-309c23852e25" КоличествоНаСкладе="24"/>
            </Предложение>


Как эти данные заносить из 1С в базу - ума не приложу. Пробовал добавить функционал складов из 1.6.3.11 - безрезультатно, видать ума не хватает. ))

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

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

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

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

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

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

Вхід

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

Вхід зараз

×
×
  • Створити...

Important Information

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