Компонент modImporter. Настройка импорта на сайт.
Месяц назад мы обсуждали какие компоненты кому нужны. Тогда самым популярным запросом оказался импорт/экспорт минишоп-эксель. Задача эта конечно же не простая, тем не менее я готов сегодня представить первую версию компонента modImporter.
Компонент еще очень далек от конечной версии (хочется добавить в процессе гораздо больше ридеров (CSX, XLS (XLSX уже есть), просто файлы (для импорта статических сайтов) и прочее)). Но сам по себе общий механизм все-таки уже готов и пара кейсов у меня уже имеется. А всем прикупившим пакет я гарантирую свою личную помощь в первичной настройке.
Итак, что же на сегодня имеется? Изначально я ставил перед собой несколько задач, которые обязательно должны были быть выполнены:
1. Пошаговость. Чтобы не было ограничения по таймлимиту 30 секунд, а можно было импортировать этапами.
2. Экономность в потреблении оперативки. Здесь от части зависело от решения первой задачи, но и правильная подборка ридеров тоже имеет значение (к примеру, поточный XMLReader вместо обычного SimpleXML).
3. Расширяемость. Абсолютно универсальными такие вещи маловероятно сделать, потому важно было предусмотреть такой вариант расширяемости, чтобы и базовый функционал не приходилось трогать (чтобы можно было обновления пакета накатывать), и при этом индивидуальный функционал без особых сложностей допиливать.
В целом, как мне кажется, все эти задачи у меня получилось решить.
Для решения первой задачи я взял и допилил Ajax-импортер, о котором рассказывал уже давно. Во многом интерфейс modImporter остался таким же. Но JS я чуть-чуть допилил и полностью переписал основной процессор, который и обеспечивает пошаговость и базовый функционал.
Ну а теперь лучше сразу рассмотреть готовые кейсы с примерами кода, чтобы примерно оценить что это такое и для чего он годится.
Кейс 1. Выгрузка из YML.
Вот здесь обсуждение, картинки, пример полученного кода.
Там просто была базовая обкатка, потому я не писал само создание и обновление товаров в магазине, но как я и писал, это уже меньшая задача, так как когда данные получены, нет проблем проверить наличие товаров в базе и выполнить процессоры resource/create || resource/update.
Кейс 2. Выгрузка из Excel/XLSX.
А вот это уже более полный вариант, созданием/обновлением категорий, товаров, остатков и цен (да-да, здесь не только товары-цены один-к-одному, но и остатки-цены (по несколько на товар)).
На выходе получился вот такой код: gist.github.com/Fi1osof/3ded17bd770303500f3a
Читайте сами код и решайте на сколько там все сложно или не сложно.
В итоге у клиента результат импорта выглядит вот так:
С компонентом импорт ему был записан за 1 день, вот только вот этот файл. Все остальное необходимое идет с самим modImporter.
Плюшки.
А теперь о том, какие, на мой взгляд, интересные плюшки имеются в компоненте.
1. Удаление/создание таблиц для временных данных в момент инициализации импорта.
На мой взгляд нет смысла пытаться продумать универсальную и конечную структуру таблицы под временные данные. Гораздо логичней на лету создавать таблицу с такой структурой, которая максимально вам подойдет (это особенно актуально при импорте десятков тысяч товаров и более). От того, на сколько правильно выбраны типы данных в колонках таблиц, будет зависеть существенно скорость выполнения импорта. А кому-то может и несколько таблиц понадобится. Это все можно. А еще можно легко изменить структуру базовой таблицы способом, предложенным Василием, так что можно добавить в таблицу свои поля (или изменить имеющиеся), не залезая в код компонента.
2. Изменение типов данных некоторых колонок через системные настройки.
Да, я ведь тоже всяко экспериментирую с xPDO, и вот тут сидел такой и думал, а какую же длину задать ключевым колонкам в таблице и какую длину? Ну как тут угадать? У кого-то ключ будет 32 символа MD5-строка, у кого-то 64, у кого-то 255, а у кого-то вообще int(10). И вот тут я подумал, а почему не вынести это в настройки? Вынес. А в map-файл прописал их. Вот что получилось:
3. Дополнительное поле modResource::externalKey.
Так как курс на универсальность (нет четкой направленности на минишоп, шопмодикс или что-то другое), решил сразу застолбить колонку под артикул в самом документе. На это есть ряд причин против идеи создавать дополнительную таблицу для артикулов или ТВ-поля использовать. Но без проблем под эти цели использовать родные актикул-поля выбранных eCommerce-модулей.
По цене: сейчас выставил за 1490 рублей, но скорее всего цена будет поднята уже через недельку, при чем значительно, так что закупайтесь сразу, если есть хоть какой-то интерес. Всем прикупившим гарантируется информационная поддержка и помощь в первичной настройке, особенно на новых типах источников (включая МойСклад и т.п.).
UPD: Есть еще серьезный момент в данном компоненте: большое внимание было уделено средствам отладки. Компонент пошаговый, но каждый шаг можно вызвать в консоли и видеть результат.
Есть еще режим debug с записью обращений в MODX-логи (это чтобы дебажить запросы со сторонних сервисов).
Купить в modstore.pro
Компонент еще очень далек от конечной версии (хочется добавить в процессе гораздо больше ридеров (CSX, XLS (XLSX уже есть), просто файлы (для импорта статических сайтов) и прочее)). Но сам по себе общий механизм все-таки уже готов и пара кейсов у меня уже имеется. А всем прикупившим пакет я гарантирую свою личную помощь в первичной настройке.
Итак, что же на сегодня имеется? Изначально я ставил перед собой несколько задач, которые обязательно должны были быть выполнены:
1. Пошаговость. Чтобы не было ограничения по таймлимиту 30 секунд, а можно было импортировать этапами.
2. Экономность в потреблении оперативки. Здесь от части зависело от решения первой задачи, но и правильная подборка ридеров тоже имеет значение (к примеру, поточный XMLReader вместо обычного SimpleXML).
3. Расширяемость. Абсолютно универсальными такие вещи маловероятно сделать, потому важно было предусмотреть такой вариант расширяемости, чтобы и базовый функционал не приходилось трогать (чтобы можно было обновления пакета накатывать), и при этом индивидуальный функционал без особых сложностей допиливать.
В целом, как мне кажется, все эти задачи у меня получилось решить.
Для решения первой задачи я взял и допилил Ajax-импортер, о котором рассказывал уже давно. Во многом интерфейс modImporter остался таким же. Но JS я чуть-чуть допилил и полностью переписал основной процессор, который и обеспечивает пошаговость и базовый функционал.
Ну а теперь лучше сразу рассмотреть готовые кейсы с примерами кода, чтобы примерно оценить что это такое и для чего он годится.
Кейс 1. Выгрузка из YML.
Вот здесь обсуждение, картинки, пример полученного кода.
Там просто была базовая обкатка, потому я не писал само создание и обновление товаров в магазине, но как я и писал, это уже меньшая задача, так как когда данные получены, нет проблем проверить наличие товаров в базе и выполнить процессоры resource/create || resource/update.
Кейс 2. Выгрузка из Excel/XLSX.
А вот это уже более полный вариант, созданием/обновлением категорий, товаров, остатков и цен (да-да, здесь не только товары-цены один-к-одному, но и остатки-цены (по несколько на товар)).
На выходе получился вот такой код: gist.github.com/Fi1osof/3ded17bd770303500f3a
Читайте сами код и решайте на сколько там все сложно или не сложно.
В итоге у клиента результат импорта выглядит вот так:
С компонентом импорт ему был записан за 1 день, вот только вот этот файл. Все остальное необходимое идет с самим modImporter.
Плюшки.
А теперь о том, какие, на мой взгляд, интересные плюшки имеются в компоненте.
1. Удаление/создание таблиц для временных данных в момент инициализации импорта.
На мой взгляд нет смысла пытаться продумать универсальную и конечную структуру таблицы под временные данные. Гораздо логичней на лету создавать таблицу с такой структурой, которая максимально вам подойдет (это особенно актуально при импорте десятков тысяч товаров и более). От того, на сколько правильно выбраны типы данных в колонках таблиц, будет зависеть существенно скорость выполнения импорта. А кому-то может и несколько таблиц понадобится. Это все можно. А еще можно легко изменить структуру базовой таблицы способом, предложенным Василием, так что можно добавить в таблицу свои поля (или изменить имеющиеся), не залезая в код компонента.
2. Изменение типов данных некоторых колонок через системные настройки.
Да, я ведь тоже всяко экспериментирую с xPDO, и вот тут сидел такой и думал, а какую же длину задать ключевым колонкам в таблице и какую длину? Ну как тут угадать? У кого-то ключ будет 32 символа MD5-строка, у кого-то 64, у кого-то 255, а у кого-то вообще int(10). И вот тут я подумал, а почему не вынести это в настройки? Вынес. А в map-файл прописал их. Вот что получилось:
<?php
$externalKeyLength = $this->getOption("modimporter.external_key_length", null, 32);
$externalKeyType = $this->getOption("modimporter.external_key_type", null, 'varchar');
$externalKeyPhpType = $externalKeyType == "int" ? "integer" : "string";
$xpdo_meta_map['modImporterObject']= array (
'package' => 'modImporter',
'version' => '1.1',
'table' => 'modimporter_objects',
'extends' => 'xPDOSimpleObject',
'fields' =>
array (
'tmp_object_type' => NULL,
'tmp_external_key' => '',
'tmp_resource_id' => NULL,
'tmp_parent' => NULL,
............
),
'fieldMeta' =>
array (
'tmp_object_type' =>
array (
'dbtype' => 'varchar',
'precision' => '50',
'phptype' => 'string',
'null' => false,
),
'tmp_external_key' =>
array (
'dbtype' => $externalKeyType,
'precision' => $externalKeyLength,
'phptype' => $externalKeyPhpType,
'null' => true,
'index' => 'index',
),
'tmp_resource_id' =>
array (
'dbtype' => 'int',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => true,
'default' => null,
'index' => 'index',
),
'tmp_parent' =>
array (
'dbtype' => $externalKeyType,
'precision' => $externalKeyLength,
'phptype' => $externalKeyPhpType,
'null' => false,
'index' => 'index',
),...........
),
);
И работает :) То есть изменил системные настройки, запустил импортер, таблицы дропнулась и создалась новая с нужным типом и длиной полей. Основные варианты: varchar|int.3. Дополнительное поле modResource::externalKey.
Так как курс на универсальность (нет четкой направленности на минишоп, шопмодикс или что-то другое), решил сразу застолбить колонку под артикул в самом документе. На это есть ряд причин против идеи создавать дополнительную таблицу для артикулов или ТВ-поля использовать. Но без проблем под эти цели использовать родные актикул-поля выбранных eCommerce-модулей.
По цене: сейчас выставил за 1490 рублей, но скорее всего цена будет поднята уже через недельку, при чем значительно, так что закупайтесь сразу, если есть хоть какой-то интерес. Всем прикупившим гарантируется информационная поддержка и помощь в первичной настройке, особенно на новых типах источников (включая МойСклад и т.п.).
UPD: Есть еще серьезный момент в данном компоненте: большое внимание было уделено средствам отладки. Компонент пошаговый, но каждый шаг можно вызвать в консоли и видеть результат.
Есть еще режим debug с записью обращений в MODX-логи (это чтобы дебажить запросы со сторонних сервисов).
Купить в modstore.pro
Комментарии: 82
Коля, поправь картинки) Ты их как то криво прилепил)
Поправил.
Это какой-то странный баг в Tickets, который я в своё время так и не отловил.
Это какой-то странный баг в Tickets, который я в своё время так и не отловил.
Интересно. Ждем в магазине.
Судя по modstore спрос на импорт/экспорт есть. Вопрос в том сможет ли данное решение предложить что то новое. А так конечно же желаю успехов.
Будьте уверены — сможет. С учетом того, на сколько хорошо я знаю MODX, здесь гарантируется максимальная техническая поддержка. К примеру, на сегодня в каталоге наибольшее количество продаж у компонента mSync/mSklad. Читаем кто что здесь пишет по нему. И вот пример. «Обращался в тех. поддержку, мне не смогли помочь».
Я уверен, у нас любые подобные вопросы будут решаемы.
Я уверен, у нас любые подобные вопросы будут решаемы.
Николай!!! Где же вы раньше были, как говорится)) Кстати, mSync до сих пор через пень колоду работает, 1С постоянно обновляют и все ломается, клиент все мозги выел. Мне немного обидно, что заплатил за бесполезный компонент без поддержки, может обсудить с админами и вами скидку для покупателей msklad, а то и вообще хочется деньги за него вернуть, пришлось сидеть и все доделывать((
Здравствуйте, Святослав.
Я не нашел свежих тикетов в «Тех. поддержке» mSync. Пришлите, пожалуйста, ссылку на вопрос, где автор отказался вам помочь — если это так — примем меры.
Я не нашел свежих тикетов в «Тех. поддержке» mSync. Пришлите, пожалуйста, ссылку на вопрос, где автор отказался вам помочь — если это так — примем меры.
а свежих и нет, я даже не писал… Я установил msklad, все настроил, с версией 1С что была у клиента не заработало, написал в поддержку, мне ответили, давно еще было, но помочь не смогли, тогда самому пришлось допиливать…
Писал тикет «Пишет „нет авторизации на сайте“» — мне сказали «присылать тз на почту» и «Я с 1С не знаком.», то есть банальные отписки…
и 7 сентября я написал «Здравствуйте!
Не могу настроить правильную синхронизацию с сервером, картинки не загружаются. Можете помочь?
С уважением, Святослав!
Святослав, 07 сентября 2015, 21:33 » — ответа не поступило, можете проверить modstore.pro/cabinet/tickets/616/1872/…
Думаю, если опросить всех покупателей msklad, то 9 из 10 скажут, что им пришлось все дорабатывать, а при обновлении 1с, снова переделывать и т.п.
Спасибо за реакцию!
Писал тикет «Пишет „нет авторизации на сайте“» — мне сказали «присылать тз на почту» и «Я с 1С не знаком.», то есть банальные отписки…
и 7 сентября я написал «Здравствуйте!
Не могу настроить правильную синхронизацию с сервером, картинки не загружаются. Можете помочь?
С уважением, Святослав!
Святослав, 07 сентября 2015, 21:33 » — ответа не поступило, можете проверить modstore.pro/cabinet/tickets/616/1872/…
Думаю, если опросить всех покупателей msklad, то 9 из 10 скажут, что им пришлось все дорабатывать, а при обновлении 1с, снова переделывать и т.п.
Спасибо за реакцию!
Святослав, пришлите, пожалуйста, ссылки на тикеты в тех. поддержке или хотя бы название вашего аккаунта, чтобы можно было подробно разобраться в ситуации.
Думаю, если опросить всех покупателей msklad, то 9 из 10 скажут, что им пришлось все дорабатывать, а при обновлении 1с, снова переделывать и т.п.Нет, это не так. Большинство вопросов в тех. поддержке по данному компоненту разрешаются.
svyatoslavteterin@gmail.com, я прислал ссылки на тикеты, выше видно(отредактировал)… и вот еще один modstore.pro/cabinet/tickets/616/1864/
Виталий, справедливости ради, я не обновлял компонент после сентября, так как я его допиливал… А в логах смотрю, поправлены ошибки были, может попробовать обновиться просто тогда… То есть проблема была на тот момент, не факт, что сейчас эти проблемы есть.
Святослав, спасибо.
Я пока просто попрошу автора повнимательней смотреть за вашими тикетами.
Я пока просто попрошу автора повнимательней смотреть за вашими тикетами.
Виталий, справедливости ради, я не обновлял компонент после сентября, так как я его допиливал… А в логах смотрю, поправлены ошибки были, может попробовать обновиться просто тогда… То есть проблема была на тот момент, не факт, что сейчас эти проблемы есть.В любом случае — если обнаружите проблемы и будут разногласия с авторами компонентов — пишите, пожалуйста — будем разбираться!
Я в защиту msync скажу, что когда 1С обновилась и имена файлов перестали совпадать, мне ответили быстро, по моей просьбе тут же переписали класс cataloghandler и компонент обновили в репозитории через пару дней.
Мне вообще не понятно зачем было жестко завязываться на какие-то определенные имена файлов? Разные версии 1С могут присылать разные имена файлов, при чем кто-то один файл, а кто-то и несколько. 1С-ка сама передает название файла и это название и должен использовать компонент.
Я как обычно, что-то другое полезное пилил :)
Так или иначе, если у вас проект в связке 1С еще актуален, могу предложить помощь в переводе его на modImporter бесплатно. С вас только приобретение самого пакета. Для меня просто интерес на одном проекте увидеть разницу в сравнении.
Так или иначе, если у вас проект в связке 1С еще актуален, могу предложить помощь в переводе его на modImporter бесплатно. С вас только приобретение самого пакета. Для меня просто интерес на одном проекте увидеть разницу в сравнении.
крутое предложение! спасибо, вполне=)) Да, проект актуален, я его сейчас перерабатываю, тогда договоримся о времени.
Отписался
Купила этот компонент — в помощи оказали, послав куда подальше.
Предложили помощь за сумму в 2 раз большую, чем компонент.
Предложили помощь за сумму в 2 раз большую, чем компонент.
Напишите, какую помощь Вы запросили. Не всякая помощь может быть оказана бесплатно в рамках поддержки.
Дублирую ответ еще здесь.
Если вы купите тот же mSearch и сами не сможете его установить, будете искать бесплатную помощь?
Здравствуйте.И там вы писали просто «большую», а тут пишите про «в два раза больше». Это вы когда его покупали? Он уже как месяца два не стоит 990 рублей, а недели две как стоит 1990 (в марте до 2990 подорожает).
Везде писалось про то, что сам по себе компонент сложный. И здесь я писал, что бесплатные консультации заканчиваются.
Вы пришли с вопросом «я не знаю ни php, ни js, как мне его настроить?». Я вам и ответил, что вот вам список статей, пробуйте по ним, но шанс маленький, скорее всего понадобится наша помощь, цена вопроса 2000 рублей (если это вы писали от имени Александра). Сейчас компонент стоит 1990 рублей, и запрошенная сумма всего лишь на 10 рублей больше (если вы не по старой цене купили).
Я деньги еще не выводил, напишите в modstore со ссылкой на этот комментарий, пусть они вам вернут деньги, вообще не вопрос.
В описании компонента добавил информацию о платной настройке (руки не доходили написать).
Если вы купите тот же mSearch и сами не сможете его установить, будете искать бесплатную помощь?
в помощи оказали, послав куда подальше.Вы вот это называете послать куда подальше? joxi.ru/eAOqaVNf4ap9Qm
Василиса (или Александр), когда я посылаю, это видно четко. Я написал подробные статьи, а вам дал ссылки на них. И это вы называет вас послали? Еще раз: запросите в modstore денежки обратно и больше не отвлекайте, пожалуйста.
Послали куда подальше обучаться разным штукам. Ладно тебе, Николай, девушки создания эмоциональные. ;)
Девушка ли? Тут девушка, а пишет какой-то Александр. Не доверяю я аватаркам. Я ее в глаза не видел. Некоторые девушек на аву вешают, чтобы программисты больше внимания уделяли.
Ну может всегда хотел быть девушкой. :)
)))))
Я его тоже купил, пытался прикрутить к сайту, но в автоматическом режиме не получилось, так как 1с имеет более раннюю версию и 1сник не захотел попу поднять и поспособствовать.
Начали работать через импорт через csv, и тут 1сник не смог ничего сделать))
Так что купил и не знаю, что с ним делать))))
Николай, когда ожидается публикация продукта?
хочу с yml, наконец-то, что придумать.
Хожу около этого файла уже полтора года)))
Начали работать через импорт через csv, и тут 1сник не смог ничего сделать))
Так что купил и не знаю, что с ним делать))))
Николай, когда ожидается публикация продукта?
хочу с yml, наконец-то, что придумать.
Хожу около этого файла уже полтора года)))
Модерацию пакет прошел еще вчера, но пока не опубликован. Сказали публикация готовится. Скорее всего сегодня опубликуют. Вот ссылка modstore.pro/packages/import-and-export/modimporter (пока не рабочая, но как заработает, значит опубликовали :))
А вообще, на будущее: когда согласовываете проект на интеграцию, заручайтесь гарантией клиента о всесторонней помощи в выгрузке данных с его стороны его силами. В большинстве подобных случаев, если заказчик не обеспечивает этого, проект закрываются и деньги не возвращаются.
Полностью согласен, но было принято решение о смене 1сника)))
Это принесет больше пользы, так как есть толковые люди.
Это принесет больше пользы, так как есть толковые люди.
Купил. Пусть пока поживет на тестовом сайте ))
ОК. Возникнут вопросы, спрашивайте. Сегодня-завтра еще опубликую более подробный туториал по нему.
Установил на тестовый сайт на modhost.pro (MODX 2.4.2-pl)
При переходе в меню компонента Из CSV, ошибка:
Похожие ошибки при переходе в меню ZIp (.../import/zip/unzip.php ), XLSX (.../xlsx/index.php).
XML и 1C предлагают загрузить файл, но я планировал опробовать на CSV.
При переходе в меню компонента Из CSV, ошибка:
Could not find action file at: /home/s*****/www/core/components/modimporter/controllers/mgr/import/csv/index.php
Похожие ошибки при переходе в меню ZIp (.../import/zip/unzip.php ), XLSX (.../xlsx/index.php).
XML и 1C предлагают загрузить файл, но я планировал опробовать на CSV.
Сорри за долгий ответ, в разъездах сегодня был.
Нет, с установкой все ОК. Просто как я и писал в топике, пока выгрузка только из XLSX и XML. Те пункты меню пока пустышки. А контроллеры-заглушки я пока не сделал, чтобы эти ошибки торопили меня написать и эти контроллеры :) Очень скоро они появятся. Сегодня я не успеваю уже написать «быстрый старт», но завтра точно опубликую. Будет описан четкий сценарий добавления собственного импортера.
Нет, с установкой все ОК. Просто как я и писал в топике, пока выгрузка только из XLSX и XML. Те пункты меню пока пустышки. А контроллеры-заглушки я пока не сделал, чтобы эти ошибки торопили меня написать и эти контроллеры :) Очень скоро они появятся. Сегодня я не успеваю уже написать «быстрый старт», но завтра точно опубликую. Будет описан четкий сценарий добавления собственного импортера.
Ок. Подожду все опции, в т.ч. и CSV. И из 1с загружу что нибудь.
В магазине пакет отключили? Там опять 404-я.
В магазине пакет отключили? Там опять 404-я.
Да, пока отключили, ошибки же. Но я уже выложил 1.0.1 с контроллерами-заглушками, отписался, скоро активируют.
CSV на этой неделе выложу, у меня есть наработки. Вообще обновленный пакет будет интересные плюшки иметь, пока не буду раскрывать какие, но они очень полезные будут :) Сразу еще на 500 рэ подорожает))
CSV на этой неделе выложу, у меня есть наработки. Вообще обновленный пакет будет интересные плюшки иметь, пока не буду раскрывать какие, но они очень полезные будут :) Сразу еще на 500 рэ подорожает))
Кстати, поскольку компонент (я так думал) в первую очередь «менагерм» для облегчения жизни предназначен, то будет ли предусмотрено массовое удаление товаров и т.п.?
Т.е., скорее, вопрос в том, будет ли компонент удовлетворять потребности простых менеджеров сайта? Что бы настроить им его раз под какой то формат ввода ( обновления\удаления) и не переживать вплоть до какого то изменения их задач.
Т.е., скорее, вопрос в том, будет ли компонент удовлетворять потребности простых менеджеров сайта? Что бы настроить им его раз под какой то формат ввода ( обновления\удаления) и не переживать вплоть до какого то изменения их задач.
Выгрузки у всех разные… Невозможно сделать универсальное решение, либо придется изменять выгрузку, либо модифицировать код =)
Вообще потенциал у компонента гораздо шире, чем только импорт. В первую очередь, самая сильная его сторона — это именно пошаговость. А это можно использовать для любых повторяющихся или логически управляемых действий (хоть для обновления чего-то, хоть для парсинга, хоть для чего). Со временем, думаю, не мало кейсов я опубликую. Но с целью того, чтобы основная направленность пакета была более понятна целевой аудитории, я его назвал именно так.
Не корректно установилось?
Вроде просто нет директорий csv и т.п.
Переустановил. Все так же.
Вроде просто нет директорий csv и т.п.
mgr/import/csv/index.php
Переустановил. Все так же.
Все, опубликована новая версия пакета с заглушками.
Ок. Успехов. Жду новых функций.
Спасибо.
Как только что будет, обязательно отпишусь.
Как только что будет, обязательно отпишусь.
Кстати, если раздел документации в docs.modx.pro/ для компонента появится, было бы замечательно.
Замечательно, что многие расширения, платные или бесплатные активно развиваются. Но бывает, что в топике, анонсирующем выход расширения, по комментариям вылавливать актуальные изменения не всегда удобно.
Понятно, все время занимает, которого всем и всегда не хватает))
Замечательно, что многие расширения, платные или бесплатные активно развиваются. Но бывает, что в топике, анонсирующем выход расширения, по комментариям вылавливать актуальные изменения не всегда удобно.
Понятно, все время занимает, которого всем и всегда не хватает))
Спасибо за напоминание, учту.
Можно ли будет настроить импорт по крону?
Да, безусловно. Для этого предусмотрен публичный коннектор. Только здесь надо сразу смотреть потребуется пошаговость в выполнении или нет. В интеграции с той же 1С, сама 1ска шлет столько запросов на сервер, сколько нужно (то есть она как и наша консоль бесконечна в количестве запросов, пока сервер не вернет окончательный ответ или ошибку). Если по крону надо будет выполнять мультишаговый импорт, то сейчас сразу так гарантировать не могу, ибо не пробовал, но скорее всего возможно задействовать механизм curl+redirect. То есть со стороны сервера отправляем редирект-заголовки, и курл дальше за ними идет bash curl -L. Для этого просто достаточно будет в переопределяющем процессоре добавить отправку заголовков.
del
Николай, а возможно ли импорт настроить на пакет Tickets? То есть какие-то поля у нас будут TV, и class_key определённый ставить? Если написать по этому поводу в поддержку после приобретения пакета, можно ждать помощи именно в настройке импорта под Tickets?
Выше я писал, что потенциал у пакета гораздо шире, чем заявляется в его названии. Да, для этих целей его тоже можно использовать. Он годится под все, что рассчитывается на какие-то планируемые шаги. Условно планирование его деятельности можно продумывать так «Взять информацию оттуда-то, подсчитать то-то, обновить то-то, разослать уведомления, сбросить кеш, пережать все картинки и т.д. и т.п.». Все это надо разбивать на логические шаги. В процессоре помимо привычных $this->succes() и $this->failure() появляются $this->nextStep() и $this->process(). Первые два метода окончательные — на них выполнение консоли завершается. nextStep() принимает в качестве первого параметра имя следующего метода, к которому будет выполнен переход (по сути это повторный запрос на сервер, только уже к другому шагу), а $this->process() — это так же повторный запрос, только без изменения параметров, то есть на тот же шаг (к примеру, шаг — обновление товаров, но обновляем мы по сто штук, то есть надо выполнить одно и то же действие несколько раз, пока не будут все товары обновлены). И да, я готов вам помочь в интеграции с Tickets.
Ага, круто. Интересует ещё возможность интегрировать его с файлами-картинками тикетов…
Execel — импорт/экспорт? Или только в одностороннем порядке, в версии доступной в сторе выгрузка с 1С заглушкой?
В этом топике приводится пример как выгружать из XLSX. Более подробный мануал о системе в общем в новом топике.
По 1С и остальному. не все сразу. Все, что бесплатно (не считая стоимости пакета), все это будет появляться постепенно по мере того, как будет у кого-то разрабатываться. Если кому-то срочно нужен какой-то определенный функционал или тип выгрузки, то уже будет выполняться за деньги. Из этого массовый функционал будет попадать в компонент.
Так как у нас довольно много запросов на подобные услуги, то функционал будет довольно активно прокачиваться.
P.S. Интеграцию с 1С мы уже не раз выполняли, так что 1С довольно скоро появится довольно полная версия.
По 1С и остальному. не все сразу. Все, что бесплатно (не считая стоимости пакета), все это будет появляться постепенно по мере того, как будет у кого-то разрабатываться. Если кому-то срочно нужен какой-то определенный функционал или тип выгрузки, то уже будет выполняться за деньги. Из этого массовый функционал будет попадать в компонент.
Так как у нас довольно много запросов на подобные услуги, то функционал будет довольно активно прокачиваться.
P.S. Интеграцию с 1С мы уже не раз выполняли, так что 1С довольно скоро появится довольно полная версия.
Я наверное подожду под 1С :) в mSync у меня были проблемы с синхронизаций заказов (УТ р.11) и до сих пор пока не решились. Хотелось бы увидеть полноценную работу с 1С и плавный переход с mSync.
Подождите :) К тому времени модуль «немного подорожает». И бесплатные консультации закончатся.
Нужно реализовать импорт, практически как в кейсе 2. Почитал инструкции, купил модуль, поставил, полез сюда дальше читать инструкции…
Так вот — в таком виде этот модуль просто нельзя продавать. Нужно или включить в цену стоимость допила от разработчика, или выкладывать ясные и проверенные инструкции для различных кейсов. Лучше всего было бы дать возможность поиграться с модулем на модхосте.
Господа, если прочитаете этот комментарий, сто раз подумайте, сумеете ли вы самостоятельно настроить этот модуль.
P.S. Было интересно, кто «минусит» комментарии Николая, теперь ясно — это такие же разочарованные покупатели модуля как и я.
Так вот — в таком виде этот модуль просто нельзя продавать. Нужно или включить в цену стоимость допила от разработчика, или выкладывать ясные и проверенные инструкции для различных кейсов. Лучше всего было бы дать возможность поиграться с модулем на модхосте.
Господа, если прочитаете этот комментарий, сто раз подумайте, сумеете ли вы самостоятельно настроить этот модуль.
P.S. Было интересно, кто «минусит» комментарии Николая, теперь ясно — это такие же разочарованные покупатели модуля как и я.
1. Вы внимательно читали описание к модулю? Там четко написано Если у вас будет не достаточно знаний в php, чтобы настроить это под себя, мы окажем платную помощь в настройке (от 3000 рублей за один источник) joxi.ru/YmEVeE0uZ3RZR2
Включить эту сумму в стоимость не могу. Во-первых, кому-то знаний хватит чтобы настроить, а я с него должен брать денег как с незнающего. Не справедливо. Во-вторых, у кого-то очень хитрая настройка может потребоваться, там и 10 000 за настройку может не хватить.
2. Прежде чем покупать, вы могли написать запрос с описанием ваших задач и мы бы ответили подходит вам компонент в таком виде или нет (или с какими оговорками).
3.
3.2 Вы не первый с такого рода отзывом, и могли прочитать этот отзыв и ничего не покупать (если покупали), а пройти дальше. Чем вам не предупреждение.
4. Вы вообще хоть какой-то запрос в саппорт нам делали? На сколько я понимаю, совершенно нет.
Включить эту сумму в стоимость не могу. Во-первых, кому-то знаний хватит чтобы настроить, а я с него должен брать денег как с незнающего. Не справедливо. Во-вторых, у кого-то очень хитрая настройка может потребоваться, там и 10 000 за настройку может не хватить.
2. Прежде чем покупать, вы могли написать запрос с описанием ваших задач и мы бы ответили подходит вам компонент в таком виде или нет (или с какими оговорками).
3.
Господа, если прочитаете этот комментарий, сто раз подумайте, сумеете ли вы самостоятельно настроить этот модуль.3.1 Скорее всего правильней было бы писать отзывом именно к компоненту на модсторе? Там бы виднее было бы. Или может вы и не покупали его вовсе?
3.2 Вы не первый с такого рода отзывом, и могли прочитать этот отзыв и ничего не покупать (если покупали), а пройти дальше. Чем вам не предупреждение.
4. Вы вообще хоть какой-то запрос в саппорт нам делали? На сколько я понимаю, совершенно нет.
1. Всё читал, знал на что иду, но предупреждение для потенциальных покупателей от такого же покупателя считаю вполне уместным.
2. Для моей задачи этот модуль то что нужно — если верить первому скриншоту.
3. Покупал, чесслово. Причем на модуль бюджет выделялся с учетом платной настройки, но куплен модуль был в марте, со всеми вытекающими :)
4. До саппорта ещё не добрался, пока пытаюсь сам разобраться — желание есть. Если разберусь — похвалю вас и обязательно сделаю инструкцию по своей конкретной задаче и поделюсь с другими пользователями, чего и вам желаю.
2. Для моей задачи этот модуль то что нужно — если верить первому скриншоту.
3. Покупал, чесслово. Причем на модуль бюджет выделялся с учетом платной настройки, но куплен модуль был в марте, со всеми вытекающими :)
4. До саппорта ещё не добрался, пока пытаюсь сам разобраться — желание есть. Если разберусь — похвалю вас и обязательно сделаю инструкцию по своей конкретной задаче и поделюсь с другими пользователями, чего и вам желаю.
Еще никуда не обращался, толком не разбирался, но на всякий случай всех предупрежу :)
Ну ОК, антиреклама тоже реклама)) Ждем продолжения.
Ну ОК, антиреклама тоже реклама)) Ждем продолжения.
Николай, подскажи пожалуйста, если в XLS файле в первом поле будут сохранены изображения, их при импорте можно как-то выгрузить и сохранить в определённую папку? А сами изображения добавить в TV или же в галерею miniShop2 у каждого товара?
У меня пока такого кейса не было. Можете прислать подробные требования к импорту (включая предполагаемое количество позиций), я сориентирую по стоимости доработки и настройки импорта под твой проект. Скорее всего в 3-5 тысяч уложимся. В целом, думаю не проблема вообще, но лучше в XLSX файл готовить, так как он распаковывается как архив и там все картинки будут лежать в спецпапке отдельными файлами, что сильно упрощает процесс и требования к хостингу (на большой XLS файл потребуется много пхп-памяти на открытие файла).
))) НЕДОКОМПОНЕНТ
Подскажите, при экспорте в xslx на выходе имеем пустой файл, с заполненной первой строкой (id, pagetitle и т.д.)
Версия 1.5.0 вышла в статусе альфа, судя по всему не создаются таблицы новые и колонки в режиме обновления, только установки. Вернусь из отпуска, поправлю. Или можно в консоли выполнить код:
И сразу информация на счет поддержки минишопа:
По умолчанию этот экспорт пока не выгружает и не обновляет допполя минишопа (тот хранит данные товаров в отдельных таблицах). Вам надо расширить экспорт-импорт процессоры export/pair/xlsx и import/pair/xlsx и прописать в них эти допполя, или подождите когда вернусь из отпуска и выпущу обновленную версию, она будет поддерживать минишоп из коробки (числу к 5-10-ому выпущу).
$manager = $modx->getManager();
$objects = array('modImporterExport', 'modImporterImport', 'modImporterObject');
foreach ($objects as $o) {
$manager->createObjectContainer($o);
}
$manager->addField("modResource", "importId");
$manager->addIndex("modResource", "importId");
$manager->addField("modResource", "externalKey");
$manager->addIndex("modResource", "externalKey");
Я так понимаю, вы справились с этим методом сноса и установки пакета с нуля?И сразу информация на счет поддержки минишопа:
По умолчанию этот экспорт пока не выгружает и не обновляет допполя минишопа (тот хранит данные товаров в отдельных таблицах). Вам надо расширить экспорт-импорт процессоры export/pair/xlsx и import/pair/xlsx и прописать в них эти допполя, или подождите когда вернусь из отпуска и выпущу обновленную версию, она будет поддерживать минишоп из коробки (числу к 5-10-ому выпущу).
Я так понимаю, вы справились с этим методом сноса и установки пакета с нуля?Да, справился путем сноса пакета и установки заново))
Выкатил свежую версию 1.6.0-beta. Пофиксил косяк с установкой и добавил поддержку минишопа (стандартные поля price, old_price, weight, article) выгружаются и обновляются из коробки.
Вообще надо будет добавить возможность в настройках перечислять выгружаемые колонки, но пока не нарыли функцию получения наименования колонки в Экселе по порядковому номеру, но или нароем все-таки, или сами напишем. Пока же наглядный кейс как не сложно добавить в выгрузку дополнительные колонки, включая дополнительные опции товаров:
Добавляем кастомный процессор экспорта: joxi.ru/brRDO4pfQXDZN2
Там переопределяем метод и добавляем несколько строчек:
joxi.ru/KAgK9pXIglDBPA
joxi.ru/LmGVQx0uR6GX0r
Вообще надо будет добавить возможность в настройках перечислять выгружаемые колонки, но пока не нарыли функцию получения наименования колонки в Экселе по порядковому номеру, но или нароем все-таки, или сами напишем. Пока же наглядный кейс как не сложно добавить в выгрузку дополнительные колонки, включая дополнительные опции товаров:
Добавляем кастомный процессор экспорта: joxi.ru/brRDO4pfQXDZN2
Там переопределяем метод и добавляем несколько строчек:
joxi.ru/KAgK9pXIglDBPA
joxi.ru/LmGVQx0uR6GX0r
Отлично, спасибо! Попробую, отпишусь!
Не за что!
все работает отлично из коробки. Но на вкладке товаров один из столбиков не назван. Судя по всему это alias.
prntscr.com/cgpae0
Подскажите, где поправить эту штуку?))
prntscr.com/cgpae0
Подскажите, где поправить эту штуку?))
Вообще я это фиксил, но видимо не закоммитилось… Сейчас выгружу новую версию.
Выложил 1.6.1
Спасибо, все хорошо теперь!
Не за что!
Используется ли в этом компоненте стандартный процессор resource/update или написан свой процессор?
Интересует исправлен ли в modImporter этот баг:
github.com/modxcms/revolution/issues/5965
Интересует исправлен ли в modImporter этот баг:
github.com/modxcms/revolution/issues/5965
В большинстве случаев используется родной процессор resource/update. Хотя на парочке проектов, где каталог очень большой был, для снижения нагрузки использовалось прямое сохранение объекта и вызов плагинов через $modx->invokeEvent().
Интересует исправлен ли в modImporter этот баг:Вообще мне эта особенность данного процессора тоже никогда не нравилась, но вряд ли это будут фиксить, как видно тикет просто закрыт. Я в импортере на апдейт обычно в процессор отправляю только ресурс, без TVs=>1 и самих ТВшек, а потом после обновления процессором беру уже объект ресурса и на нем выполняю апдейт нужных ТВшек через $resource->setTVValue(). Вообще там очень много тонкостей, где-то вполне может понадобиться индивидуальный подход.
github.com/modxcms/revolution/issues/5965
Много коментов по поиску не нашел свое вопроса, только то что вопрос не решон и остался пробелом )))
Меня попросили сюда писать вопросы, пишу ))
Стоит задача для связки с платформой 1С с конфигурацией ШтрихМ, что требуется:
1) Обмне с остатками по товарам, что бы с 1С выливались остатки товаров.
2) Синхронизация с заказами, когда сделан заказ, что бы при импорте с сайта в 1С она понимала что заказали и сформировала счет у себя для дальнейшей работы и желательно обратно что бы на сайте не отмечать что оплатили и не требует внимания.
Сам сайт не имеет модулей платежных, он просто собирает заказы а вся работа происходит по безналичному расчету. И напоминаю что конфигурация ШрихМ
Вроде получилось коротко расписать :) и попробую щас предложением написать, если что не так написал:
Нам нужно что бы сайт брал данные по количеству товаров с 1С и отдовал данные по заказам, после обработки 1С готова будет выплевывать оплаченые и неоплаченые заказми. Модуль должен понимать что если он уже оплачен больше к нему не возращаться и не брать в обмен с собой.
Думаю ответы на этот комент решит очень много вопрос от заказчиков :)))
Спасбио за понимаю и благодарю за помощь.
Ответ не получил было сказано что пока не до этого и много работы нужно будет проделать. Подскажите кто с таким сталкивался, если поставить вместо ШрихМ что то типо склад, УТ, бух получиться ето все запустить?
Я думаю этот вопрос очень актуален, так как это нужно большей части магазинов.
Меня попросили сюда писать вопросы, пишу ))
Стоит задача для связки с платформой 1С с конфигурацией ШтрихМ, что требуется:
1) Обмне с остатками по товарам, что бы с 1С выливались остатки товаров.
2) Синхронизация с заказами, когда сделан заказ, что бы при импорте с сайта в 1С она понимала что заказали и сформировала счет у себя для дальнейшей работы и желательно обратно что бы на сайте не отмечать что оплатили и не требует внимания.
Сам сайт не имеет модулей платежных, он просто собирает заказы а вся работа происходит по безналичному расчету. И напоминаю что конфигурация ШрихМ
Вроде получилось коротко расписать :) и попробую щас предложением написать, если что не так написал:
Нам нужно что бы сайт брал данные по количеству товаров с 1С и отдовал данные по заказам, после обработки 1С готова будет выплевывать оплаченые и неоплаченые заказми. Модуль должен понимать что если он уже оплачен больше к нему не возращаться и не брать в обмен с собой.
Думаю ответы на этот комент решит очень много вопрос от заказчиков :)))
Спасбио за понимаю и благодарю за помощь.
Ответ не получил было сказано что пока не до этого и много работы нужно будет проделать. Подскажите кто с таким сталкивался, если поставить вместо ШрихМ что то типо склад, УТ, бух получиться ето все запустить?
Я думаю этот вопрос очень актуален, так как это нужно большей части магазинов.
Я не просил сюда писать вопросы. Я сказал, что вопросы писать надо сюда. Но там же и написал
В ближайшие несколько дней вопросы можно не задавать, я занят.
Я на будущее )) вдруг что то всплывет.
ПРошу прощения если отвлек.
ПРошу прощения если отвлек.
Друзья, а где взять то это дополнение? В репозиториях и в modstore нет.
Снятие модулей MODX-Клуба с публикации в modstore
На нашем сайте Клуба пакеты не сняты, но не советую приобретать, так как нет гарантированной поддержки. То есть если вы купили и не разобрались, мы не сможем оказать поддержку, но и деньги не будут возвращены, так как это цифровой продукт.
А что делать, мне нужен импорт из xls в модификации (msOptionPrice2), по сути всего два поля: артикул и цена.
msImportExport
Читайте раздел — Импорт для msOptionsPrice2.
Интеграция:
msImportExport интегрирован с дополнениями:
msOptionsPrice2
Читайте раздел — Импорт для msOptionsPrice2.
Если у вас установлен компонент msOptionsPrice2 версии 2.2.37 или выше
то у вас появится возможность импорта модификаций товара.
Получается только msImportExport, к нему бы манул добрый.
Спасибо за ответы
Спасибо за ответы
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.