現在、Magento 1.5 に取り組んでおり、最新の Magento バージョンにアップグレードしたいと考えています。何度か試みた結果、「カートに追加」の問題が発生しました。この問題は、商品を選択してカートに追加しようとすると発生します。カートに追加をクリックすると、「Kan dit artikel niet toevoegen aan de winkelwagen」というカート ページにリダイレクトされます。これは、この記事をカートに追加できないことを意味します。
それを再現する方法は?1) Magento の現在のライブ バージョンと同じバージョン (1.5.0.1) を別のサーバー/ドメインにインストールします。2) データベースを削除し、ライブ バージョンのデータベースに置き換えます。3) config_core_data の web/unsecure/base_url とセキュア ベース URL を変更します。 4) 製品をカートに追加するテストを行います (ここでも機能します)。5) バージョンを最新の Magento バージョンに更新します。これは、magento connect および/または SSH を介して行われます。ここでのアドバイスの後、ファイルにmagento 1.8バージョンもインストールしました。6) アップデート後、前述のカートに追加の問題が発生します。chrome/firefox のコンソールと Magento にエラーが表示されません。
Cookie の有効期間と noconflict-code を実装しても効果はありませんでした。また、ステップ 1 で別のバージョンをインストールしようとしました。
更新: カートに追加は、1.5 から 1.6 にアップグレードした後も機能しますが、1.6 から 1.7 にアップグレードした後は機能しません
いくつかのデバッグの後、 app/code/core/Mage/Checkout/Model/cart.php での次の呼び出しがエラーの原因であることがわかりました。
$this->getQuote()->getShippingAddress()->setCollectShippingRates(true);
これは関数にあります:
public function save()
{
Mage::dispatchEvent('checkout_cart_save_before', array('cart'=>$this));
$this->getQuote()->getBillingAddress();
$this->getQuote()->getShippingAddress()->setCollectShippingRates(true);
$this->getQuote()->collectTotals();
$this->getQuote()->save();
$this->getCheckoutSession()->setQuoteId($this->getQuote()->getId());
/**
* Cart save usually called after changes with cart items.
*/
Mage::dispatchEvent('checkout_cart_save_after', array('cart'=>$this));
return $this;
}
これを修正する方法を知っている人はいますか?