如何在magento中为添加到购物车的产品设置用户标识



我正在使用下面的代码将可配置的产品添加到购物车中。

                $product_id = 123; 
                $qty        = 1; 
                $product    = Mage::getModel('catalog/product')->load($product_id);
                $cart       = Mage::getModel('checkout/cart'); 
                $cart->init();
                $superAttributeArray = array('151' => '3');
                $params = array(
                            'product' => $product_id,
                            'qty'     => $qty,
                            'super_attribute' => $superAttributeArray
                             );
                $cart->addProduct($product, $params);
                $cart->save();

这段代码运行良好,我可以将产品添加到购物车中。

我想为创建的报价映射用户id。只有登录后才会添加产品。当我使用上述代码添加产品时,'sales_flat_quote'表中的customer_id字段为NULL。我想当前登录的用户id需要设置为这个报价。

有谁能帮我一下吗?

试试下面的代码。

if(Mage::getSingleton('customer/session')->isLoggedIn()) {
     $customerData = Mage::getSingleton('customer/session')->getCustomer();
     $customerId = $customerData->getId();
}

如果您有任何疑问请告诉我

您应该考虑将此添加到当前客户用户会话中(无论他们是否登录)

...
$cart->addProduct($product, $params);
$session = Mage::getSingleton(
    'core/session', array('name'=>'frontend')
);
$session->setLastAddedProductId($product->getId());
$session->setCartWasUpdated(true);

最新更新