【问题标题】:Magento get option id for specified attribute set and valueMagento 获取指定属性集和值的选项 id
【发布时间】:2013-08-19 21:32:06
【问题描述】:

我已经搜索了几个小时,但没有找到任何解决此问题的方法。我需要获取可配置产品的选项 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,它来自另一个属性集。

【问题讨论】:

    标签: php magento


    【解决方案1】:

    如果您想获取选项 id,您可以像这样轻松完成:

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

    详情可以查看link

    【讨论】:

    • 感谢您的回答,但这不适用于我的情况。我需要指定一个属性集(我有 ID)。看看我的更新。
    【解决方案2】:

    我自己的查询,用于从数据库中获取属性选项 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')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-31
      • 2019-11-20
      • 1970-01-01
      • 1970-01-01
      • 2011-04-28
      • 2016-05-02
      • 1970-01-01
      相关资源
      最近更新 更多