🔹МойСклад

Для начального наполнения магазина и синхронизации остатков из МойСклад включите обмен по CommerceML. Если ваш тариф в МойСклад не дает эту возможность, используйте импорт csv и наш модуль МойСклад.

Базовый импорт и обмен по CommerceML

Настройте первичный обмен данными по стандарту CommerceML. Для обмена по CML, устанавливать наш модуль МойСклад не требуется.

Настройка

  1. В панели управления магазина в меню Настройки - Документооборот - CommerceML выберите:

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

Авторизация - Имя файла.

Имя файла - придумайте имя и введите в поле, например secretcml (ссылка будет иметь вид https://имя_сайта/1cManager/secretcml.php):

2. Для авторизации CML по имени файла у администратора должны быть права доступа по API и сформирован токен.

В меню 👤 - Профиль в закладке Права в нижней строке Доступ по API проверьте, что стоят права у Администратора и есть Токен. Если нет прав, проставьте галки и на вкладке Основное нажмите Сгенерировать новый пароль, поставьте Сменить логин и пароль, чтобы создался Токен.

Теперь, после повторного входа, вы увидите Токен:

3. На стороне Мойсклад зайдите в меню Настройки - Интернет-магазины, выберите CommerceML.

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

В открывшемся окне введите:

Наименование магазина - ссылку на сайт

Адрес магазина - ссылку, которую берем из настроек PHPShop Имя файла https://имя_сайта/1cManager/secretcml.php.

Логин и пароль подставляются автоматически. Токен, который сгенерировали, подцепится автоматически по ссылке.

Нажмите Проверить соединение - должна появиться надпись Соединение прошло успешно.

Склады

По умолчанию выгружаются общие остатки.

Если складов несколько, заведите склады в PHPShop в меню Настройки - Склады и укажите внешний код из Мойсклад:

В настройке выгрузке укажите требуемые склады. В МойСклад проверьте, чтобы Отдел в выгрузке и отдел склада совпадали (либо стояла галка Общий склад):

Цены

Из МС можно выгрузить до 5 цен, которые можно сопоставить с ценами на сайте Цена, Цена 2, Цена 3, Цена 4 и Цена 5 (заполняются в карточке товара). Сопоставление цен происходит в настройке Документооборота на сайте по внешнему коду цены (коды цен можно посмотреть в МС). При отсутствии сопоставления цен они будут загружены в порядке присутствия в файле выгрузки друг за другом (Цена - Цена 5).

Далее эти цены можно использовать в статусах пользователей - оптовые, мелкооптовые розничные и т.д.

Характеристики

Для выгрузки из МС характеристик следует включить галочку Характериcтики и свойства в настройках Документооборота.

Если нужно загружать из МС только определенные характеристики, то следует заполнить поле Блокировка характеристик в настройках Документооборота - указать через запятую ненужные характеристики.

Выгрузка товаров

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

Выгрузка изображений

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

Для повторной выгрузки изображений из МС следует удалить настройку синхронизации в МС и создать новую синхронизацию в МС с такими же данными.

Ограничения выгружаемых данных

Из МС, по независящим от нас причинам, в данный момент не выгружаются по протоколу обмена CML следующие данные:

  1. Вес товара

  2. Дополнительные поля товара из справочника

Эти поля можно выгрузить через CSV и приложение Выгрузка цен и остатков.

Тестируем списание и синхронизацию остатков

После выгрузки товаров, перейдите на витрину магазина и сделайте заказ.

В МойСклад в меню Настройки - Онлайн-торговля выберите настроенную синхронизацию, и нажмите Загрузить сейчас:

Проведите заказ, или зарезервируйте товар:

Нажмите Остатки - выгрузить сейчас, затем обновите витрину магазина, товар должен списаться:

Смена статуса

⛔️Через CML не происходит смена статуса заказа в магазине, т.к. CML отдает информацию только, что "забрал" заказ.

Если для вас критична смена статуса, выберите синхронизацию с 1С через наши модули:

✅ Когда в 1С поступает заказ, то в магазине меняется статус на Отправлен в учетную систему. Далее, когда заказ сформирован, 1с формирует счет и загружает в магазин, статус заказа меняется на Доступны бухгалтерские документы.

Первичный импорт из МойСклад в магазин через CSV

Рассмотрим вариант, когда есть пустой магазин, база товаров в МойСклад. Ваш тариф МойСклад не позволяет включить СommerceML.

Через CSV или YML файлы из МойСклад не выгрузятся Модификации товаров (это подтипы PHPShop), используйте CommerceML.

Настройка в МойСклад:

  1. Для переноса товаров из МойСклад в PHPShop, перейдите в Настройки - Приложения и установите приложение Выгрузка цен и остатков.

  2. После установки, перейдите в меню Приложения - Выгрузка цен и остатков.

  3. В настройке экспорта выберите формат .CSV, разделитесь - ;.

  4. Выберите нужные для выгрузки данные. Обязательным является поле ID.

  5. Нажмите Сохранить, появится постоянная ссылка на прайс-лист, по нажатию на которую скачиваем полученный Прайс-лист:

Настройка в PHPShop:

Если Вы установили демо-версию с тестовой базой товаров, сделайте резервную копию базы (База - Резервное копирование - +) и затем Очистку базы (База - SQL запрос к базе - Очистка базы).

6. В PHPShop перейдите в меню База - Импорт данных.

Настройки

Файл - выбираем файл на компьютере, или указываем URL поставщика;

Действие - создание;

CSV-разделитель - точка с запятой;

Разделитель для характеристик - Колонка;

Разделитель значений хар-к - в нашем примере это точка с запятой;

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

Загрузка изображений - загрузка фото на сервер автоматически.

Разделитель для изображений – пробел (т.к. в МойСклад выбрана переменная фото с пробелом) или оставить Автоматический;

Кодировка текста - выбираем UTF-8.

Ключ обновления - т.к. мы загружаем с нуля, ключ нам не нужен.

Проверка уникальности – опция нам не нужна.

7. В закладке Сопоставление полей, выберите соответствие колонок Прайс-листа полям PHPShop:

8. В закладке Сохраненные настройки придумайте название Импорту:

Сохраненную настройку можно использовать с модулем Задачи для автоматизации загрузки по расписанию или актуализации остатков:

9. После заполнения всех полей, нажмите Выполнить. Зайдите в раздел Товары и проверьте корректность импорта. При необходимости, вернитесь в меню База - Импорт данных, выберите сохраненную настройку и внесите нужные корректировки.

Превью товаров

Превью товаров создаются автоматически при загрузке, если опция включена. Можно выполнить команду вручную, если превью нет у товаров. Зайдите в меню База - SQL запрос к базе и вставьте строку, нажмите Выполнить.

update phpshop_products set pic_small=pic_big

Для загрузки прайс-листов по URL-ссылке в настройках php.ini на хостинге должна быть разрешена директива allow_url_fopen

Первичный экспорт из PHPShop в МойСклад

Рассмотрим вариант, когда у вас новый аккаунт в МойСклад и есть наполнение в PHPShop. Требуется перенести товары из магазина в МойСклад.

Через CSV

  1. В меню магазина База - Экспорт данных выберите нужные поля для загрузки, нажмите Выполнить.

  2. В МойСклад нажмите Импорт из Ексель, загрузите полученный файл, и проставьте соответствие полей. Нажмите Выполнить.

  1. После импорта, вы увидите результат:

  1. Для дальнейшей корректной синхронизации товаров через наш модуль, нужно получить код UUID товаров, который назначается в МойСклад и привязать его к товарам в PHPShop.

  • В системе МойCклад выгрузите полученный каталог – нажмите кнопку Экспорт в Exсel, откройте полученный файл в Excel и пересохраните в CSV:

  • В PHPShop включите модуль МойСклад в меню Модули.

  • В PHPShop в меню База - Импорт данных выберите полученный csv файл, выключите загрузку изображений, действие обновление. На вкладке Сопоставление полей укажите, в какой колонке МойСклад Id, в какой Артикул или id. Нажмите Выполнить.

После успешной загрузки появится надпись:

Проверим привязку товара – зайдем в любой товар и в закладке Модули увидим уникальный код из МойСклад:

После заполнения базы и проставления UUID, переходите к настройке синхронизации заказов и остатков.

Через YML

  1. В МойСклад откройте меню Настройки - Интернет-магазины.

  2. Добавьте новый Магазин, и в открывшемся меню выберите Импорт товаров из YML.

3. В магазине PHPShop включите модуль Яндекс.Маркет, меню Модули - Управление модулями - Яндекс.Маркет. При экспорте выгружаются характеристики и подтипы товаров, если включен модуль Яндекс.Маркет, выбрана опция Выгружать характеристики и в самих характеристиках во вкладке Модули стоит Вкл. выгрузку в YML.

4. В Мойсклад в поле адрес магазина укажите свой адрес YML файла: http://shopname.ru/yml/?getall. Логин и пароль от админпанели магазина. Нажмите Сохранить.

4. После обработки выгрузки, товары появятся в разделе Товары - Товары и услуги с ценами и изображениями.

  1. Для дальнейшей корректной синхронизации товаров через наш модуль, нужно получить код UUID товаров, который назначается в МойСклад и привязать его к товарам в PHPShop.

  • В системе МойCклад выгрузите полученный каталог – нажмите кнопку Экспорт в Exсel, откройте полученный файл в Excel и пересохраните в CSV:

  • В PHPShop включите модуль МойСклад в меню Модули.

  • В PHPShop в меню База - Импорт данных выберите полученный csv файл, выключите загрузку изображений, действие обновление. На вкладке Сопоставление полей укажите, в какой колонке МойСклад Id, в какой Артикул или id. Нажмите Выполнить.

После успешной загрузки появится надпись:

Проверим привязку товара – зайдем в любой товар и в закладке Модули увидим уникальный код из МойСклад:

После заполнения базы и проставления UUID, переходите к настройке синхронизации заказов и остатков.

Ручная первичная выгрузка остатков из магазина в МойСклад

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

После загрузки товаров, нужно сделать Оприходование товаров на склад в меню Товары - Оприходования - Создать, либо загрузить остатки из PHPShop (см. далее).

Если нужно загрузить остатки в МойСклад, через Экспорт данных выгрузите поля: наименование, id, количество на складах. Полученный файл загрузите в Мойсклад.

id ⇢ Код Склад ⇢ Остаток

🔄 Синхронизация остатков и заказов:

Выберите свой вариант:

Через обмен по CommerceML

Можно настроить обмен данными по стандарту CommerceML, используемый типовым обменом с 1С. Для обмена по CML устанавливать модуль МойСклад не требуется, остатки выгружаются автоматически.

Также через CML создаются новые товары в магазине (если использовать наш модуль, товары будут только обновляться).

Через наш модуль МойСклад

Модуль позволяет отслеживать изменения в товарах и передавать их на сайт - Наименование номенклатуры, Краткое описание, Цены, Склад, Вес, Артикул. Модуль не создает новые товары (используйте CML).

Предполагается, что вы уже наполнили и синхронизировали базу товаров:

Первичный импорт из МойСклад в магазин через CSV

Первичный экспорт из PHPShop в МойСклад

На стороне МойСклад:

  1. Зарегистрируйтесь на сайте МойСклад и загрузите товары (см. выше).

  2. В меню Настройка - Справочники - Юр.лица заведите организацию.

  3. В меню Настройка - Справочники - Склады заведите склады, если у вас несколько складов. Если склад один, по умолчанию уже есть Основной склад, ничего не нужно заводить.

  4. Создайте токен в меню Настройки - Обмен данными - Токены.

В настройках модуля в PHPShop:

  1. Активируйте модуль в административной панели магазина Модули → Управление модулями → CRM - МойСклад - Включить. Перейдите в пункт меню Модули → МойСклад.

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

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

  4. Поставьте Вкл. Отслеживать изменения в МойСклад - это активирует систему вебхуков на стороне МойСклад и позволяет получать актуальную информацию по ценам и остаткам сразу после их изменения в МойСклад.

Отслеживание изменений с помощью вебхуков

Данные по вебхукам идут из МойСклад → в PHPShop. В обратную сторону только заказы, т.к. по сути интеграции, склад ведется на его стороне.

При активации режима Отслеживать изменения в МоемСкладе в настройках модуля, параметры обновления данных в отслеживании настраивается в меню Настройки - Документооборот. Поддерживается изменение следующих данных :

  1. Наименование номенклатуры.

  2. Краткое описание.

  3. Цены.

  4. Склад.

  5. Вес.

  6. Артикул.

Тестируем выгрузку остатков из МойСклад

1. Сделаем тестовый заказ в магазине

3. Увидим заказ в магазине и сразу в МойСклад:

4. Проведем заказ в МойСклад, спишем товар со склада (создадим документы Входящий платеж, Отгрузку, чтобы товар списался со склада):

5. Увидим актуализацию склада в магазине.🎉

Дополнительные сведения

При синхронизации товаров используется поле МойСклад Id moysklad_product_id [UUID в Мойсклад] для связи товаров в 2-х системах.

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

При передаче товара из заказа учитывается наличие подтипа (размер, цвет и т.д.) .

При импорте товаров из МойСклад в поле Путь каталога записывается полный материализованный путь каталога формата Каталог/Подкаталог/Подкаталог. Он используется для автоматической проверки и создания новых каталогов в интернет-магазине по имени и вложенности.

Работа старого модуля синхронизации PHPShop с МойСклад невозможна по причине отключения XML API разработчиками МойСклад в 2018 году.

Модуль доступен для версии PHPShop 6.0.8+ и только для редакции PHPShop Pro.

Синхронизация через CSV

Для актуализации остатков в интернет-магазине PHPShop из МойСклад, достаточно выгружать поля ID , Доступный остаток и Цена(Цена продажи).

Со стороны импорта в PHPShop нужно выбрать действие Обновление и сопоставить поля:

  1. Колонка - МойСклад Id

  2. Колонка - Склад

  3. Колонка - Цена 1

Можно настроить это действие по расписанию.

Last updated