Кодировка при экспорте в joomshopping, плюс добавление полей
После экспорта товаров в joomshopping, файл CSV вместо русских букв содержал что-то своё... Решилось не сложно.
Так же обнаружилось, что не все поля участвуют в экспорте.
Кодировка
Может это случилось только в моём конкретном случае, но всё-таки...
В файле: administrator\components\com_jshopping\importexport\simpleimport\simpleimport.php при перечислении полей, которые попадут в экспортный файл убрал "utf8_decode".
Т.е. Было так:
foreach($products as $prod){ $row = array(); $row[] = $prod->product_id; $row[] = $prod->product_ean; $row[] = $prod->product_quantity; $row[] = $prod->product_date_added; $row[] = $prod->product_price; $row[] = $prod->tax; $row[] = utf8_decode($prod->cat_name); $row[] = utf8_decode($prod->name); $row[] = utf8_decode($prod->short_description); $row[] = utf8_decode($prod->description); $data[] = $row; }
Стало так:
foreach($products as $prod){ $row = array(); $row[] = $prod->product_id; $row[] = $prod->product_ean; $row[] = $prod->product_quantity; $row[] = $prod->product_date_added; $row[] = $prod->product_price; $row[] = $prod->tax; $row[] = $prod->cat_name; $row[] = $prod->name; $row[] = $prod->short_description; $row[] = $prod->description; $data[] = $row; }
Добавить поля
Так же на в родном варианте содержаться далеко не все поля товара, помог в этом вариант экспорта скачанный с сайта rtr24.ru.
Полный вариант я устанавливать не стал, ограничился заменой экспортируемых полей, мне хватило:
$query = "SELECT prod.product_id, prod.product_ean, prod.product_quantity, prod.product_date_added, prod.product_price, tax.tax_value as tax, prod.`".$lang->get('name')."` as name, prod.`".$lang->get('short_description')."` as short_description, prod.`".$lang->get('description')."` as description, cat.`".$lang->get('name')."` as cat_name, categ.category_id, prod.product_manufacturer_id, prod.`".$lang->get('meta_description')."` as meta_description, prod.`".$lang->get('meta_keyword')."` as meta_keyword, prod.product_publish, prod.product_template, prod.delivery_times_id FROM `#__jshopping_products` AS prod LEFT JOIN `#__jshopping_products_to_categories` AS categ USING (product_id) LEFT JOIN `#__jshopping_categories` as cat on cat.category_id=categ.category_id LEFT JOIN `#__jshopping_taxes` AS tax ON tax.tax_id = prod.product_tax_id GROUP BY prod.product_id"; $db->setQuery($query); $products = $db->loadObjectList(); $data = array(); $head = array("product_id","ean","qty","date","price","tax","category","name","short_description","description", "category_id", "product_manufacturer_id", "meta_description", "meta_keyword", "product_publish", "product_template", "delivery_times_id"); $data[] = $head; foreach($products as $prod){ $row = array(); $row[] = $prod->product_id; $row[] = $prod->product_ean; $row[] = $prod->product_quantity; $row[] = $prod->product_date_added; $row[] = $prod->product_price; $row[] = $prod->tax; $row[] = ($prod->cat_name); $row[] = ($prod->name); $row[] = ($prod->short_description); $row[] = ($prod->description); $row[] = ($prod->category_id); $row[] = ($prod->product_manufacturer_id); $row[] = ($prod->meta_description); $row[] = ($prod->meta_keyword); $row[] = $prod->product_publish; $row[] = $prod->product_template; $row[] = $prod->delivery_times_id; $data[] = $row; }
Ссылки и благодарности
Решение с кодировкой подсмотрел на спец. форуме: https://joomshopping.pro/forum/import-export-csv/28-ne-korrektnoe-otobrazhenie-kodirovki-pri-imp-i-eksp-tovara.html
Расширенный вариант импорта-экспорта: http://rtr24.ru/joomshopping/210-joomshopping-problema-s-utf8