[mSklad] 1.0.7 импорт характеристик (CommerceML 2)


Разбирем новую версию на примерах.

Начну с главного нововведения, импорт характеристик. В компоненте добавилась новая вкладка «Настройка импорта свойств»:

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

Здесь мы настраиваем какие характеристики товаров нам нужно импортировать.
Добавляем новую связь или редактируем существующую.

Поля:
  • «источник» — наименование поля характеристики из файлов import.xml и offers.xml, должно 1в1 совпадать
  • «тип поля» — тип поля куда сохраняем полученные данные(возможные значения «поле msProduct» или «tv»)
  • «цель» — наименование поля товара (должно совпадать с названием колонки в базе данных) или наименование тв параметра
  • чекбокс «активный» — использовать или нет связь при импорте

Новые настройки компонента


  • Добавление к псевдониму id товара (msklad_alias_with_id) — решает проблему с однаковыми псевдонимами, дописывая id товара
  • Создавать tv (msklad_create_properties_tv) — автоматически создаст и заполнит tv параметры для всех возможных характеристик товаров
  • Импортировать все цены (msklad_import_all_prices) — необходим когда в выгрузке offers.xml больше одной цены, настраивается через связи
  • Tv параметр цены с учетом характеристики (msklad_price_by_feature_tv) — tv параметр куда будут выгружены цены предложений одного товара в соответсвии с характеристикой
  • Публиковать товар если есть в наличии (msklad_publish_by_quantity) — публикует или отменяет публикацию в зависимости отналичия
  • Сохранять все свойства товара в одно tv (msklad_save_properties_to_tv) — tv параметр типа текст куда будут выгружаться все полученные характеристики в JSON формате

Первоначальная настройка для работы с CommerceML 2


Желательно перед установкой компонента иметь уже созданную и пустую «Категорию с товарами» компонента miniShop2, тогда при установке моего компонента он автоматически настроится на нее.
В настройках системы, по компоненту мы должны увидить следущее

Необходимо чтобы были заполнены следующие настройки «Id категории каталога (msklad_catalog_root_id)», «Шаблон по умолчанию для новых категорий (msklad_template_category_default)» и «Шаблон по умолчанию для новых товаров (msklad_template_product_default)»

Затем настраиваем синхронизацию
Переходим в компонент и открываем вкладку «Реквизиты синхронизации»

Переписываем параметры в 1с или сервис. Логин и пароль можно задать самостоятельно, через системные настройки.
В 1с «Администрирование» -> «Синхронизация данных» -> «Узлы обмена с сайтами»


Для правильной работы синхронизации, чтобы не было перебоев во время работы, желательно в сестемных настройках параметр «Лимит выполнения» (msklad_time_limit) сделать на пару секунд меньше чем лимит выполнения скриптов на сайте.

Важно!

Если не срабатывает авторизация, для FastCGI создайте файл .htaccess в папке /assets/components/msklad/ и добавьте в него следующие строки:
RewriteCond %{HTTP:Authorization} !^$
RewriteRule ^(.*)$ $1?http_auth=%{HTTP:Authorization} [QSA]


Примеры


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

Вариант 1 — автоматическое добавление характеристик

В системных настройках включаем параметр «Создавать tv»
Производим импорт, и наблюдаем созданные связи и новые tv параметры

В данном случае tv параметр «Размер» явно лишний, так как в miniShop2 уже есть соответсвующее поле, перенастраиваем следующим образом:


Характеристику «Производитель» тоже желательно перенастроить в соответствии с полем miniShop2 vendor, но дополнительно отключим дефолтные связи «Изготовитель» и «Бренд», вот так:

Удаляем ненужные tv и запускаем синхронизацию.

Вариант 2 — добавляем характеристики

