[mSklad] синхронизация с МойСклад

Наконец закончил и выпустил компонент для синхронизации товаров, заказов и остатков miniShop2 с «МойСклад» и «1С УТ».

Выгрузка из miniShop2
  • Товарных позиций с привязкой к разделам
  • Цен
  • Структуры категорий (разделов и подразделов номенклатуры)
  • Заказов
  • Экспорт справочника товаров в .csv (может использоваться для импорта в «МойСклад»)
Импорт в miniShop2
  • Остатков
Компонент и инструкция по настройке — в нашем репозитарии

На данный момент нет импорта товаров из 1С. О полной совместимости с 1С будет объявлено позже, после тщательного тестирования.
Поэтому нужны тестировщики 1С-версии, первому отписавшему в комментариях компонент будет предоставлен бесплатно

Синхронизация товаров и категорий осуществляется через API «МойСклад».
Заказы и остатки передаются в автоматическом режиме в формате CommerceML.
Все процессы выполняются в одностороннем порядке — с сайта на сервис.

Пожалуйста пишите ваши пожелания, по возможности буду реализовывать.
Александр Рахимов
02 июля 2013, 15:36
modx.pro
9 823
0

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

Марк Львов
02 июля 2013, 20:46
0
А по какой причине отсутствует выгрузка каталога товаров из МойСклад в miniShop2? Я считаю это более полезный функционал, т.к. загрузка справочников товаров осуществляется именно в МойСклад, там выставляется НДС минимальная цена и прочие параметры.
    Александр Рахимов
    02 июля 2013, 20:58
    0
    Причины на самом деле нет, просто так делали под мамабутик.
    Ваше пожелание учтено, думаю будет в следующем обновлении, в ближайшие дни.

    Как думаете удобнее будет реализовать смену направления синхронизации — отдельной кнопкой или параметром в системных настройках?
      Марк Львов
      02 июля 2013, 23:20
      0
      Я думаю это достаточно оставить в настройках.

      Помимо смены направления синхронизации, по моему мнению должен быть скрипт-инициализатор синхронизации, который можно подключить к cron, т.к. заставлять кликать синхронизацию, если это нужно каждый день — не очень хорошо.
      Еще более главным я считаю сделать таблицу связей параметров синхронизации.
      Допустим она может выглядеть так:
      Называние параметра (мой склад) | название параметра в modx (TV или msProdeuctData). К наиболее важным я бы отнес остатки на складе, артикул, минимальная цена и НДС. Ну и еще я бы добавил возможность подключать свой код к этой синхронизации, потому как неизвестно, что еще может понадобиться.
        Александр Рахимов
        02 июля 2013, 23:42
        0
        Да для крона уже готов скрипт, опять же будет в следующем обновлении. Справочник товаров не так часто меняется на самом деле, а синхронизация заказов и остатков инициализируется со стороны МоегоСклада по заданному расписанию.
          Марк Львов
          03 июля 2013, 00:04
          0
          С этим согласен. Кстати, что происходит с товаров в miniShop если товар в МойСклад удален или помещен в архив?
            Александр Рахимов
            03 июля 2013, 00:20
            0
            Не готов ответить, надо проверить.
            По идее при синхронизации с сайта на склад, если товар совсем-совсем удален со склада то он создастся по новой, а если он в архиве то информация в товаре наверно обновится просто.

            В МоемСкладе еще и товар/категорию/итд просто так не удалить если остались связи с другими документами, а uuid у товара останется.
          Александр Рахимов
          02 июля 2013, 23:48
          0
          Насчет параметров подумаю, со стандартными это не сложно, а вот с настраиваемыми не все так просто если через API обновлять.
      Виталий Князь
      03 июля 2013, 10:27
      0
      Интересно участие в тестировании версии под 1С.
      Я так понимаю необходимо тестирование выгрузки товаров из 1С на сайт или из 1С в Мой склад и на сайт? (какая схема для 1с, не понял из текста).
      Юрий Зюзин
      03 июля 2013, 12:58
      0
      У меня есть 1С 8.2 УТ
      Что нужно для теста?
      Антон Соловьёв
      07 июля 2013, 23:15
      0
      Скажите пожалуйста, компонент работает только с минишоп или можно выгружать и в виде стандартных документов modx?
        Александр Рахимов
        08 июля 2013, 14:27
        0
        Данная реализация работает только в связке с miniShop2
          Антон Соловьёв
          08 июля 2013, 14:42
          0
          А в таком случаи какое максимально-возможное количество товаров в магазине, называемом «минишоп»? В остальном же он вроде примерно похож на Шопкипер по возможностям? Извиняюсь, если обидел кого предположением, я не вкурсе просто.
            Виталий
            08 июля 2013, 14:47
            0
            Вы можете посмотреть возможности на minishop2.com. Количество товаров — ограничено только возможностями разработчиков.

            Но в целом, все работает очень быстро даже в больших магазинах из коробки.
              Василий Наумкин
              08 июля 2013, 15:02
              0
              Да, примерно похож.

              Правда, есть и некоторые отличия.
                Антон Соловьёв
                08 июля 2013, 22:58
                0
                30 тысяч товаров потянет? экспорт-импорт из csv налажен?
                Понятно, что от хостинга в этом случаи тоже многое зависит. И это тоже вопрос: при 30 тысячах товара каких ресурсов потребует?
                  Антон Соловьёв
                  08 июля 2013, 23:30
                  0
                  Я извиняюсь, что спрашиваю инфу, которую можно на сайте нагуглить, просто мы тут втыкнулись и срочно нужна альтернатива.
                    Василий Наумкин
                    09 июля 2013, 05:23
                    0
                    Товары MS2 — это такие же ресурсы как у шопкипера, только с расширенными свойствами, которые хранятся в отдельной таблице.

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

                    Так что, если на твоем хостинге обычный MODX Revolution крутит 30к страниц, то 30к товаров MS2 будут крутиться также или немного быстрее. Обычного vps типа Linode хватит за глава, настроить можно по этой инструкции.

                    Серьёзного компонента импорта-экспорта пока нет, но для своих задач можно написать что-то самостоятельно. Вот, например.
                    Виталий
                    09 июля 2013, 00:02
                    0
                    30 000 потянет при грамотном подходе. Хостинг — modxcloud.com вполне подойдет.

                    Есть различные решения для экспорта и импорта в общем репозитории MODX. Мы планируем в скором будущем сделать такой модуль специально для miniShop2.
                      Антон Соловьёв
                      09 июля 2013, 08:09
                      0
                      30к тянет вполне. Проблема с импортом и еженедельным обновлением цен.
                      Можно подробнее на тему различных решений для импорта? Прошу прощения конечно за офтоп.
                        Антон Соловьёв
                        09 июля 2013, 08:36
                        0
                        bezumkin.ru/modx/minishop/import.html
                        в принципе по описанию вполне годится и стоит попробовать.
                        Тут еще один любопытный момент, возможно, даже революционный: скрипт определяет ограничение по времени, на выполнение кода PHP, и если не успевает — возвращает сигнал фронтенду, а тот запускает импорт дальше с нужного места. Таким образом, импортироваться должны файлы любого размера (поэтому и работаем с уже загруженным на сервер *.csv). При каждой итерации импорта обновляется значение поля «Начать со строки», так что вы видите прогресс
                        тоже есть в соответствующем компоненте шопкипера, но с определённого колличества загрузка не работает.

                        Так что скажите про функционал по предложенной ссылке? Может ли он например обновить товар и цены? Я так понимаю, что если категории созданы, то позиция в меню при обновлении (если оно возможно), не изменится?
                        Необходимо загрузить и обновить название, цену и один tv (или что там лучше в МШ) с типом ввода «выпадающий список». Плюс много маленьких подкатегорий с названием и картинками.
                          Василий Наумкин
                          09 июля 2013, 10:43
                          0
                          Это для старого, первого miniShop.

                          Для второго мы еще не писали импорт.
                            Антон Соловьёв
                            09 июля 2013, 13:26
                            0
                            Печаль.
                            Так что, если на твоем хостинге обычный MODX Revolution крутит 30к страниц, то 30к товаров MS2 будут крутиться также или немного быстрее.
                            к старому Минишопу такое не относится?
                            Необходима регистрация, личный кабинет, корзина, учёт заказов, еженедельное обновление менеджером-уверенным пользователем.
                              Воеводский Михаил
                              09 июля 2013, 13:33
                              0
                              Сейчас делаю импорт, стараюсь не затачивать его под узкие задачи.
                              Напишите мне на почту mv #$# aaa0.ru.
                              Антон Соловьёв
                              09 июля 2013, 14:01
                              0
                              #$# — собака?
                              Воеводский Михаил
                              09 июля 2013, 14:05
                              0
                              Да. Письмо получил.
                              Василий Наумкин
                              09 июля 2013, 13:44
                              0
                              Это тоже самое, что ради старого принтера ставить на новый комп Windows 95. Проще и принтер поменять и нормальную ОС поставить.

                              MS1 нет в репозиториях, остались только исходники — ибо он совсем не интересен.
                              Антон Соловьёв
                              09 июля 2013, 14:00
                              0
                              Понятное дело. но выход надо как то искать в ближайшие пару дней.
                              И лучше уже сегодня.
                              Василий Наумкин
                              09 июля 2013, 14:03
                              0
                              Не думал, что при разработке сайта — это такая большая проблема, написать скрипты импорта-экспорта для готовых таблиц в базе данных.

                              Тем более, что и примеры кода есть и документация, и исходники компонента.

                              Лично я пока больше ничем не могу помочь.
                              Антон Соловьёв
                              09 июля 2013, 15:30
                              0
                              Но какая-то помощь оказана, благодарен.
                              Мы планируем в скором будущем сделать такой модуль специально для miniShop2.
                              А можно узнать, ближайшее будущее — это пара месяцев, полгода, год? Понятно, что это всего лишь ваши планы.

                              Александр Рахимов
                              09 июля 2013, 15:19
                              0
                              Я параллельно пишу импорт/экспорт для miniShop2
                              будет готов как компонент в ближайшие 2 дня
                              Антон Соловьёв
                              09 июля 2013, 20:15
                              0
                              nekto-neizvestny # mail.ru
                              это ящик — спамоотвод. скиньте контакт какой-нибудь, если видите смысл обсудить подробнее.
                              Виталий
                              09 июля 2013, 21:28
                              0
                              Когда компонент будет готов — мы выложим его в наш магазин store.simpledream.ru
          Андрей Кухарев
          27 ноября 2013, 14:31
          0
          Как изменить выгружаемый внешний код товара?
            Володя
            27 ноября 2013, 16:40
            0
            Перед тем как активировать синхронизацию с интернет-магазином, надо убедиться, что для товаров уже внесенных в справочник номенклатуры МоегоСклада значение поля Внешний код совпадает со значением соответствующего поля в каталоге товаров интернет-магазина. Здесь полезной может быть возможность при импорте номенклатуры в МойСклад в формате CSV импортировать и Внешний код товаров. С помощью этой функции также возможно добавить корректный Внешний код в уже существующую в МоемСкладе номенклатуру, ведь импорт в CSV ищет существующие элементы по наименованию или по полю Код. В случае, если вы только начинаете работать с МоимСкладом (справочник номенклатуры в МоемСкладе пуст), а интернет-магазин у вас уже есть, то решением может быть включить синхронизацию заказов, потом в интернет-магазине сделать тестовый заказ (несколько заказов), содержащий все товары, которые вы продаете. Синхронизация перенесет этот заказ в МойСклад, а все товары из этого заказа будут созданы в МоемСкладе автоматически с правильным внешним кодом.
            взято отсюда — u.to/MzIeBQ
            Володя
            15 января 2014, 17:22
            0
            Протестировал новую версию mSklad 1.0.5 rc2. и импорт с 1С
            1. На старом сайте, где раннее стояла другая версия — импорт вообще не идет. В логах чисто и все…
            2. На тестовом сайте у Василия, только сейчас протестировал, импорт проходит, но изображения товара валятся прям в корень сайта, по папочкам товара, а не в медиасорс
              Александр Рахимов
              15 января 2014, 18:00
              0
              1. В новом исправлено да.
              2. Посмотрю и поправлю сейчас
                Алексей Милов
                15 января 2014, 22:32
                0
                Приобрел данный компонент, написал в техподдержке, но что-то там никто не отвечает. Поэтому дублирую сюда

                Выгружаю Номенклатуру из 1С Розница 2.1
                В 1С пишет, что выгружено, с сайтом соединение установлено

                В журнале ошибок на сайте строка
                [2014-01-03 10:55:49] (ERROR @ /assets/components/msklad/1c_exchange.php) [mSklad] Ошибка импорта каталога, передано пустое имя файла (переменная filename)

                Попробовал из УТ выгрузить — все нормально. Видимо дело в самой выгрузке из Розницы.
                Можно как то исправить?

                yadi.sk/d/X-uiUjFTFU96Y — данные из Розницы выгруженные на диск
              mekirile
              11 февраля 2015, 10:36
              0
              Здравствуйте. Использую связки Мой Склад — MS2 — Msync. Не выгружается характеристика Размер.

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

              Также пробую выгружать все характеристики в TV — ничего не происходит. Там оказывается пусто. если убираю галочку в настройках синхронизации (Выгружать остатки с учетом характеристик), то выгружаются просто товары, размер нигде не учитывается.
                Игорь Улькин
                11 февраля 2015, 18:44
                0
                мой склад не отдает информацию из модификации ((( увы
                и вообще много чего не отдает

                пришлось делать в мойсклад свои поля.
                  Игорь Улькин
                  11 февраля 2015, 18:55
                  0
                  Вообщем, саппорт МойСклад утверждает, что в XML они передают только основные параметры:
                  — Наименование
                  — Артикул
                  — Группу (категорию)
                  — Описание
                  — Цена продажи

                  и не передает (но передает собственные поля сделанные в Администрирование/Товар):
                  — вторую цену (можно настроить в синхронизации, но она затрет текущую. В теории можно при необходимости в настройках поменять галку «Активный» местами со Старой ценой [[+old_price]], а потом вернуть обратно.)
                  — вес
                  — объем
                  — НДС
                  — штрихкод и код
                  — Страна
                  — Поставщик
                  — Изображение

                  Поэтому характеристики получаем из собвственных полей Администрирование/Товар).

                  С собственными полями сделанными в Администрирование/Товар своя жопа. Передаются только 4 типа полей:
                  — число (ограниченное кол-во символов)
                  — текст
                  — целое число
                  — дробное число
                    mekirile
                    11 февраля 2015, 20:48
                    0
                    Игорь, спасибо за ответ. Но вот в XML с остатками, которые выружаются можно увидеть что есть Характеристика Размер и ее значение. Но как же это привязать совсем не понимаю.

                    <Предложение>
                    <Ид>gw9883kUj16LAw3OaRiiU0#bl8O8y7jh8C5rBDoEv-BJ2</Ид>
                    <Наименование>SCOMW.308.PM</Наименование>
                    <ХарактеристикиТовара>
                    <ХарактеристикаТовара>
                    <Наименование>Размер</Наименование>
                    <Значение>40</Значение>
                    </ХарактеристикаТовара>
                    </ХарактеристикиТовара>
                    <Цены>
                    <Цена>
                    <ИдТипаЦены>cbcf493b-55bc-11d9-848a-00112f43529a</ИдТипаЦены>
                    <ЦенаЗаЕдиницу>3490.0</ЦенаЗаЕдиницу>
                    <Валюта>643</Валюта>
                    <Коэффициент>1</Коэффициент>
                    </Цена>
                    <Цена>
                    <ИдТипаЦены>bd72d8fc-55bc-11d9-848a-00112f43529a</ИдТипаЦены>
                    <ЦенаЗаЕдиницу>2443.0</ЦенаЗаЕдиницу>
                    <Валюта>643</Валюта>
                    <Коэффициент>1</Коэффициент>
                    </Цена>
                    <Цена>
                    <ИдТипаЦены>cbcf495d-55bc-11d9-848a-00112f43529a</ИдТипаЦены>
                    <ЦенаЗаЕдиницу>0.0</ЦенаЗаЕдиницу>
                    <Валюта>643</Валюта>
                    <Коэффициент>1</Коэффициент>
                    </Цена>
                    </Цены>
                    <Количество>1.0</Количество>
                    </Предложение>
                      mekirile
                      12 февраля 2015, 01:59
                      0
                      Путем хитрых манипуляци добился того, чтобы размеры выгружались в правильное поле prntscr.com/63zewy

                      Но теперь встал вопрос, как отображать только те размеры, остаток по которым больше 0? Есть мысли у кого?
                        Игорь Улькин
                        12 февраля 2015, 13:36
                        0
                        Я честно говоря делал настройки пару месяцев назад и уже подзабыл детали. Но раз у вас получилось с размером из Модификации, мб получится второе поле оттуда выцепить — «Остаток»?

                        Хотя даже если и получится выцепить, связать остаток и размер в одной карточке товара я не придумал как. В результате обхожусь без модификаций — сколько размеров или цветов — столько карточек товара. Картинка только у базовой карточки (как правило минимальный размер) и фильтр вывода по наличию картинки. Если в МойСклад остаток у карточки 0, ей при синхронизации ставиться статус «Неопубликовано» — соответственно цвет/размер скрывается и на сайте.

                        Если фантазировать можно попробовать писать Модификации вот так (где «Размер фильтра» это Размер х Остаток):

                        А дальше фильтрами вывода (ну или мб яваскрипт) выводить. Мб и не заработает.

                        Для расширения кругозора — расскажите как у вас названо поле размера из Модификации в настройках mSklad (скриншот хотя бы)?
                        "Размер"?
                          Станислав
                          04 августа 2016, 10:26
                          0
                          Здравствуйте!

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

                          Не подскажете, как выгружать из 1С размеры и их остатки? Бьемся уже неделю над этим.
                    yani
                    17 февраля 2016, 11:33
                    0
                    Используется данный компонент на сайте, провожу доработки. Подскажите, умеет ли данный компонент ОБНОВЛЯТЬ товары, или нужно удалять весь старый каталог и загружать все заново?
                    Может какая настройка есть? а то у меня вроде получается как раз дублирование новых, а не обновление старых товаров(
                      Воеводский Михаил
                      17 февраля 2016, 11:42
                      +1
                      Когда использовал (2-3 месяца назад) на одном из проектов, товары успешно обновлялись.
                        yani
                        17 февраля 2016, 11:57
                        0
                        Спасибо. Буду искать баги\настройки или руки выпрямлять)
                      Андрей
                      18 августа 2016, 17:03
                      0
                      А кто сейчас поддерживает mSclad?

                      Собираюсь приобрести mSklad.
                      Не могу протестить. Файлы импорта залиты.
                      На примере этого начинал тестировать 2geek.pro/solutions/57-msklad-sinxronizacziya-bez-1s
                      s6340.h2.modhost.pro/manager
                      s6340
                      J8s0kWqY7JOp
                        Aleksey Savin
                        25 сентября 2016, 23:38
                        0
                        Добрый вечер, перед покупкой хотелось протестировать дополнение

                        На modhost.pro предоставил мне такую возможность

                        Натолкнулся на такую проблему:
                        Не устанавливается соединение, (конкретно картинка по ссылке:
                        drive.google.com/file/d/0B375bQYeexa8UVRLNi1QWG9ZeUU/view)

                        Пишет что:
                        Не удалось установить соединение
                        Авторизация не выполнена
                        Не удалось установить соединение с сервером. Проверьте имя пользователя и пароль.

                        Сначала проверял без изменений .htaccess потом с изменениями.

                        Скажите, пожалуйста, как это можно проверить?
                          Aleksey Savin
                          26 сентября 2016, 00:00
                          0
                          И еще ответьте пожалуйста на несколько вопросов:
                          -как себя ведёт система с большими магазинами с товарами от 5000 наименований? можно ли настраивать ежедневное обновление каталога и товаров?
                          -возможно ли выполять загрузку из php файла? или еще как то, а не средствами кнопки в 1C или кнопки в панели управления MODx
                            Alexander V
                            25 марта 2017, 22:50
                            0
                            Не получается авторизоваться из 1С УТ 11.3
                              Айдар
                              23 апреля 2017, 13:08
                              0
                              на modx revo с шопкипером не получится настроить выгрузку?
                                Дмитрий
                                23 апреля 2017, 18:41
                                0
                                Ну, если вы перепишите всю логику с ms2 на SK, то получится.
                                Алексей П
                                23 мая 2017, 22:05
                                0
                                Добрый вечер. Как я понимаю у компонента нет возможности онлайн синхронизации остатков? Т.е., допустим, в нашем ИМ купили вещь, после оформления заказа (клиентом либо менеджером) в моем складе и ИМ остатки уменьшились на 1 ед.
                                Или нужно будет запускать синхронизацию вручную (либо по крону)?
                                  Илья
                                  10 августа 2017, 12:11
                                  0
                                  Здравствуйте,

                                  Есть ли синхронизация с 1С: Управление торговлей 8 версии 10.3?

                                  Судя по истории изменений «Поддержка 1С Управление торговлей 11»
                                    Александр
                                    05 февраля 2018, 15:05
                                    0
                                    Доброго дня. Возникла проблема 29.01 и продолжается, на новые товары не выгружаются остатки и цена, при этом в МойСклад всё в порядке. В настройках видно что повторяется ошибка, вручную тоже не получается выгрузить.
                                    file.modx.pro/files/8/7/1/87186a34e10ae24b8f44f7976d9b8619.jpg
                                    file.modx.pro/files/5/2/0/520d361134d26ea189a27cf95d662740.jpg
                                    На стороне сайта плагин mSklad не позволяет себя обновить:
                                    file.modx.pro/files/3/4/2/342fa3105c0f84e81cc924c563a0157b.jpg
                                    Версия 1.0.10-pl.
                                      mekirile
                                      12 марта 2019, 09:11
                                      0
                                      Здравствуйте, при выгрузке заказа с сайта в МойСклад не добавляется его модификация.
                                      В данном случае модификация — это TV параметр размер.

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

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

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