Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Magento中,如何让`getAllVisibleItems()`返回它在购物车中返回的可配置产品的所选属性值?_Php_Magento_Cart - Fatal编程技术网

Php 在Magento中,如何让`getAllVisibleItems()`返回它在购物车中返回的可配置产品的所选属性值?

Php 在Magento中,如何让`getAllVisibleItems()`返回它在购物车中返回的可配置产品的所选属性值?,php,magento,cart,Php,Magento,Cart,我试图列出购物车中的所有产品,并列出所选的颜色/尺寸等。。他们有。在主网站上,Magento似乎做到了这一点,如下图所示。但是,当我尝试以编程方式执行此操作时,我会将自定义属性设置为null 这是我当前的代码: $quote->getAllVisibleItems(); foreach ($allCartItems as $item) { $productInfo = array(); $product = $item->getPr

我试图列出购物车中的所有产品,并列出所选的颜色/尺寸等。。他们有。在主网站上,Magento似乎做到了这一点,如下图所示。但是,当我尝试以编程方式执行此操作时,我会将自定义属性设置为null

这是我当前的代码:

    $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,则情况相同