🔹

МойСклад

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

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

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

Настройка

По имени файла (рекомендуется)
По логину и паролю
  1. 1.
    В панели управления магазина в меню Настройки - Документооборот - CommerceML выберите:
Артикул - что будет выводится на сайте в поле артикул: Внешний код или Артикул.
Авторизация - Имя файла.
Имя файла - придумайте имя и введите в поле, например secretcml (ссылка будет иметь вид https://имя_сайта/1cManager/secretcml.php):
Настройки CML для связи с МойСклад
2. Для авторизации CML по имени файла у администратора должны быть права доступа по API и сформирован токен.
В меню 👤 - Профиль в закладке Права в нижней строке Доступ по API проверьте, что стоят права у Администратора и есть Токен. Если нет прав, проставьте галки и на вкладке Основное нажмите Сгенерировать новый пароль, поставьте Сменить логин и пароль, чтобы создался Токен.
Получение токена
Теперь, после повторного входа, вы увидите Токен:
3. На стороне Мойсклад зайдите в меню Настройки - Интернет-магазины, выберите CommerceML.
Связь по CML есть не на всех тарифах МойСклад. В этом случае, выберите загрузку данных через csv и последующую синхронизацию через наш модуль МойСклад.
В открывшемся окне введите:
Наименование магазина - ссылку на сайт
Адрес магазина - ссылку, которую берем из настроек PHPShop Имя файла https://имя_сайта/1cManager/secretcml.php.
Логин и пароль подставляются автоматически. Токен, который сгенерировали, подцепится автоматически по ссылке.
Настройки CML на стороне МойСклад
Нажмите Проверить соединение - должна появиться надпись Соединение прошло успешно.
Такой тип связи используется на выделенных серверах и на нашем сервисе аренды. Если у вас такой сервер, обратитесь в техподдержку или чат за помощью в настройке синхронизации.

Склады

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

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

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

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

После выгрузки товаров, перейдите на витрину магазина и сделайте заказ.
В МойСклад в меню Настройки - Онлайн-торговля выберите настроенную синхронизацию, и нажмите Загрузить сейчас:
Проведите заказ, или зарезервируйте товар:
Нажмите Остатки - выгрузить сейчас, затем обновите витрину магазина, товар должен списаться:
Смена статуса
⛔️Через CML не происходит смена статуса заказа в магазине, т.к. CML отдает информацию только, что "забрал" заказ.
Если для вас критична смена статуса, выберите синхронизацию с 1С через наши модули:
✅ Когда в 1С поступает заказ, то в магазине меняется статус на Отправлен в учетную систему. Далее, когда заказ сформирован, 1с формирует счет и загружает в магазин, статус заказа меняется на Доступны бухгалтерские документы.

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

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

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

  1. 1.
    Для переноса товаров из МойСклад в PHPShop, перейдите в Настройки - Приложения и установите приложение Выгрузка цен и остатков.
  2. 2.
    После установки, перейдите в меню Приложения - Выгрузка цен и остатков.
  3. 3.
    В настройке экспорта выберите формат .CSV, разделитесь - ;.
  4. 4.
    Выберите нужные для выгрузки данные. Обязательным является поле ID.
  5. 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. 1.
    В меню магазина База - Экспорт данных выберите нужные поля для загрузки, нажмите Выполнить.
  2. 2.
    В МойСклад нажмите Импорт из Ексель, загрузите полученный файл, и проставьте соответствие полей. Нажмите Выполнить.
  1. 3.
    После импорта, вы увидите результат:
  1. 4.
    Для дальнейшей корректной синхронизации товаров через наш модуль, нужно получить код UUID товаров, который назначается в МойСклад и привязать его к товарам в PHPShop.
  • В системе МойCклад выгрузите полученный каталог – нажмите кнопку Экспорт в Exсel, откройте полученный файл в Excel и пересохраните в CSV:
  • В PHPShop включите модуль МойСклад в меню Модули.
  • В PHPShop в меню База - Импорт данных выберите полученный csv файл, выключите загрузку изображений, действие обновление. На вкладке Сопоставление полей укажите, в какой колонке МойСклад Id, в какой Артикул или id. Нажмите Выполнить.
После успешной загрузки появится надпись:
Проверим привязку товара – зайдем в любой товар и в закладке Модули увидим уникальный код из МойСклад:
После заполнения базы и проставления UUID, переходите к настройке синхронизации заказов и остатков.

Через YML

  1. 1.
    В МойСклад откройте меню Настройки - Интернет-магазины.
  2. 2.
    Добавьте новый Магазин, и в открывшемся меню выберите Импорт товаров из YML.
3. В магазине PHPShop включите модуль Яндекс.Маркет, меню Модули - Управление модулями - Яндекс.Маркет. При экспорте выгружаются характеристики и подтипы товаров, если включен модуль Яндекс.Маркет, выбрана опция Выгружать характеристики и в самих характеристиках во вкладке Модули стоит Вкл. выгрузку в YML.
4. В Мойсклад в поле адрес магазина укажите свой адрес YML файла: http://shopname.ru/yml/?getall. Логин и пароль от админпанели магазина. Нажмите Сохранить.
4. После обработки выгрузки, товары появятся в разделе Товары - Товары и услуги с ценами и изображениями.
  1. 5.
    Для дальнейшей корректной синхронизации товаров через наш модуль, нужно получить код UUID товаров, который назначается в МойСклад и привязать его к товарам в PHPShop.
  • В системе МойCклад выгрузите полученный каталог – нажмите кнопку Экспорт в Exсel, откройте полученный файл в Excel и пересохраните в CSV:
  • В PHPShop включите модуль МойСклад в меню Модули.
  • В PHPShop в меню База - Импорт данных выберите полученный csv файл, выключите загрузку изображений, действие обновление. На вкладке Сопоставление полей укажите, в какой колонке МойСклад Id, в какой Артикул или id. Нажмите Выполнить.
Импорт данных, вкладка Настройки
После успешной загрузки появится надпись:
Проверим привязку товара – зайдем в любой товар и в закладке Модули увидим уникальный код из МойСклад:
После заполнения базы и проставления UUID, переходите к настройке синхронизации заказов и остатков.

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

Складские остатки не выгружаются из магазина в МойСклад, т.к. склад ведется на стороне учетной системы. Остатки загружаются в магазин из МойСклад, а не наоборот.
После загрузки товаров, нужно сделать Оприходование товаров на склад в меню Товары - Оприходования - Создать, либо загрузить остатки из PHPShop (см. далее).
Если нужно загрузить остатки в МойСклад, через Экспорт данных выгрузите поля: наименование, id, количество на складах. Полученный файл загрузите в Мойсклад.
id ⇢ Код Склад ⇢ Остаток

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

Выберите свой вариант:
Через обмен по CommerceML
Можно настроить обмен данными по стандарту CommerceML, используемый типовым обменом с 1С. Для обмена по CML устанавливать модуль МойСклад не требуется, остатки выгружаются автоматически.
Также через CML создаются новые товары в магазине (если использовать наш модуль, товары будут только обновляться).
Через наш модуль МойСклад
Модуль позволяет отслеживать изменения в товарах и передавать их на сайт - Наименование номенклатуры, Краткое описание, Цены, Склад, Вес, Артикул. Модуль не создает новые товары (используйте CML).
Предполагается, что вы уже наполнили и синхронизировали базу товаров:
На стороне МойСклад:
  1. 1.
    Зарегистрируйтесь на сайте МойСклад и загрузите товары (см. выше).
  2. 2.
    В меню Настройка - Справочники - Юр.лица заведите организацию.
  3. 3.
    В меню Настройка - Справочники - Склады заведите склады, если у вас несколько складов. Если склад один, по умолчанию уже есть Основной склад, ничего не нужно заводить.
  4. 4.
    Создайте токен в меню Настройки - Обмен данными - Токены.
В настройках модуля в PHPShop:
  1. 1.
    Активируйте модуль в административной панели магазина Модули → Управление модулями → CRM - МойСклад - Включить. Перейдите в пункт меню Модули → МойСклад.
  2. 2.
    Введите в поле Токен - токен от вашего аккаунта в системе МойСклад. Нажмите Сохранить, чтобы подгрузилась информация из МойСклад.
  3. 3.
    Далее выберите организацию, валюту в заказе, тип цен. Выберите статус заказа для передачи данных. Нажмите Сохранить еще раз, чтобы подгруженная информация сохранилась в модуле.
  4. 4.
    Поставьте Вкл. Отслеживать изменения в МойСклад - это активирует систему вебхуков на стороне МойСклад и позволяет получать актуальную информацию по ценам и остаткам сразу после их изменения в МойСклад.

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

Данные по вебхукам идут из МойСклад → в PHPShop. В обратную сторону только заказы, т.к. по сути интеграции, склад ведется на его стороне.
При активации режима Отслеживать изменения в МоемСкладе в настройках модуля, параметры обновления данных в отслеживании настраивается в меню Настройки - Документооборот. Поддерживается изменение следующих данных :
  1. 1.
    Наименование номенклатуры.
  2. 2.
    Краткое описание.
  3. 3.
    Цены.
  4. 4.
    Склад.
  5. 5.
    Вес.
  6. 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. 1.
    Колонка - МойСклад Id
  2. 2.
    Колонка - Склад
  3. 3.
    Колонка - Цена 1
Можно настроить это действие по расписанию.
Last modified 1mo ago