La condivisione della spesa tra i clienti
Domanda
Sto lavorando su un sito dove abbiamo due tipi di clienti, agenti e siti. Un Cliente accede come agente sceglie quindi un sito che si possono ordinare per (questi sono in un attributo cliente personalizzato). Il cliente agente aggiunge elementi al cesto sede del cliente e può controllare (la selezione dell'utente sito cambia in realtà la sessione cliente dall'essere il cliente agente al cliente sito).
Ora, se il cliente agente ha elementi nella loro cestino e poi cambia il cliente sito vogliamo mantenere intatto il contenuto del carrello, ma perché sono in realtà cambiando il login cliente da un cliente sito a un altro il contenuto del carrello sono perso . Qualcuno ha qualche idea su come posso mantenere intatto il contenuto del carrello tra i clienti del sito?
Soluzione
La modifica della customer_id della citazione:
Mage::getModel('checkout/quote')->load($quoteId)->setCustomerId($customerId)->save();
Altri suggerimenti
Nessuna esperienza con questa cosa così mai e questo codice è ben lungi dall'essere testato o completa, ma probabilmente è possibile utilizzare un osservatore evento (non checkout_cart_product_add_after
o avrai anche tu una loop Aggiungi infinito) che viene attivato quando si aggiunge il prodotto e poi eseguire qualcosa di simile
$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' la risposta per la condivisione del carrello della spesa. Ho provato il codice, ma hanno bisogno di alcune modifiche in esso, dovrebbe utilizzare 'le vendite / quote' invece di 'cassa / quote', dopo di che si sta lavorando bene per me. Ho usato il codice qui sotto:
Mage::getModel('sales/quote')->load($quoteId)->setCustomerId($customerId)->save();