2014-04-29 9 views
7

Próbuję utworzyć program programowo w Magento 1.8, a następnie ustawić niektóre wartości atrybutów do niego. Jak dotąd wszystko działa, atrybuty są zapisywane poprawnie z produktem w "domyślnym" zakresie.Jak zapisać wartość atrybutu dla określonego widoku sklepu?

Problem polega na tym, że mój sklep ma dwa różne "widoki sklepu", jeden w języku angielskim i jeden w języku francuskim. Nie mogę określić, jak ustawić "zakres" lub "widok sklepu" dla danych określonego atrybutu.

Jak mogę nakazać Magento, aby zapisał wartość atrybutu dla określonego zakresu?

Oto przykładowy kod za pomocą „krótki opis” atrybut:

$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? 

Odpowiedz

14

Po utworzeniu produkt powinien on mieć ID.
Oto szybki sposób aktualizowania nazwy produktu i krótkiego opisu dla określonego widoku sklepu bez wywoływania metody wykorzystującej zasoby save.
Załóżmy, że identyfikator produktu jest 10 a sklep widok id to 2.
Run to:

$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

dodać to do konkretnego widoku sklepu

$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

dla magazynu domyślnego widoku

$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)); 
Powiązane problemy