Aktualisieren Sie Kategorieattribute programmgesteuert

7

Ich kann anscheinend nicht herausfinden, wie Hunderte von Kategorieattributen mit einem Skript am besten aktualisiert werden können. Irgendwelche Vorschläge als beste Möglichkeit, dies zu erreichen? Ich werde das Installationsprogramm oder ähnliches nicht verwenden.

easymoden00b
quelle

Antworten:

10

Wenn Sie viele Kategorien haben und nur wenige Attribute aktualisieren möchten, können Sie einen ähnlichen Code verwenden. Es ist schnell und speichert nur Werte für diese Attribute, die Sie aktualisieren möchten. Sie können dieses Skript über den Browser oder über das Terminal ausführen (Terminal ist in den von Ihnen beschriebenen Fällen besser).

<?php

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

$resource = Mage::getResourceModel('catalog/category');

// here get category collection

foreach($collection as $category) {
    $category->setStoreId(0);    // 0 for default scope (All Store Views)
    $category->setData('attribute_code', $value);
    $resource->saveAttribute($category, 'attribute_code');
}
Artwoz
quelle
Fast das gleiche für Magento 2, funktioniert wie ein Zauber
Antoine Martin
0
<?php
//increase the max execution time
@ini_set('max_execution_time', -1);
//memory_limit
@ini_set('memory_limit', -1);

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

// Start Despaly All Product Meta Title And Description
require_once('app/Mage.php'); //Path to Magento
umask(0);
Mage::app();

$categories = Mage::getModel('catalog/category')
                         ->getCollection()
                         // magic is prepared here..
                         ->addAttributeToSelect('*')
                         // then the magic happens here:
                         ->addAttributeToFilter('level', array('eq'=>4))
                         ->load();
    if (count($categories) > 0):

        foreach($categories as $category):

            $catId = $category->getId();
            $category = Mage::getModel('catalog/category')->load($catId);
            $resource = Mage::getResourceModel('catalog/category');
            //if($catId==1465):
                $CategoryName = $category->getName(); 
                $metaTitle = "Buy ".$CategoryName." Meta Title";
                $metaDescription = "Shop your favourite ".$CategoryName." Meta Description";
                //$category->setMetaTitle($metaTitle);
                //$category->setMetaDescription($metaDescription);
                //$category->save();

                $category->setData('meta_title', $metaTitle);
                $resource->saveAttribute($category, 'meta_title');
                $category->setData('meta_description', $metaDescription);
                $resource->saveAttribute($category, 'meta_description');

                $check = $category->getMetaTitle();
                echo "<pre>";
                print_r($catId);
                echo "<pre>";
                print_r($check);
                echo "\n";
            //endif; 

        endforeach;
     else: echo "No Results";
    endif;

?>`enter code here`
Baharuni Asif
quelle