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.

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');
}

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`
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.