Php 在Magento中,如何让`getAllVisibleItems()`返回它在购物车中返回的可配置产品的所选属性值?
我试图列出购物车中的所有产品,并列出所选的颜色/尺寸等。。他们有。在主网站上,Magento似乎做到了这一点,如下图所示。但是,当我尝试以编程方式执行此操作时,我会将自定义属性设置为null 这是我当前的代码:Php 在Magento中,如何让`getAllVisibleItems()`返回它在购物车中返回的可配置产品的所选属性值?,php,magento,cart,Php,Magento,Cart,我试图列出购物车中的所有产品,并列出所选的颜色/尺寸等。。他们有。在主网站上,Magento似乎做到了这一点,如下图所示。但是,当我尝试以编程方式执行此操作时,我会将自定义属性设置为null 这是我当前的代码: $quote->getAllVisibleItems(); foreach ($allCartItems as $item) { $productInfo = array(); $product = $item->getPr
$quote->getAllVisibleItems();
foreach ($allCartItems as $item) {
$productInfo = array();
$product = $item->getProduct();
$productInfo["size"] = $product->getSize();
...
}
如果我使用getAllItems()
而不是getAllVisibleItems()
,那么我最终将得到简单/可配置的产品,这将导致应用程序在更新产品时必须使用哪个项目id(以及列出重复项目)的问题
我在网上找到的唯一解决方案是使用$product=$model->load($model->getIdBySku($sku)),再次加载产品
适用于列出的每一种产品,但这似乎会影响性能
如何让getAllVisibleItems()
返回所选属性及其返回的可配置产品的属性值
[
{
name: "Tori Tank",
price: "60.0000",
id: "418",
product_id: "418",
item_id: "2481",
sku: "wbk004",
color: null,
size: null,
quantity: 1
},
{
name: "Chelsea Tee",
price: "75.0000",
id: "410",
product_id: "410",
item_id: "2483",
sku: "mtk005",
color: null,
size: null,
quantity: 1
}
]
如您所见,颜色/大小返回为空。快速解决方案:
$item->getProduct()->getTypeInstance(true)->getOrderOptions($item->getProduct());
说明:
您有一个问题,因为当您运行
$item->getProduct()时代码>您刚刚收到此可配置产品。如果在magento.stackexchange上运行Mage::getModel('catalog/product')->load($someConfigurableProductId)
duplicate,则情况相同