31 авг. 2015 г., 3:11

Выгрузка товаров из 1С в Интернет-магазин на базе ShopModX через XML-файл

Добрый день!
Требуется сделать выгрузку данных по товарам из 1С в Интернет-магазин на базе ShopModx с помощью собственноручно написанного кода PHP. Постараюсь подробно расписать всю сложившуюся ситуацию.
Имеются следующие исходные данные:
1). Работающий магазин с автоматизацией на 1С версии 8.1 и прикрученным к нему модулем «Управление торговлей» версии 10.3. 2). Не устраивающий нас уровень продаж и желание их увеличить благодаря использованию Интернет-магазина. Учитывая, что не все товары из базы 1С должны быть доступны для заказа через WEB-сайт, публиковаться должны только те товары, которые имеют запись в дополнительном тэге пометку «ИМ» (сокращённо от «Интернет-магазин»). 3). Ещё нам не требуется отображение остатков на складе в реальном режиме времени, нас вполне устраивает выгрузка по ассортименту и наличию товаров 1 раз в день (пока решили так). 4). В целях безопасности и сохранения целостности данных недопустимо воздействие на 1С со стороны WEB-сервера. Допускается только выгрузка базы 1С средствами самой 1С.
Изучив описание к Вашему компонента ShopModx1C, я так понял — он как-то напрямую работает с 1С используя родной 1С-овский механизм, что не совсем подходит для нас. . Поэтому, мы пошли другим путём: В 1С имеется функция экспорта данных для WEB-сайта в XML-файл, при создании которого есть возможность дополнительно задавать условия выгрузки. В нашем случае, указав условие наличия значения «ИМ» для товаров, подлежащих выгрузке, получаем на выходе нужный нам файл XML.
Выгрузка настроена сейчас на 1 раз в день в 20:00. Количество экспортируемых полей для каждого товара — не более 10, в том числе уникальный идентификационный номер для каждого товара, присваемого нами внутри базы 1С. Создание XML-файла и запись его на WEB-сервер по времени сейчас занимает максимум 1-2 минуты.
На PHP написан код, который регулярно в 20:05 вызывается и считывает содержимое необходимых полей из XML-файла. .
ВОПРОС: Сейчас проблема встала в корректной работе с товарами, а именно, требуется: 1). Создание/удаление/изменение/коррекция подгруппы товаров 2). Создание/удаление/изменение/коррекция товаров Хотелось бы это делать с помощью php-кода, запускаемого на WEB-сервере. Есть правильно распознанные данные о товарах с помощью PHP. Подскажите, какие у нас есть варианты?
Изучив описание к Вашему компонента ShopModx1C, я так понял — он как-то напрямую работает с 1С используя родной 1С-овский механизм, что не совсем подходит для нас.
Вы неправильно поняли. Выгружает 1С на сайт, а не сайт работает с 1С. И если вы формируете выгрузку на стороне 1С со своими условиями, в результате чего формируется XML, тот же самый XML и на сайт выгружался бы.
Подскажите, какие у нас есть варианты?
Либо писать свой код с нуля, как вы уже начали делать. Либо допиливать под себя ShopModx1C. Либо еще что-то придумать. У меня нет никакого другого готового рецепта для вас.
Модуль ShopModx1C позволяет импортировать XML-файл в ShopModx?
Нашёл shopModx1C через выпадающее в админке меню «Приложения», пункт «Установщик». Затем, кнопка «Загрузить дополнения», выбрал в дереве каталогов «Extras\E-Commerce», shopModx1C. . Админка предлагает загрузить shopModx1C бета версию 1.0.0 от 20 апреля 2014 г. Это актуальная сборка?
Да, актуальная. В главное меню добавил Центр загрузок, там всегда можно посмотреть актуальные пакеты. А лучше просто добавляйте наш репозиторий и все (в Центре загрузок показано как это делать).
Ок, спасибо, сейчас буду пробовать тогда его. И ещё отдельно хочется сказать спасибо вам за мгновенные в большинстве случаев ответы! :) PS: Если есть какой-то мануал, хелп или хоть какое-то описание по подключению ShopModx1C — ткните ссылкой плиз
Сглазил видимо… долго нет ответа…
Сорри, не видел вашего коммента. Он у вас затесался как раз среди кучи комментов после оновления сайта Клуба. Особого мануала нет, только что здесь описано modxclub.ru/blog/vehicles/353.html
Добрый день! Вопрос помануалу, указанному тут: modxclub.ru/blog/vehicles/353.html Залез в «Настройки системы», поставил фильтр shopmodx1c, указал номера шаблонов для категории, товара, image.
Не совсем понятно что делать с «shopmodx1c.article_tv». Надо переименовать «exchange_rate(10)» или нужно создать дополнительное поле «1cArticle(10)»?
Нет, shopmodx1c.article_tv — это ТВшка, в которой будет храниться артикулы категорий и товаров из самого 1С. Следует ее создать (стандартную текстовую) и сделать доступной для шаблонов категорий и товаров, а в настройках прописать ее id.
Доброго дня! а каким образом можно импортировать XML-файл (или где прописать путь к этому файлу) и запустить shopmodx1c на синхронизацию? Настройки прописала. файлик положила на место core/components/shopmodx1c/import_files/import.xml. Пытаюсь запустить процессор в консоли
<?php $action = '1c/web/exchange/catalog/import'; $ns = 'shopmodx1c'; if(!$response = $modx->runProcessor($action, array( 'processors_path' => $ns ? $modx->getObject('modNamespace', $ns)->getCorePath().'processors/' : null, ))){ print "Не удалось выполнить процессор"; return; }
но пишет ошибку
[2016-04-04 17:35:46] (ERROR @ /manager/components/console/connectors/console.php) Processor /var/www/u0083109/data/www/dishes.nlgplus.com/core/model/modx/processors/1c/web/exchange/catalog/import.php does not exist; Array ( ) Не удалось выполнить процессор
что не так делаю? Заранее спасибо
Наталья, shopmodx1C уже не актуальный пакет. Советую посмотреть modImporter. Я пока не написал отдельной статьи здесь, но информация есть вот здесь: modstore.pro/packages/import-and-export/modimporter Можно купить подписку здесь за 5000 рублей, плюс к этому будет еще наших два-три часа на персональную помощь, то есть этого бюджета может хватить на настройку вам импорта, если у вас там ничего нестандартного нет.

Добавить комментарий