Изменить текущий скрипт PHP в экспорт в CSV-файл - Magento - PullRequest
0 голосов
/ 13 декабря 2018

В настоящее время у меня есть следующий скрипт, который изменяет название продукта с определенным идентификатором.

Теперь я хочу переписать скрипт, чтобы он не обновлял атрибуты, а генерировал CSV-файл всего каталога с двумя столбцами.

  1. Product_SKU
  2. $ productnamingseo value

Как этого добиться?

Текущий рабочий скрипт php для 1 продукта:

ini_set('display_errors', 'On');
error_reporting(E_ALL);

require('../app/Mage.php');
Mage::app();

$product = Mage::getModel('catalog/product')->load(409728);
Mage::register('current_product', $product);
$seotitle = Mage::helper('seo')->getCurrentSeo();
$productnamestring = Mage::getSingleton('seo/object_product')->getTitle();

        $findseo = array('/\h+inch (?:(i[357])-\w+|\h+\w+)?/', '/(\w+)#\w+/', '/(^| )(.{4,}) (.*)\2/', '/\s*-\s*$/');
        $replaceseo = array('" $1', '$1', '$1$2 $3', '');
        $productnamingseo = preg_replace($findseo, $replaceseo, $productnamestring);

$product->setName($productnamingseo);
$product->getResource()->saveAttribute($product, 'name');

Я уже пробовал:

ini_set('display_errors', 'On');
error_reporting(E_ALL);

require('../app/Mage.php');
Mage::app();


$file_path = "../var/import/productname.csv";
$mage_csv = new Varien_File_Csv();
$products_row = array();

$products = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('*');

foreach ($products as $product) {
    $prod = Mage::register('current_product', $product);    
    $seotitle = Mage::helper('seo')->getCurrentSeo();
    $productnamestring = Mage::getSingleton('seo/object_product')->getTitle();

    $findseo = array('/\h+inch (?:(i[357])-\w+|\h+\w+)?/', '/(\w+)#\w+/', '/(^| )(.{4,}) (.*)\2/', '/\s*-\s*$/');
    $replaceseo = array('" $1', '$1', '$1$2 $3', '');
    $productnamingseo = preg_replace($findseo, $replaceseo, $productnamestring);

    $data = array();
    $data['sku'] = $product->getSku();
    $data['name'] = $productnamingseo;
    $products_row[] = $data;
}

$mage_csv->saveData($file_path, $products_row);
...