Magento - 获取属性选项的值和数量

时间:2014-03-09 05:18:52

标签: magento custom-attributes

对这个伟大社区的所有成员来说,祝你好运。我还是PHP的新手,特别是在Magento。

我不是在发帖,等待答案,而是在没有回复的情况下离开。这是一个学习过程。我希望得到你们所有人的大力支持。

我有一个产品。我确实为产品创建了自定义选项,即名为“a_size”的属性。该属性的值为S,M和L.每个值都有数量。

在单一产品视图中,我想调用所有可用尺寸。这是数量大于0的大小(S,M或L)。我只想显示可用的大小,而不是显示的大小。

任何人都可以指导我吗?我正在使用Magento 1.7.x,到目前为止,我已经通过搜索功能从社区尝试了很多建议的答案。

回复将非常感谢。谢谢。

2 个答案:

答案 0 :(得分:2)

有几件事要尝试。

首先检查您在Magento管理员(目录 - >属性 - >管理属性)中设置新属性时,在Frontend Properties框中设置Visible on Product View Page on Front-end到{{1 }}

要获取大小值,我使用以下代码:

yes

但我有其他代码来获取如下所示的属性值:

$cabac_sizeAttribute = $_product->getAttributeText("a_size");

我认为它与属性的类型有关:文本,下拉列表,多选等等,所以请尝试两种方式,看看你是如何继续下去的。但实际上函数$_product_helper = Mage::helper('catalog/output'); $temp = $_product_helper->productAttribute($_product, $_product->getASize(), 'a_size'); 只是应用格式。您可以在文件productAttribute()

中阅读该功能

另外,我想知道,如果您已经设置了可配置产品并且您在产品视图页面上,那么您将查看可配置产品该产品没有app/core/Mage/Catalog/Helper/Output.php:您正在尝试访问构成可配置产品的简单产品的a_size属性,是吗?我上面写的所有内容(我认为)都是正确的,但要获得属于已配置产品的简单产品的属性,您应该研究a_size

的函数getJsonConfig()中的代码

特别是这些方面:

file app/core/Mage/Catalog/Block/Product/View/Type/Configurable.php

注意变量命名://file: file app/core/Mage/Catalog/Block/Product/View/Type/Configurable.php //class: Mage_Catalog_Block_Product_View_Type_Configurable //function: getJsonConfig() foreach ($this->getAllowProducts() as $product) { $productId = $product->getId(); foreach ($this->getAllowAttributes() as $attribute) { $productAttribute = $attribute->getProductAttribute(); $productAttributeId = $productAttribute->getId(); $attributeValue = $product->getData($productAttribute->getAttributeCode()); 在这里是本地的,我建议更改它,关于$product - 但是如果你在产品视图的$this配置中,那么我认为您的.phtml已经$this

欢迎使用Magento编码。你做得很好;这是一条漫长而有益的道路。 (提示:Mage_Catalog_Block_Product_View_Type_Configurable是您的重要朋友,如果您还没有看到他的内容,Alan Storm也是如此。)

[另外,(欢迎来到Magento )我想你想说的是,例如S和L缺货而M有库存但实际上函数getAllowProducts()将禁止产品零库存并将其从返回的对象中排除。您需要使用

$ allProducts = $ this-> getProduct() - > getTypeInstance(true)                  - > getUsedProducts(null,$ this-> getProduct());

(取自文件local.xml中的函数getAllowProducts()

然后,如果需要,检查是否允许显示每个产品,例如status = ENABLED,然后检查其库存水平...... ]

马拉奇。

答案 1 :(得分:0)

如果要获取下拉属性的值,请使用以下代码

$_product->getASize();

并且最初加载产品对象

相关问题