Как получить идентификатор пользовательского атрибута при наличии текстового значения пользовательского атрибута?
Я хочу обновить пользовательский атрибут, и я могу сделать это следующим образом:
$product = Mage::getModel('catalog/product')
->loadByAttribute('sku',"mysku");
$product->addAttributeUpdate('manufacturer', 281);
echo $product->getAttributeText('manufacturer');
В addAttributeUpdate()
вместо передачи 281
, который является идентификатором
У меня есть только текст атрибута, поэтому я должен получить идентификатор этого текста атрибута и вставить его вместо 281
Как я могу это сделать?
$attrtext = 'myatttext';
$product->addAttributeUpdate('manufacturer', $attrtext->getId() /* ???????? */);
3
2 answers
Чтобы достичь того, что вы ищете, выполните следующий код:
// attribute code
$attribute_code = 'manufacturer';
$productModel = Mage::getModel('catalog/product');
// load attribute by attribute code
$attribute = $productModel->getResource()->getAttribute($attribute_code);
// load product by sku
$product = $productModel->loadByAttribute('sku', 'mysku');
// Validate attribute
if ($attribute->usesSource()) {
// load option Id by value text
$attribute_value_id = $attribute->getSource()->getOptionId('myatttext');
// update product attribute
$product->addAttributeUpdate($attribute_code, $attribute_value_id);
echo $product->getAttributeText($attribute_code);
}
Я надеюсь, что это то, что вы ищете.
7
Author: Aboodred1, 2014-04-28 20:45:22
Попробуйте это
$attribute = $_product->getResource()->getAttribute('custom_attribute_code');
if ($attribute)
{
echo $attribute_value = $attribute ->getFrontend()->getValue($_product);
}
0
Author: Keshav Kalra, 2015-04-03 10:21:17