2014-04-29 12 views
7

Ich versuche, ein Produkt programmgesteuert in Magento 1.8 zu erstellen und dann einige Attributwerte darauf festzulegen. Bis jetzt funktioniert alles, die Attribute werden korrekt mit dem Produkt im Bereich "Standard" gespeichert.Wie speichert man einen Attributwert für eine bestimmte Geschäftsansicht?

Das Problem ist, dass mein Geschäft zwei verschiedene "Store View", eine in Englisch und eine in Französisch hat. Ich kann mir nicht vorstellen, wie man den "Scope" oder "Store View" für die Daten eines bestimmten Attributs einstellt.

Wie kann ich Magento sagen einen Attributwert für einen bestimmten Bereich zu sparen?

Hier ist ein Codebeispiel die „kurze Beschreibung“ Attribut:

$product = new Mage_Catalog_Model_Product(); 
$product->setSku($sku); 
$product->setAttributeSetId($attributeSetId); 
$product->setTypeId($typeId); 
$product->setName($sku); 
$product->setWebsiteIDs(array($websiteId)); 
$product->setShortDescription('Short description in english'); 
$product->setShortDescription('Short description in french'); // Scope change here? 

Antwort

14

Ansicht für bestimmte Speicher hinzufügen Nachdem Sie das Produkt erstellt haben, sollten sie eine haben Ich würde.
Hier ist ein schneller Weg, um den Produktnamen und die kurze Beschreibung für eine bestimmte Speicheransicht zu aktualisieren, ohne die Ressourcen verbrauch save Methode aufrufen.
Nehmen wir an, dass das Produkt-ID 10 und die Speicheransicht ID ist 2.
Run this:

$productId = 10; 
$storeId = 2; 
$newName = 'Nom de produit'; 
$newShortDescription = 'description de produit'; 
Mage::getSingleton('catalog/product_action')->updateAttributes(
    array($productId), 
    array('name'=>$newName, 'short_description' => $newShortDescription), 
    $storeId 
); 
2

diese

$product->setStoreId($storeId); 
0
$store_id = Mage::app()->getStore()->getStoreId(); 

$product = Mage::getModel('catalog/product')->setStoreId($store_id); 
$brandLabel = $product->setData('brand','adidas')->getResource()->saveAttribute($product, 'brand'); 
0
<?php $StoreId = Mage::app()->getStore()->getId(); 

$product = Mage::getModel('catalog/product')->setStoreId($StoreId); 
$brandLabel = $product->setData('brand','adidas')->getResource()->saveAttribute($product, 'brand'); ?> 
1

für Standardspeicher Ansicht

$product = new Mage_Catalog_Model_Product(); 
$product->setSku($sku); 
$product->setAttributeSetId($attributeSetId); 
$product->setTypeId($typeId); 
$product->setName($sku); 
$product->setWebsiteIDs(array($websiteId)); 
$product->setShortDescription('Short description in english'); 
$product->setStoreId(array(0)); 
Verwandte Themen