Характиристики 1С + msOptionsPrice2 и др. (CommerceML)

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

В общем статья для тех кто хотя бы раз синхронизировал 1С и Modx;

Есть хороший опыт синхронизации 1С и Сайта на MODX (+6лет)
За плечами уже не один десяток автоматизированных сайтов. Но всегда приходится настраивать какие то моменты под себя (а точнее всегда).
И в последнее время когда делал уже собственный компонент для синхронизации 1С и сайта, был удивлен тем что компонент msOptionsPrice2 полностью заточен под характиристики из 1С (характеристики это такие опции у товара, которые имею свои свойства, несколько цен. несколько складов и наименований).

msOptionsPrice2 — уже умеет добавлять опции, и удалять старые опции из товара, что очень значительно влияет на выбор данного компонента с моей стороны.

Наверное разработчик msOptionsPrice2 разрабатывает компонент под 1С))))

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

Если взяться за синхронизацию 1С решений нету. Ну просто нету, вопрос как синхронизировать харатиристики, нету.
Есть отдельные решения в виде: загрузятся товаров в категории, и цены не пойми куда залетят. Хотя надо отдать должное сам на этом научился…

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

Этот UUID передается как у товара так и у предложения. Чтобы 1С посчитало правильно заказа который к ней пришел надо передать UUID товара и UUID предложения. Это очень важно не надо передавать в 1С какие либо другие данные! Только UUID товара и предложения. 1С и так знает как правильно посчитать.

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

Кароче много текста, в крации: есть идеи, как сделать проще синхронизации с 1С, сейчас разрабатываю компонент, компонент решает все проблемы перечисленные выше. Точней одна версия компонента уже в действии, и довольно не плохо справляется (если бы, не справлялась, так смело бы не писал).
Кто готов, можем списаться, с помощью ваших возможностей синхронизируем ваши 1С я помогу настроить (предложение до 1 марта). Я смогу протестировать полностью свое решение, и дать другим возможность использовать это решение по синхронизации.
От финансовой помощи тоже не откажусь:


Что сейчас умеет компонент
  • Возможность синхронизировать несколько баз данных 1С на одном сайте.
  • Синхронизировать в разные категории
  • Синхронизировать в разные контексты
  • Создавать склады
  • Создавать типы цен
  • При создании складов и типов цен расширяются и таблицы ms2_products и msop_modifications
  • Расширяются поля для таблицы ms2_products для типов цен и для складов. А так же добавляются поля count, baseunit, barcode, item_type, type_nomenclature (item_type — определяет что продукт является услугой или товаром)
  • По умолчанию расширятся таблицы site_content с полями uuid и catalog (модификации аналогично)
  • При обновлении, удалении, расширении… ну в общем чего угодно поля и расширения не куда не потеряются
  • Возможно оставить ваш каталог в том же состоянии при переносе. То есть вы можете UUID задать в ручную и при синхронизации категории и товары не куда не слетят
  • Еще множетсво продуманных фишек, перечислить можно до бесконечности, так как в ходе разработки пологался на множество решений и факторов которые влияют на достижение желаемого результата
  • В разработке: выгрузки товаров, предложений и картинок в zip архиве, что увеличит скорость выгрузки во много раз. Собственно вопрос в скорости распаковки архива, так как если большой архив
    то будет распаковывотся долго. Когда то писал скрипт для пакетной распаковки, но нужен скриптик который сможет точно это сделать.
  • Синхронизация с msOptionsPrice2 преложений цен, складов
  • Синхронизация изображений
  • Назначение полей куда записать значение из поля. К примеру поле Наименование можно записать сразу в два поля pagetitle и longtitle. То есть реализован механизм записи одного значение в несколько полей.
  • При добавлении нового типа цен создается поле с префиксом price_{ID} и аналогично со складами storage_{ID}
  • Отправка заказов в 1С с индитификаторами характиристик или с индитификатором товара
  • Хранение у заказа индитификаторов из 1С для полной синхронизации статусов
  • Запись в ТВ параметры или в опции значений из 1С
  • Кастомизация классов для работы с 1С
  • Для отладки написаны phpUnit тесты которые умею имитировать действия из 1С и отправлять файлы аналогично как это делает 1С при синхронизации
  • Поддержка использования категорий в место стандартных групп (для категорий можно задовать отдельные свойства)
  • Автоматическая генерация уникального alias и uri для ресурса. Ошибка о том что алиас дублируется с другим ресурсом не произойдет
  • Массовое действие в списке каталогов где можно Установить/Снятие метку на удаление ресурсов которые были добавлены с этим каталогом каталог. Очень помогает если требуется удалить только те ресурсы и категории который были синхронизирован с 1С
  • Не ограниченное количество каталогов на одном сайте. Можно синхронизировать несколько баз 1С на одном сайте. Или же можно в одно 1С создать несколько каталогов для синхронизации, где один каталог будет грузиться в контекст web а второй каталог будет грузится в новый контекст к примеру назовем его «Санкт-Петербург»


