Совместное использование корзины между клиентами
Вопрос
Я работаю на сайте, где у нас есть два типа клиентов, агентов и сайтов. Заказчик входит в систему в качестве агента, затем выбирает сайт, на который они могут заказать (они в пользовательском атрибуте клиента). Агент клиент добавляет элементы в корзину клиента сайта и может проверить (выбор пользователя сайта фактически меняет сеанс клиента с клиента агента на клиент сайта).
Теперь, если у клиента -агента есть товары в своей корзине, а затем изменяет клиент сайта, мы хотим сохранить содержимое корзины нетронутыми, но поскольку они в действительности изменяют зарегистрированное на клиенте с одного клиента сайта на другой, содержимое корзины теряется. У кого -нибудь есть идеи о том, как я могу сохранить содержимое корзины нетронутым между клиентами сайта?
Решение
Изменение клиента_ид цитаты:
Mage::getModel('checkout/quote')->load($quoteId)->setCustomerId($customerId)->save();
Другие советы
Нет опыта с этим, что когда -либо и этот код далеко не протестирован или завершен, но вы, вероятно, можете использовать наблюдатель за событием (не checkout_cart_product_add_after
Или у вас будет бесконечная петля добавления), которая запускается при добавлении продукта, а затем выполните что -то подобное
$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' для ответа на то, чтобы поделиться корзиной. Я попробовал ваш код, но мне нужны некоторые модификации в нем, он должен использовать «продажи/цитату» вместо «Checkout/Quote», после этого он работает нормально для меня. Я использовал ниже код:
Mage::getModel('sales/quote')->load($quoteId)->setCustomerId($customerId)->save();