Git Product home page Git Product logo

moysklad-catalog's Introduction

moyskad-catalog

Генератор ICML для каталога из МойСклад

Поддержка прекращена!

Использование

  1. Выполните include файла MoySkladICMLParser.php

  2. Сконфигурируйте парсер

$parser = new MoySkladICMLParser(
    'login@moysklad',
    'password',
    'shopname',
    $options
);
  1. Вызовите метод generateICML
$parser->generateICML();

Смотрите файл example.php в качестве простого примера использования парсера.

Подробная пошаговая инструкция

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

Как всё настроить:

  1. Разместите у себя на сервере в какой-нибудь директории два файла MoySkladICMLParser.php и example.php.

  2. Файл MoySkladICMLParser.php ни в коем случае не изменять и не переименовывать!

  3. Далее требуется внести необходимые настройки в файл example.php (файл можно переименовать, расширение .php оставить):

a) вместо login@moysklad ввести логин для входа в систему МойСклад (логин сотрудника, для входа в систему управления складом);

b) вместо password ввести пароль;

c) shopname заменить на название Вашего магазина (или любое другое название);

d) в строке 'file' => 'test.xml', заменить test.xml на любое другое название (например, catalog.xml, расширение файла оставить то же), либо оставить без изменения.

e) При необходимости включения в генерацию архивных товаров и модификаций в строке 'archivedGoods' => false необходимо заменить значение false на true.

  1. После настройки добавить задачу в cron: * */4 * * * php /путь_к_файлу_скрипта/example.php (данная запись подразумевает автоматический запуск генерации файла каталога каждый день раз в 4 часа).

  2. Запустить генерацию вручную (командой php /путь_к_файлу_скрипта/example.php), чтобы в папке со скриптом появился файл каталога в формате xml.

  3. Добавить ссылку на файл в настройках магазина в retailCRM.

Дополнительные опции

Параметр $options - массив со следующими ключами:

  • file - Имя файла с итоговым icml без пути (по умолчанию: shopname.catalog.xml)

  • directory - Директория для итогового icml файла (по умолчанию: текущая директория)

  • archivedGoods - опция для включения в генерацию архивных товаров и торговых предложений (принимает значения true или false)

  • ignoreCategories - массив с ключами:

    • ids - Массив c id групп товаров, которые должны быть проигнорированы
    • externalCode - Массив c внешними кодами групп товаров, которые должны быть проигнорированы
  • ignoreNoCategoryOffers - Если true товары, не принадлежащие ни к одной категории, будут проигнорированы

  • imageDownload - массив, содержащий информацию для загрузки изображений

    • site - адрес сайта откуда будут отдаваться изображения в retailCRM
    • pathToImage - путь от корня сайта до дирректории где будут храниться изображения
  • tagWeight - передача веса в теге weight вместо param. Единица измерения - килограмм. Формат: положительное число с точностью 0.001 (или 0.000001, в зависимости от настройки RetailCRM "Точность веса": граммы или миллиграммы соответственно), разделитель целой и дробной части - точка. Указывается в свойствах товара сервиса Мой Склад.

  • loadPurchasePrice - установка данной опции со значением true включает в генерацию закупочные цены. По умолчанию закупочные цены для товаров не генерируются.

  • service - установка данного ключа со значение true добавляет в генерацию каталога услуги, созданные в сервисе Мой Склад.

  • customFields - массив для указания для генерации габаритов (dimensions) и дополнительных параметров товаров. Включает в себя следующие опции:

    • dimensions - массив с одним или тремя значениями, содержащий id пользовательских полей товара в МС. При указании 3 полей должен соблюдаться порядок 'Длина,Ширина,Высота'. Пример заполнения:

      'dimensions' => [ '00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000' ]

      Если для генерации планируется использовать одно поле, то нужно использовать дополнительный параметр separate в котором вы должны указать какой разделитель используется в поле между значениями на стороне МС. Пример заполнения: 'separate' => '/', 'dimensions' => [ '00000000-0000-0000-0000-000000000000' ]

    • paramTag - массив со значениями,складывающимися из кода, который должен использоваться для генерации данного дополнительного параметра и id пользовательского поля товара. Заполняется с разделетелем "#" следующим образом:

      'paramTag'=> [ 'somecode1#00000000-0000-0000-0000-000000000000', 'somecode2#00000000-0000-0000-0000-000000000000' ]

Id пользовательских свойств товара можно получить, совершив GET-запрос к api МС по адресу https://online.moysklad.ru/api/remap/1.1/entity/product/metadata, используя для запроса ваш логин и пароль, используемый для генерации каталога.

Необходимые id будут указаны внутри индекса "attributes". Все доступные опции не обязательны для использования

Добавление изображения

Изображения сохраняются на сервер клиента!

Для того чтобы добавить в выгрузку изображение товара

В параметре $options необходимо заполнить ключ imageDownload массивом со следующими ключ => значениями:

  • site - указать адрес сайта в дирректориях которого располагается скрипт с указанием протокола (пример: http://test.ru или http://www.test.ru)
  • pathToImage - указать путь до дирректории сохранения изображений от корня сайта с корневой дирректорией сайта включительно (пример: site_root/path/to/directory) Если дирректория для сохранения изображений ещё не создана, то она будет создана при работе скрипта. Так же если в дирректории уже есть изображения с таким же названием, что и в сервисе Мой Склад, то данные изображения загружаться не будут, но к ней будет построена ссылка на изображение. Названия для изображений получаются из ответа сервиса Мой Склад (увидеть название изображения можно в карточке товара). Для торговых предложений изображение берется от товара, которому соответствует данное торговое предложение.

moysklad-catalog's People

Contributors

dmamontov avatar blackbjorn avatar gwinn avatar muxx avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.