Magento获取指定属性集和值的选项id


Magento get option id for specified attribute set and value

我已经搜索了几个小时,还没有找到这个问题的任何解决方案。我需要获取可配置产品的选项ID。我目前掌握的信息是SKU、属性集ID和选项标签。如何使用这些值获取选项ID?

非常感谢那些能帮助我的人。

**更新**

以下是数据库表eav_attribute_option_value的示例(我猜Magento从中获取ID的值)

value_id option_id store_id value   
729141   57        0        Rose
729142   57        3        Rose
729143   57        1        Pink
728847   749       0        Pink
728848   749       3        Pink
728849   749       1        Pink

我需要得到ID 57的值。当区域设置为法语时,我会得到正确的值。但当我切换到英语时,我会得到ID 749,它来自另一个属性集。

如果你想获取选项id,你可以很容易地这样做:

     $productModel = Mage::getModel('catalog/product')->load('1234', 'sku');
$attr = $productModel->getResource()->getAttribute("color");
if ($attr->usesSource()) {
    echo $color_id = $attr->getSource()->getOptionId("Red");
}

有关详细信息,您可以查看此链接

我自己的查询,用于从数据库中获取属性选项id。您必须指定的只是属性名称和值。例如:

SELECT ao.option_id
FROM `eav_attribute_option` AS ao, `eav_attribute_option_value` AS av
WHERE ao.option_id = av.option_id
AND av.value LIKE 'dragon'
AND ao.attribute_id IN
(SELECT attribute_id
 FROM eav_attribute
 WHERE attribute_code
 LIKE 'manufacturer')