Иипорт товаров в Virtuemart 3

1 нед. 3 дн. назад #8620 от Михаил
Приветствую всех!
Столкнулся с проблемой импорта товаров в Virtuemart 3
пытаюсь импортировать товар с раздающего API в формате XML, CSV (прилагаю пример xml) по ссылке
использую CSVI Pro 7.1.0 (может импортировать XML, CSV хоть из файла, хоть по ссылке и т.п.)
А вот сама сложность: Структура файла поставщика построена таким образом что товар имеет одинаковые ID, имя из чего Virtuemart 3 строит алиес (при импорте вызывает ошибку SLUG (не оригинальный алиас)), но товар имеет разные размер доп поля (1,5 спальный, 2 спальный, Евро) в остальном он идентичен.
1. Пытался импортировать как разные товары yj chfpysvb - получил ошибку об не уникальности SlUG (альеса)
2. Пытался импортировать как один товар с тремя свойствами доп. полей, не корректно поля импортируются, что то у меня с шаблоном csvi не получается их импортировать, он просит разделить значения и св-ва, цену полей (атрибут корзины) полей знаком "~", а как его импортировать в шаблон полученный от поставщика!? Там есть в CSVI св-ва и плагины, но что то не смог разобраться как доработать и обработать именно эти поля! Может кто то сталкивался?
к посту прилагаю краткий кусок на котором тестирую XML (один товар, но с разными св-ми)
Люди добрые помогите! Уже мозг взрывается!!!:blink:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<item>
        <id>56505</id>
        <name>КПБ 100-22</name>
        <article>100-22</article>
        <par_cat_id>Постельное белье</par_cat_id>
        <cat_id>КПБ Сатин с вышивкой (арт. 100)</cat_id>
        <brand>Вальтери</brand>
        <color_count>Цветное</color_count>
        <pict_style>Цветы</pict_style>
        <textile>Сатин</textile>
        <filler></filler>
        <duvet>150x215-2шт</duvet>
        <pillowcase>4шт-50х70 (2шт), 70х70 (2шт)</pillowcase>
        <sheet>230x250</sheet>
        <param_value>2 спальный</param_value>
        <param_name>размер постельного белья</param_name>
        <price>4602</price>
        <count_goods>0</count_goods>
        <img_name>kpb-100-22.jpg</img_name>
    </item>
    <item>
        <id>56505</id>
        <name>КПБ 100-22</name>
        <article>100-22</article>
        <par_cat_id>Постельное белье</par_cat_id>
        <cat_id>КПБ Сатин с вышивкой (арт. 100)</cat_id>
        <brand>Вальтери</brand>
        <color_count>Цветное</color_count>
        <pict_style>Цветы</pict_style>
        <textile>Сатин</textile>
        <filler></filler>
        <duvet>150x215-2шт</duvet>
        <pillowcase>4шт-50х70 (2шт), 70х70 (2шт)</pillowcase>
        <sheet>230x250</sheet>
        <param_value>Евро</param_value>
        <param_name>размер постельного белья</param_name>
        <price>4695</price>
        <count_goods>0</count_goods>
        <img_name>kpb-100-22.jpg</img_name>
    </item>
    <item>
        <id>56505</id>
        <name>КПБ 100-22</name>
        <article>100-22</article>
        <par_cat_id>Постельное белье</par_cat_id>
        <cat_id>КПБ Сатин с вышивкой (арт. 100)</cat_id>
        <brand>Вальтери</brand>
        <color_count>Цветное</color_count>
        <pict_style>Цветы</pict_style>
        <textile>Сатин</textile>
        <filler></filler>
        <duvet>150x215-2шт</duvet>
        <pillowcase>4шт-50х70 (2шт), 70х70 (2шт)</pillowcase>
        <sheet>230x250</sheet>
        <param_value>Семейный</param_value>
        <param_name>размер постельного белья</param_name>
        <price>5708</price>
        <count_goods>0</count_goods>
        <img_name>kpb-100-22.jpg</img_name>
    </item>
</response>

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

1 нед. 3 дн. назад #8621 от Wedal
Михаил, вам нужно учитывать на сайте остатки по каждому из товаров (по каждому комплекту)?

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

1 нед. 3 дн. назад #8622 от Михаил
Желательно, но уже рассматриваю все варианты!

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

1 нед. 3 дн. назад #8623 от Михаил
А вот еще интересно, а можно ли как то сделать один основной а второй и последующие дочерними, что в карточке выбираем, и в то же время и остатки учитываем по каждой модификации!?
Уже голова кругом!:silly:

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

1 нед. 3 дн. назад #8624 от Wedal
Михаил,

Общий алиас можно использовать только в случае, если товар один и обладает дополнительными характеристиками, являющимися атрибутами корзины. Но в этом случае вас ждет довольно-таки сложный учет остатков. Импортировать товары через CSVI вряд ли удастся.

Другие варианты: разные товары или дочерние товары - в любом случае потребуют от вас уникальных алиасов.

CSVI требует некоторого строгого формата представления данных для импорта. В теории, вы можете подогнать ваш файл к требуемому формату, но это придется в будущем делать каждый раз вручную.

Решение здесь, мне видится только одно - написать свой скрипт импорта. На самом деле, это не так сложно, как кажется на первый взгляд. Такой скрипт можно уместить в одном файле. Вы можете сделать так:
1) Выбрать формат, с которым будете работать в магазине (разные товары, один товар с доп. характеристиками, дочерние товары)
2) Создать через админку несколько тестовых товаров в магазине в выбранном формате
3) Экспортировать их через CSVI
4) Удалить их с сайта
5) Импортировать их через CSVI обратно
6) Посмотреть лог импорта. На сколько я помню, в нем показываются все SQL-запросы, которые выполняются в процессе импорта.
7) Скопировать себе все запросы, разобраться с ними и написать свой скрипт парсинга XML-файла поставщика и импорта данных в базу. XML-файл в Joomla легко парсится с помощью "JFactory::getXML()".

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

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

1 нед. 3 дн. назад #8625 от Михаил
ок, спасибо, думаю второй вариант более симпатичен, попробую его, если что отпишусь)

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

3 дн. 10 ч. назад #8626 от Михаил
Если кому интересно то я справился силами CSVI
Получилось 2-мя шаблонами
1. Создаем шаблон импорта родителей
2. Создаем шаблон дочерних товаров с привязкой к родителю и полями custom_field, custom_value, custom_param
Все импортировалось как надо без сучка и задоринки)
Остатки учитываются, редактируется последующим обновлением через XML по артикулу

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.


Вверх