0

現在、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;
}

これを修正する方法を知っている人はいますか?

4

3 に答える 3

0

フォームキーは、magento でカートに商品を追加するために不可欠です。テンプレートの catalog/product/view.phtml の form タグの直後に次のコードを追加します。

<?php echo $this->getBlockHtml('formkey') ?>
于 2013-12-06T10:38:11.537 に答える
0

次のことを行う必要があります。私のためのヘルパー。

  1. キャッシュの消去
  2. すべてを再インデックス化
  3. Cookie の有効期間を追加する
  4. Cookie を設定 - HTTP のみを使用するを NO に設定
  5. すべてのフォルダーのアクセス許可が同じかどうかを確認します

これらすべてが役に立たない場合は、AddToCart コントローラーのデバッグを検討してください。

少なくとも少しは役立つことを願っています。

于 2013-11-14T13:56:22.360 に答える