Все аналогично предыдущему варианту, но не включаем параметр «Создавать tv» при первой синхронизации.
После первого импорта смотрим файл assets/components/msklad/1c_temp/import.xml
Свойства могут быть как отдельным справочником в теге <Свойства>
<Свойства>
      <Свойство>
        <Ид>76221</Ид>
        <Наименование>Количество скрепок</Наименование>
        <ДляТоваров>1</ДляТоваров>
        <ТипЗначений>Строка</ТипЗначений>
      </Свойство>
      <Свойство>
        <Ид>76223</Ид>
        <Наименование>Размер</Наименование>
        <ДляТоваров>1</ДляТоваров>
        <ТипЗначений>Строка</ТипЗначений>
      </Свойство>
    </Свойства>
тогда для связи характеристик берем значение из поля "<Наименование>" и копируем его в «Источник».

Так и непосредственно в теге товара:
<Товар>
        <Ид>000</Ид>
        <Наименование>Скрепки стальные </Наименование>
        <БазоваяЕдиница Код="9" НаименованиеПолное="упаковка" МеждународноеСокращение="PCE">упак.</БазоваяЕдиница>
        <Артикул>0000</Артикул>
        <Группы>
          <Ид>00000</Ид>
        </Группы>
        <Описание>Доп описание</Описание>
        <ЗначенияСвойств>
          <ЗначенияСвойства>
            <Наименование>Количество скрепок</Наименование>
            <Значение>35</Значение>
          </ЗначенияСвойства>
        </ЗначенияСвойств>
        <ЗначенияРеквизитов>
          <ЗначениеРеквизита>
            <Наименование>ВидНоменклатуры</Наименование>
            <Значение>Товар</Значение>
          </ЗначениеРеквизита>
          <ЗначениеРеквизита>
            <Наименование>ТипНоменклатуры</Наименование>
            <Значение>Товар</Значение>
          </ЗначениеРеквизита>
          <ЗначениеРеквизита>
            <Наименование>Полное наименование</Наименование>
            <Значение>Скрепки стальные </Значение>
          </ЗначениеРеквизита>
          <ЗначениеРеквизита>
            <Наименование>Количество скрепок</Наименование>
            <Значение>25</Значение>
          </ЗначениеРеквизита>
        </ЗначенияРеквизитов>
      </Товар>
В этом случае характеристики импортируются из тегов <ЗначенияСвойств> и <ЗначенияРеквизитов> (дубли объединяются), берем значение из поля "<Наименование>" и копируем его в «Источник».

Вариант 3 — импорт характеристик в одно поле

Создаем новый tv параметр и назначаем его шаблону товара.

В системные настройки, в параметр «Сохранять все свойства товара в одно tv» (msklad_save_properties_to_tv) прописываем название созданного tv.
Запускаем импорт и смотрим что получилось.

Используйте по своему усмотрению.

Вариант 4 — импорт цены определенного типа или нескольких цен товара

Бывают ситуации когда нужно импортировать только определенный тип цены, а по умолчанию импортируется только первая цена.
После первого импорта смотрим файл assets/components/msklad/1c_temp/offers.xml
<ТипыЦен>
      <ТипЦены>
        <Ид>111111</Ид>
        <Наименование>Оптовая</Наименование>
        <Валюта>RUR</Валюта>
        <Налог>
          <Наименование>НДС</Наименование>
          <УчтеноВСумме>true</УчтеноВСумме>
        </Налог>
      </ТипЦены>
      <ТипЦены>
        <Ид>2222222</Ид>
        <Наименование>Розничная</Наименование>
        <Валюта>RUR</Валюта>
        <Налог>
          <Наименование>НДС</Наименование>
          <УчтеноВСумме>true</УчтеноВСумме>
        </Налог>
      </ТипЦены>
    </ТипыЦен>
    <Предложения>
      <Предложение>
        <Ид>aaaaaaaa</Ид>
        <Наименование>Скрепки стальные</Наименование>
        <БазоваяЕдиница Код="9" НаименованиеПолное="упаковка" МеждународноеСокращение="PCE">упак.</БазоваяЕдиница>
        <Цены>
          <Цена>
            <Представление>175 RUR за шт.</Представление>
            <ИдТипаЦены>111111</ИдТипаЦены>
            <ЦенаЗаЕдиницу>175</ЦенаЗаЕдиницу>
            <Валюта>RUR</Валюта>
            <Единица>шт.</Единица>
            <Коэффициент>1</Коэффициент>
          </Цена>
          <Цена>
            <Представление>182.5 RUR за шт.</Представление>
            <ИдТипаЦены>2222222</ИдТипаЦены>
            <ЦенаЗаЕдиницу>182.5</ЦенаЗаЕдиницу>
            <Валюта>RUR</Валюта>
            <Единица>шт.</Единица>
            <Коэффициент>1</Коэффициент>
          </Цена>
        </Цены>
        <Количество>12</Количество>
      </Предложение>
