質問

私は2種類の顧客、エージェント、サイトがあるサイトに取り組んでいます。顧客がエージェントとしてログオンし、注文できるサイトを選択します(これらはカスタムカスタマー属性にあります)。エージェントの顧客は、サイトの顧客バスケットにアイテムを追加し、チェックアウトできます(サイトユーザーの選択は、実際に顧客セッションをエージェントの顧客からサイト顧客に変更します)。

これで、エージェントの顧客がバスケットにアイテムを持っていて、サイトの顧客を変更した場合、バスケットの内容をそのままに保ちたいが、実際には顧客に記録された顧客を別のサイトに変更しているため、バスケットの内容は失われます。サイトの顧客の間でバスケットの内容をそのままに保つ方法について誰かが何かアイデアを持っていますか?

役に立ちましたか?

解決

引用のcustomer_idを変更する:

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'ショッピングカートを共有するための答えについて。私はあなたのコードを試しましたが、その中にいくつかの変更が必要です。「チェックアウト/引用」の代わりに「販売/引用」を使用する必要があります。その後、私にとっては正常に動作します。以下のコードを使用しました:

Mage::getModel('sales/quote')->load($quoteId)->setCustomerId($customerId)->save();
ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top