В заключении могу отметить только один момент не жалейте денег на железе при синхронизации с 1С, и все будет гуд…
Пишите: https://modx.pro/users/webnitros
Skype: webnitros
VK: https://vk.com/nitros42

Вопросы комментарии приветствуются.
Андрей Степаненко
05 января 2019, 20:26
modx.pro
6
2 084
+9
Поблагодарить автора Отправить деньги

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

Семён Кудрявцев
05 января 2019, 21:51
0
Хорошая задумка, а формат обмена будет CommerceML или через oData?
Я сейчас изучаю 1С и вопросы интеграции и всё чаще вижу использование oData
    Андрей Степаненко
    05 января 2019, 21:56
    0
    Конечно же CommerceML
    oData — есть уже задумки, но тут много что зависит от программиста 1С, а они на modx не хотят обращать внимание. Ну то есть программисту 1С сложно объяснить какие то моменты про alias или uri, он тупа туда будет писать ID товара или чтото подобно что по проще.
    Николай
    05 января 2019, 22:22
    0
    Вот тут по этой теме, если не видели — E-commerce проекты 15000+ товаров в полной интеграции с 1С.
    Может какие идеи найдёте для себя.
      Андрей Степаненко
      05 января 2019, 22:25
      0
      Спасибо))) Уже знаком. У меня даже расширение таблице site_content с добавление uuid именно от туда.
      Там проблем нет, так как подключено несколько разработчиков в том числе и 1С разработчик, который получил прямой доступ к mysql и пишет туда что заходит.
        Андрей Степаненко
        05 января 2019, 22:34
        0
        Ну это все не то.
        Это решение строго индивидуально.

        Ни о какой универсальности даже рядом не приходится говорить.
        Я все же хочу превести CommerceML в modx и minishop2 к какому то единому формату.
        Что да, можно сказать что minishop2 по протоколу CommerceML полностью синхронизируется.
        Не надо лезть в код и чтото править. Думаю что у меня это получилось.
        У меня есть множество выгрузок xml import и offers с которыми я сравниваю, но объем данных очень большой.
        Просто физичиски с ним сложно справится.
        По этому перед выпуском хотел бы за тестить.
        Станислав
        05 января 2019, 23:35
        0
        Идея хорошая!
        сам постоянно сталкиваюсь с подобными проблемами, но как оказалось многие стали использовать еще и Битрикс 24 для ведения клиентов, а у Б24 и 1с последних версий нет обратной совместимости, в ТП сказали что проблема на стороне битрикс 24, было до НГ, пока ответа по решению не последовало, ждем. При большом количестве товаров начинают использовать СРМ для более эффективной работы менеджеров и самого сайта…
          Константин Ильин
          06 января 2019, 01:44
          0
          В модсторе не выложить так как политика модсторе говорит, что ваш компонент будет конкурентом mSync?
            Артем
            09 января 2019, 17:17
            0
            Когда можно ожидать компонент в модсторе?
              Андрей Степаненко
              10 января 2019, 12:14
              +1
              Публикации в modstore не будет, чтобы не пладить клоны и не нарушать правил публикации.

              Чуть позже когда все тесты завершаться, опубликую все возможности и описание, если компонент понравится и понадобится его внедерение, необходимо будет списаться обсудить условия.
              Могу сразу сказать что будет следующие схемы для работы:
              — установка компонента на сайт + техническая поддержка
              — установка компонента на сайт + техническая поддержка + настройка 1С
              — установка компонента на сайт + техническая поддержка + настройка 1С + доработка 1С + доработка компонента
              по стоимости пода не подскажу.
            Денис
            13 августа 2019, 10:44
            0
            Добрый день!
            Подскажите, на каком этапе сейчас разработка компонента?
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              12