🐿Быстрый старт
⚙️Установка и обновление
Выгрузка товаров
МойСклад
Для начального Импорта/экспорта товарной базы из МойСклад служит меню База - Импорт/Экспорт данных. Для синхронизации остатков, заказов, включите модуль МойСклад или настройте связь по CommerceML

Обмен по CommerceML

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

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

Через 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 запрос к базе и вставьте строку, нажмите Выполнить.
1
update phpshop_products set pic_small=pic_big
Copied!
Для загрузки прайс-листов по URL-ссылке в настройках php.ini на хостинге должна быть разрешена директива allow_url_fopen

Экспорт из PHPShop в МойСклад

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

Остатки по складам

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

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

Обмен по CommerceML

Можно настроить обмен данными по стандарту CommerceML, используемый типовым обменом с 1С. Для обмена по 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. Проведем заказ в МойСклад, спишем товар со склада:
Проведем заказ, спишется товар в выбранном складе
4. Увидим актуализацию склада в магазине.

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

При синхронизации товаров используется поле МойСклад Id (moysklad_product_id) для связи товаров в 2-х системах.
Во время передачи нового заказа в МойСклад, производится проверка на заполненность этого поля у товара в магазине, и, при его отсутствии, создается новый товар в МойСклад, с ценой продажи, но без привязки к каталогу.
При передаче товара из заказа учитывается наличие подтипа (размер, цвет и т.д.) .
При импорте товаров из МойСклад в поле Путь каталога записывается полный материализованный путь каталога формата Каталог/Подкаталог/Подкаталог. Он используется для автоматической проверки и создания новых каталогов в интернет-магазине по имени и вложенности.
Модуль доступен для версии PHPShop 6.0.8+ и только для редакции PHPShop Pro.
Работа старого модуля синхронизации PHPShop с МойСклад невозможна по причине отключения XML API разработчиками МойСклад в 2018 году.

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

Для актуализации остатков в интернет-магазине PHPShop из МойСклад, достаточно выгружать поля ID , Доступный остаток и Цена(Цена продажи).
Со стороны импорта в PHPShop нужно выбрать действие Обновление и сопоставить поля:
  1. 1.
    Колонка - МойСклад Id
  2. 2.
    Колонка - Склад
  3. 3.
    Колонка - Цена 1
Работа старого модуля синхронизации PHPShop с МойСклад не возможна по причине отключения XML API разработчиками МойСклад в 2018 году.
Модуль доступен для версии PHPShop 6.0.8+ и только для редакции PHPShop Pro.