【问题标题】:Magento Get Product SELECTED ATTRIBUTE only?Magento 仅获取产品选择属性?
【发布时间】:2011-09-12 13:30:27
【问题描述】:

您好,我正在开发一个显示 magento 商店中所有已订购商品的外部应用程序。

显示已订购产品属性的查询是这样的:

   select group_concat(distinct(b.value) separator '<br/>') from catalog_product_entity_varchar a , eav_attribute_option_value b  , eav_attribute c 
    where a.value = b.option_id
    and c.attribute_id =  a.attribute_id
    and c.is_user_defined = 1
    and a.entity_id = PRODUCT_ID

这适用于类型为 VARCHAR 的属性,我使用相同的查询来获取 int 和 text 的属性。我只是将表名从 catalog_product_entity_varchar 更改为 catalog_product_entity_int 和 catalog_product_entity_text。

我遇到的问题是我获取了所有产品属性,制造商,供应商......并且由于我们有很多商店,我不想使用附加的 sql where 子句检索所有附加属性!

任何解决方案只获得选定的属性?

【问题讨论】:

  • 您可以随时从平面产品表中选择
  • 平面产品表显示有关产品的信息,但不是所有属性值,这是我正在寻找的示例,例如我们将 iPhone 作为可配置产品。它有 3 个相关的简单产品 第一个:颜色:黑色 - 型号:3 第二个:颜色:白色 - 型号:4 第三个:颜色:灰色 - 型号:5 客户确实购买了第三个所以我想得到这个:iPhone - 灰色/5 相反,我得到了整个属性(供应商、制造商和一些附加属性)
  • 好吧,如果您需要购买,请从订单相关的平面表中选择

标签: magento attributes product


【解决方案1】:

下面将抓取 PHP 中的集合。您只需要更改您选择的属性。通过添加 ->addOrderedQty,它可以获取已订购的数量。现在我了解到您正在使用外部应用程序。我发布这个的原因是你可以将 Mage.php 加载到你的应用程序中并直接使用它,或者你可以只运行一次并观察数据库中的查询,然后使用该查询来完成你想要的。

$visibility = array( 
                      Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH, 
                      Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG 
                  ); 

$_productCollection = Mage::getResourceModel('reports/product_collection') 
                              ->addAttributeToSelect('*') 
                              ->addOrderedQty() 
                              ->addAttributeToFilter('visibility', $visibility) 
                              ->setOrder('ordered_qty', 'desc'); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    相关资源
    最近更新 更多