Pregunta

Estoy trabajando en un sitio donde tenemos dos tipos de clientes, agentes y sitios. Un cliente inicia la sesión como un agente continuación, elige un sitio que se puede pedir para (estos están en un atributo del cliente personalizado). El cliente agente agrega elementos a la canasta sitio del cliente y se puede comprobar a cabo (la selección de usuario del sitio cambia realmente la sesión de cliente de ser el agente de cliente para el cliente sitio).

Ahora, si el cliente agente tiene artículos en su cesta y luego cambia el cliente sitio queremos mantener el contenido de la cesta intacta, sino porque son en realidad cambiante ha iniciado la sesión al cliente de un cliente sitio a otro el contenido de la cesta se pierden . Alguien tiene alguna idea sobre cómo puedo mantener el contenido de la cesta intacta entre los clientes del sitio?

¿Fue útil?

Solución

Cambio de la customer_id de la cita:

Mage::getModel('checkout/quote')->load($quoteId)->setCustomerId($customerId)->save();

Otros consejos

No hay experiencia con este lo que nunca y este código está lejos de ser probado o completa, pero es probable que pueda utilizar un observador de eventos (no checkout_cart_product_add_after o usted tiene usted mismo un bucle infinito complemento) que se activa cuando se añade el producto y luego ejecutar algo como esto

$customer_session = Mage::getSingleton('customer/session')->setCustomer([customerid]);
$cart_session = Mage::getSingleton('checkout/session')->loadCustomerQuote();

$cart = Mage::getSingleton('checkout/cart’'); 
$cart->init(); 

$product = Mage::getSingleton('catalog/product')->load($productId); 

$cart->addProduct($product, array('qty' => $qty)); 
$cart->save(); 

$cart_session->setCartWasUpdated(true);

@ 'Fabian Blechschmidt' para la respuesta para compartir el carrito de compras. He probado el código, pero necesitan algunas modificaciones en el mismo, se debe utilizar 'ventas / presupuesto' en lugar de 'checkout / presupuesto', después de que se trabaja muy bien para mí. He utilizado a continuación código:

Mage::getModel('sales/quote')->load($quoteId)->setCustomerId($customerId)->save();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top