Joh*_*ohn 2 controller magento
我想写一个控制器,找到给定产品的不同选项(例如,大,中,小,红,蓝等......).
谁能告诉我我写入控制器的代码?
额外细节
我越走越近了,但我仍然无法理解.这是我在控制器中编写的代码
$db = Mage::getModel('catalog/product')->load($productId);
print_r($db->getOptions()); // returns an empty array
echo $db->getHasOptions(); // echos 1
Run Code Online (Sandbox Code Playgroud)
但是当我在第二行执行print_r()时,getOptions返回一个空数组.第三行echo是值1,这意味着应该有BE选项.
其他细节
我尝试了clockworkgeek的解决方案$db->getProductOptions(),但没有返回任何内容.我试过了$db->getProductOptionsCollection(),得到了这个输出
Array
(
[totalRecords] => 0
[items] => Array
(
)
)
Run Code Online (Sandbox Code Playgroud)
我的代码出了什么问题,以至于它没有返回允许的产品选项?
而不是getOptions()请尝试getCustomOptions()或getProductOptionsCollection()或getProductOptionsCollection()->load().
编辑
我尝试了一个我知道有选择的产品.
<?php
require 'app/Mage.php';
Mage::app();
$product = Mage::getModel('catalog/product')->load($productId);
foreach ($product->getProductOptions() as $option) {
print_r($option->debug());
}
Run Code Online (Sandbox Code Playgroud)
得到这样的东西:
Array
(
[option_id] => 37
[product_id] => 8
[type] => multidate
[is_require] => 1
[sku] =>
[image_size_x] => 0
[image_size_y] => 0
[sort_order] => 1
[default_title] => Dates
[title] => Dates
)
Run Code Online (Sandbox Code Playgroud)
然而,getOptions()也为我工作,所以我不知道发生了什么.
编辑后
混淆是一种语义.一个简单的产品可以有"自定义选项",它们允许创建一些表单字段,这些字段作为订单的一部分记录.可配置产品使用"关联产品"来创建具有条件字段的表单.
例如,您可能会销售大绿色,小绿色或大蓝色的袜子 - 但不是小蓝色的袜子.使用简单的产品,您将拥有大/小的字段和蓝色/绿色的字段 - 这允许客户选择小蓝色,这是错误的.
因此,要找到可配置的组件部分,您可能会执行以下操作:
if ($product->isConfigurable()) {
$configurable = $product->getTypeInstance();
$childProducts = $product->getUsedProducts($product);
foreach ($childProducts as $child) {
// You have a $child now
}
}
Run Code Online (Sandbox Code Playgroud)
要找到相应的getOptions()你需要这个:
if ($product->isConfigurable()) {
$configurable = $product->getTypeInstance();
$attributes = $configurable->getConfigurableAttributes($product);
// $attributes is a Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Type_Configurable_Attribute_Collection
foreach ($attributes as $attribute) {
// $attribute is a Mage_Catalog_Model_Product_Type_Configurable_Attribute
print $attribute->getLabel();
}
}
Run Code Online (Sandbox Code Playgroud)
Mage_Catalog_Model_Product_Type_Configurable_Attribute 没有太多可以揭示自己.
| 归档时间: |
|
| 查看次数: |
8271 次 |
| 最近记录: |