Здравствуйте!
Решил поделиться своим опытом касаемо импорта товаров в HikaShop из .csv файла, а именно о часто встречающейся проблеме такой как выгрузка структуры древа категорий. В этом плане у HikaShop есть небольшие проблемы, т.к. стандартный формат пути категорий cms не воспринимает. Под стандартным форматом я подразумеваю путь в виде: категория/подкатегория/под-подкатегория/и т.д.
HikaShop воспринимает при импорте только 2 параметра: categories и parent_category.
Первый параметр отображает в каких категориях должен находиться данный товар. (Один товар, можно положить в несколько категорий),
второй параметр отображает родительскую категорию для первого параметра.
Такая система импорта ограничивает нас в создании структуры до вида категория/подкатегория, т.е. позволяет создавать категории только второго подуровня но не глубже. В простых случаях это представляет не так много проблем, но вот когда нужно например импортировать более 6000 товаров с древом категорий достигающим 5-7 подуровней в гулбину (как это было в моем случае), согласитесь вручную создавать категории и подкатегории перед импортом - огромная трата времени, сил и невров.
Ну и что бы решить эту проблему я написал простенькую программку на C#. Для ее работы требуется только
.NET Framework 4.5
и больше ничего.
Что конкретно она делает? Из выбранного вами .csv файла определяет столбец categories формата: "категория/подкатегория/под-подкатегория" и на основе него строит .csv файл для импорта категорий в Hikashop.
Чтобы лучше понять покажу алгоритм работы на примере:
Например есть простенький исходный файл из двух товаров (да ШАПКА ОБЯЗАТЕЛЬНА):
product_name;price_value;price_currency_id;categories
Bread;1.20;EUR;catergory1/category1-2/category1-2-3
Coffe;2;USD;catergory2/category2-2/category2-2-3
Программа берет его и строит на его основе новый csv файл:
product_name;price_value;price_currency_id;parent_category;categories
deleting_product0;0;RUB;product category;catergory1
deleting_product1;0;RUB;catergory1;category1-2
deleting_product2;0;RUB;category1-2;category1-2-3
deleting_product3;0;RUB;product category;catergory2
deleting_product4;0;RUB;catergory2;category2-2
deleting_product5;0;RUB;category2-2;category2-2-3
После чего сформированный файл можно импортировать в HikaShop, а затем удалить временные товары с именем "deleting_product"
Ну а после этого импортировать исходный файл с небольшим изменением.
После того как вы импортировали древо категорий, необходимо в исходном файле в столбце категорий, оставить только подкатегорию самого нижнего уровня пути. Т.е. изменить формат: категория/подкатегория/.../под-подкатегория на, просто, под-подкатегория. Это можно просто сделать в той же MS Excel.
В программе есть небольшая инструкция, как ей пользоваться. Если вы все сделаете по ней, то проблем возникнуть недолжно.
Надеюсь мой опыт и эта небольшая программка будет кому-то полезна.
Спасибо за уделенное время.