Нас интересует только розничная цена, для ее импорта делаем следующее:
  • включаем системную настройку Импортировать все цены (msklad_import_all_prices)
  • переходим на вкладку «Настройка импорта свойств» в компоненте
  • добавляем новую связь
Для нескольких цен настраиваем аналогично, предварительно создав tv или добавив поля в товар miniShop2

Вариант 5 — импорт цен/наличия для нескольких торговых предложений одного товара

Если в системе установлен и настроен компонент msOptionsPrice, то цены автоматически выгрузятся в него в соответсвии с размерами. Необходимо наличие связи источник «Размер», тип «поле miniShop», цель «size».

Если компонента msOptionsPrice нет, то цены выгрузятся в tv параметр указанный в системной настройка «msklad_price_by_feature_tv» формате 110х120==95||200х200==176||300х300==257, при незаполненной настройке цены не выгружаются.

Наличие в соответствии с характеристикой выгружается при настроенной связи с источником «Количество» в аналогичном формате — 110х120==15||200х200==2||300х300==0.

Плагины


Теперь можно использовать собственные плагины во время синхронизации. Добавлены события «mskladOnProductImport» и «mskladOnProductOffers».

Пример плагина на событие «mskladOnProductImport»

Работаем с объектом $resource и массивом параметров $properties
if ($modx->event->name == 'mskladOnProductImport') {
	//fix series
	if(isset($properties['КатегорияБренда'])){
		$resource->set('series', $properties['КатегорияБренда']);
		$resource->save();
	}
}
return;

Пример плагина «mskladOnProductOffers»

Работаем с объектом $resource.
if ($modx->event->name == 'mskladOnProductOffers'){
	$qt = intval($resource->get('quantity'));
	if($qt) {
		$resource->set('instock', 1);
	}
	else {
		$resource->set('instock', 0);
	}
	$resource->save();
}
return;

Убрано всплывающее окно с реквизитами API МойСклад при установке, изменяется при необходимости через системные настройки.
Александр Рахимов
Александр Рахимов
11 ноября 2014, 13:51
modx.pro
11 609

Комментарии: 56

