Кодировка при экспорте в 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