Марк Валерич
11 ноября 2014, 16:57
Круто. Наконец-то дошли руки до 1с.
    Sergey Leleko
    11 ноября 2014, 19:56
    на самом деле уже давно :)
    Юрий
    11 ноября 2014, 21:59
    возможно глупый вопрос хочу задать, но
    Александр, написал:

    Если в системе установлен и настроен компонент msOptionsPrice, то цены автоматически выгрузятся в него в соответсвии с размерами. Необходимо наличие связи источник «Размер», тип «поле miniShop», цель «size».

    Так вот вопрос: как можно заменить указанное соответствие с размерами, на тоже соответствие, но с другим(ими) аналогичным(ими) полем(ями), например, вес (weight) или цвет (color)?
      Александр Рахимов
      11 ноября 2014, 22:01
      Настроить msOptionsPrice на поле вес или цвет. Работоспособность не гарантирую, не проверял.
        Юрий
        11 ноября 2014, 22:10
        МОжет получится такое, если в модуле msOptionsPrice указать в параметре msoptionsprice_ms_op_options желаемое поле?
      Юрий
      11 ноября 2014, 22:20
      А планируется ли в скором времени при синхронизации использовать REST API «Мой склад», чтобы можно было импортировать со склада все возможные типы цен (не только три цены, которые максимум возможны при синхронизации в формате CommerceML 2)? Например, их (типов цен) на складе 7 штук, при этом возможно передать 3 из них по формату CommerceML 2, а остальных фактически можно взять только по REST API склада (на данный-то момент).
      Алексей Милов
      11 ноября 2014, 22:46
      Очень крутой компонент. Как раз пригодилась функция обмена характеристиками. Большое спасибо за работу
        Александр Рахимов
        11 ноября 2014, 22:47
        Спасибо. Может пожелания есть какие по доработкам?
          Алексей Милов
          11 ноября 2014, 22:48
          Да пока все устраивает. Этого функционала хватает :)
            Александр Рахимов
            11 ноября 2014, 22:49
            Отлично.
              Алексей Милов
              19 ноября 2014, 00:17
              Александр, у меня такой вопрос.
              В 1С есть свойство — Статус товара со значениями Удален или В наличии. Можно ли как то сделать, чтобы при загрузке, если у номенклатуры у данного свойства значение = Удален — отключать его
            Aliaksandr Katlou
            18 ноября 2014, 23:16
            А можно зеленые кнопочки сделать перламутровыми?
          Андрей
          19 декабря 2014, 13:49
          Доброго времени суток! Наблюдая хронологию изменения и выпуски новых дополнений mSklad, заметил, что из первоначального варианта убрали настройку остатков (msklad_quantity_tv), как сказал мне разработчик она устаревшая уже. При импорте товаров с 1с, в структуре xml тоже не заметил такой величины в настройках, как остаток товара на складе.

          Потому вопросы такие:

          Это вообще присутствует в последней версии mSklad (учет остатков)? Если да, то где можно вести учет остатков товаров?
          Где можно редактировать остатки товаров в 1с? С 1с не работаю, плохо знаю потому обращаюсь за помощью к тем, кто знает.
            Александр Рахимов
            19 декабря 2014, 14:49
            Естественно присутствует, надо создать поле минишопа или тв и настроить связь в компоненте.
            По 1С не подскажу.
            mekirile
            11 февраля 2015, 10:26
            Здравствуйте. Использую связки Мой Склад — MS2 — Msync. Не выгружается характеристика Размер.

            Вот как выглядит товар в Мой Склад prntscr.com/63oon6
            Вот параметры синхронизации prntscr.com/63ooqh
            Настройки модуля prntscr.com/63op6u
            Вот что получаю на сайте prntscr.com/63ooul

            Также пробую выгружать все характеристики в TV — ничего не происходит. Там оказывается пусто. если убираю галочку в настройках синхронизации (Выгружать остатки с учетом характеристик), то выгружаются просто товары, размер нигде не учитывается.
              Константин Ильин
              19 марта 2015, 12:25
              Где можно купить или скачать данный компонент?
                Константин Ильин
                19 марта 2015, 19:56
                Ребят его нигде нет, в магазине симпла тоже, msync тоже нет, он больше не поддерживается? его нигде не скачать?
                  Василий Наумкин
                  19 марта 2015, 20:06
                  Пока отключен, в связи с нареканиями на поддержку.

                  Решают, что с ним делать дальше.
              Николай Ермошин
              20 марта 2015, 20:22
              А почему этот модуль пропал из магазина? Очень нужный модуль!
                Александр Рахимов
                20 марта 2015, 20:25
                Видимо решается дальнейшая судьба компонента. Думаю он скоро вернется в репо.
                Leonid Krylov
                01 апреля 2015, 13:06
                Были проблемы с поддержкой компонента.
                Сейчас он вновь доступен в репозитории.
                  Klike
                  29 мая 2015, 07:47
                  Планируется ли дальнейшее развитие компонента? Есть магазин, где в 1С периодически обновляются фото товара на более свежие. После синхронизации в галерее карточки товара остаются две версии, старая и новая. Но по умолчанию стоит также старая. Можно ли добавить функцию удаления старых фото и синхронизация новых. Соответственно и превью будут уже новые. Важный вопрос, в поддержке сухо отвечают, что такого функционала нет.
                    Александр Рахимов
                    29 мая 2015, 22:44
                    С моей стороны компонент развивается. Добавлена поддержка новой версии протокола и исправлены ошибки.
                    Но сомневаюсь, что компонент обновится в modstore.
                      Klike
                      29 мая 2015, 22:58
                      А как можно обновить до свежей версии?)
                        Александр Рахимов
                        29 мая 2015, 23:03
                        Сложный вопрос.
                        Меня убрали с этого компонента, а в паблик пока не планирую выкладывать.
                          Klike
                          29 мая 2015, 23:06
                          Даже, если приобретался компонент?)
              Михаил
              15 июня 2015, 17:04
              Некропост конечно, но вдруг тут кто нибудь ещё есть.
              Подскажите пожалуйста, как запустить синхронизацию без 1С?
              Дело в том что синхронизировать нужно с 1с77, а там нет стандартного обмена как в 1С8.
              Программист сделал offers.xml и import.xml, я положил их в 1C_temp
              а дальше не знаю как запустить 1c_exchange.php
                Володя
                15 июня 2015, 17:34
                ссылка вида
                /assets/components/msklad/1c_exchange.php?http_auth=htauth:bVN5bmM6ZWQ3ODgyYmU1NzZhMTJjNWU0MGU1MTE2MWMyNmQ2MGM=&type=catalog&mode=import&filename=import.xml
                где htauth:bVN5bmM6ZWQ3ODgyYmU1NzZhMTJjNWU0MGU1MTE2MWMyNmQ2MGM=
                логин пароль через : в base64
                ну а остальное по логике сообразите
                Евгений
                30 июля 2015, 15:47
                Добрый день, при тестирование компонента на тестовом сайте хостинга(синхронизация с 1С) — в логах следующая ошибка:
                Ошибка импорта каталога, передано пустое имя файла (переменная filename)

                При этом файл от 1С приходит(import0_1.xml)
                В логах:
                Array(
                    [REQUEST] => Array(
                            [type] => catalog
                            [mode] => import
                            [filename] => import0_1.xml)
                    [SESSION] => Array([feature_mapping] => Array())
                )
                Подскажите что не понравилось компоненту?
                  Егор
                  04 сентября 2015, 18:15
                  Прошу помощи у разработчика, либо у сообщества!
                  В системных настройках поставил чтобы у импортированных товаров в псевдоним подставлялся id товара (синхронизирую с класс365).
                  Но при выгрузке в псевдоним не подставляется id и получается, что у 10 товаров абсолютно одинаковый псевдоним и все вытекающие из этого проблемы…

                  Что нужно сделать, чтобы в псевдоним подставлялся id товара?!
                    Klike
                    04 октября 2015, 21:58
                    Как вариант, использовать CustomUrls.
                    Klike
                    04 октября 2015, 21:53
                    Доброго времени суток!
                    С недавнего времени перестало авторизовывать из 1с (проверьте логин/пароль).
                    Проверка путем
                    http://site.ru/assets/components/msklad/1c_exchange.php?http_auth=htauth:YWRtaW46YWRtaW4=&type=catalog&mode=checkauth
                    Проходит хорошо – в окне браузера выдает SUCCESS…

                    Если на другом домене – всё отлично, Соединение с сайтом установлено.

                    Если в строке Адрес сайта в (Узлах 1С) вставить строчку с логином/паролем в Base64 (как ссылка выше),
                    то Сведение установлено.

                    В чём может быть загвоздка?)
                      Константин Ильин
                      10 октября 2015, 18:18
                      Доброе время суток!

                      Как я понимаю Компонент может обработать выгрузку из 1С УТ, вопрос, а с изображениями как дело обстоит тоже выгружаются?

                      есть ли обратная синхронизация т.е. с сайта в 1С УТ вместе с характеристиками и изображениями?
                        Дмитрий
                        11 апреля 2016, 21:20
                        В minishop2 сделано "Расширение модели товара".
                        У товара может быть 3 цены:
                        price
                        price_usd
                        price_euro
                        Соответственно в 1С есть цены в рублях и валюте.
                        <Предложение>
                        	<Ид>9bf7a895-0073-11e5-bef5-28924a4fd90c</Ид>
                        	<Наименование>CAV-72B</Наименование>
                        	<БазоваяЕдиница Код="796 " НаименованиеПолное="Штука">шт</БазоваяЕдиница>
                        	<Цены>
                        		<Цена>
                        			<Представление>321,76 USD за шт</Представление>
                        			<ИдТипаЦены>6fb11424-230c-11e1-8558-00252271fc01</ИдТипаЦены>
                        			<ЦенаЗаЕдиницу>321.76</ЦенаЗаЕдиницу>
                        			<Валюта>USD</Валюта>
                        			<Единица>шт</Единица>
                        			<Коэффициент>1</Коэффициент>
                        		</Цена>
                        	</Цены>
                        </Предложение>
                        Насколько я понимаю мне нужно создать плагин на одно из событий mskladOnProductImport или mskladOnProductOffers.
                        Пожалуйста дайте пример, где отловить <Валюта>USD</Валюта> и перенаправить price в msProductData price_usd.
                        Ну или хотя бы, как получить список свойств $properties и $resource?
                          Дмитрий
                          12 апреля 2016, 03:09
                          Вообщем сам решил задачу.
                          1. Идем в настройки импорта mSync. Создаем или обновляем «Цена» или «Розничная цена» (у меня розничная) и устанавливаем тип поля -> msProduct и цель -> currency of price.
                          2. Еще создаем настройки импорта с источниками USD, EUR, руб типом msProduct и соответствующими целями price_usd, price_euro, price.

                          3. В файле core/components/msklad/model/msklad/mskladcataloghandler.class.php заменяем
                          //update price
                          $selectedPrice=0;
                          if($this->config['import_all_prices']){
                          	//Импортируем цены согласно связям
                          	$c=0;
                          	foreach($xml->Цены->Цена as $price){
                          		$priceTypeId = addslashes((string) $price->ИдТипаЦены);
                          		$priceTypeName='';
                          		if(isset($_SESSION['price_mapping'][$priceTypeId])) $priceTypeName = $_SESSION['price_mapping'][$priceTypeId];
                          		if(!empty($priceTypeName)){
                          			if(!isset($this->properties[$priceTypeName])) continue;
                          			$priceSum = addslashes((string) $price->ЦенаЗаЕдиницу);
                          			if($c==0) $selectedPrice=$priceSum;
                          
                          			if($this->properties[$priceTypeName]['type']==1){
                          				$processorProps = array(
                          					'id'=>$product_id
                          					,'class_key' => 'msProduct'
                          					,'context_key' => $this->config['catalog_context']
                          				);
                          				$processorProps[$this->properties[$priceTypeName]['target']] = $priceSum;
                          				$this->modx->runProcessor('mgr/extend/updatemsproduct', $processorProps, array('processors_path'=>$this->config['processorsPath']));
                          			}
                          			elseif($this->properties[$priceTypeName]['type']==2){
                          				$product->setTVValue($this->properties[$priceTypeName]['target'], $priceSum);
                          			}
                          		}
                          		++$c;
                          	}
                          }


                          на вот это
                          //update price
                          $selectedPrice=0;
                          if($this->config['import_all_prices']){
                          	//Импортируем цены согласно связям
                          	$c=0;
                          	foreach($xml->Цены->Цена as $price){
                          		
                          		$priceTypeId = addslashes((string) $price->ИдТипаЦены);
                          		$priceTypeName='';
                          		if(isset($_SESSION['price_mapping'][$priceTypeId])) $priceTypeName = $_SESSION['price_mapping'][$priceTypeId];
                          		if(!empty($priceTypeName) AND $this->properties[$priceTypeName]['target'] = 'currency of price'){
                          			if(!isset($this->properties[$priceTypeName])) continue;
                          			$priceTypeName = addslashes((string) $price->Валюта);
                          			$priceSum = addslashes((string) $price->ЦенаЗаЕдиницу);
                          			if($c==0) $selectedPrice=$priceSum;
                          
                          			if($this->properties[$priceTypeName]['type']==1){
                          				$processorProps = array(
                          					'id'=>$product_id
                          					,'class_key' => 'msProduct'
                          					,'context_key' => $this->config['catalog_context']
                          				);
                          				$processorProps[$this->properties[$priceTypeName]['target']] = $priceSum;
                          				$this->modx->runProcessor('mgr/extend/updatemsproduct', $processorProps, array('processors_path'=>$this->config['processorsPath']));
                          			}
                          			elseif($this->properties[$priceTypeName]['type']==2){
                          				$product->setTVValue($this->properties[$priceTypeName]['target'], $priceSum);
                          			}
                          		}
                          		if(!empty($priceTypeName) AND $this->properties[$priceTypeName]['target'] != 'currency of price'){
                          			if(!isset($this->properties[$priceTypeName])) continue;
                          			$priceSum = addslashes((string) $price->ЦенаЗаЕдиницу);
                          			if($c==0) $selectedPrice=$priceSum;
                          
                          			if($this->properties[$priceTypeName]['type']==1){
                          				$processorProps = array(
                          					'id'=>$product_id
                          					,'class_key' => 'msProduct'
                          					,'context_key' => $this->config['catalog_context']
                          				);
                          				$processorProps[$this->properties[$priceTypeName]['target']] = $priceSum;
                          				$this->modx->runProcessor('mgr/extend/updatemsproduct', $processorProps, array('processors_path'=>$this->config['processorsPath']));
                          			}
                          			elseif($this->properties[$priceTypeName]['type']==2){
                          				$product->setTVValue($this->properties[$priceTypeName]['target'], $priceSum);
                          			}
                          		}
                          		++$c;
                          	}
                          }
                          У меня в настройках mSync стоит «импортировать все цены» (msklad_import_all_prices).
                            adminixi
                            20 декабря 2016, 12:24
                            Скажите, а как к 1с прикрутить. Не очень понимаю…
                              Дмитрий
                              20 декабря 2016, 12:42
                              Если есть специалист по 1С, то все очень просто.
                              Я недавно синхронизировал сайт с 1С, и дело было примерно так. Специалист по 1С настроил товары, настроил в программе выгрузку по CommerceML (где-то тут есть инструкция, как это делать), я же всего лишь связал через админку MODX'а нужные поля с полями товара и все.
                                adminixi
                                20 декабря 2016, 12:46
                                Скажите, а он товары сам заносил все или в 1С с сайта информация загрузилась?
                                  Дмитрий
                                  20 декабря 2016, 12:49
                                  Ну, так как у нас изначально товары лежали на сайте, но был дикий бардак с артикулами и свойствами, то я выгрузил товары через Excel ему, он их отредактировал и занес в 1С.
                              Saldorian
                              05 октября 2017, 10:24
                              Здравствуйте! Может вышлет кто-нибудь модуль мне на почту. it.med.rus@mail.ru. И как он работает на modx evo 1.2, допиливать ничего не нужно?
                                Никита
                                20 февраля 2018, 18:45
                                Здравствуйте! Этот модуль уже не поддерживается и исчез из магазина? Можете подсказать альтернативы?
                                  Leonid Krylov
                                  21 февраля 2018, 10:08
                                  Да, модуль был полностью переработан и теперь называется mSync.
                                    mekirile
                                    12 марта 2019, 09:12
                                    Здравствуйте, при выгрузке заказа с сайта в МойСклад не добавляется его модификация.
                                    В данном случае модификация — это TV параметр размер.

                                    Вот как выглядит при создании заказа в МойСклад — prntscr.com/mwn6jb
                                    Вот как должно быть — prntscr.com/mwn7ck
                                    Вот так выбирается размер на сайте — prntscr.com/mwn7xp

                                    Сами значения размеров (TV-параметры) как раз-таки и берутся из МоегоСклада, поле заполняется модификациями при импорте товаров на сайт.

                                    Подскажите, в каком файле можно добавить указание модификации к товарам в заказе.
                                      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                      56