2011-12-02 17 views
8

注文後、カートに商品を追加することはできません。 Magentoは私に言っています:商品をショッピングカートに追加できません。私は順序を変更しようとした場合Magento:注文後カートに商品を追加できません

Plusは、私はエラーを得た:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1";i:1;s:2954:"#0 C:\wamp\www\ronamagento\trunk\lib\Zend\Db\Statement.php(300): Zend_Db_Statement_Pdo->_execute(Array) 

私は再度ログインしてからログアウトした場合、私は別の順序を置くまで、すべてが正常に動作します。

---------------------- EDIT ----------------------- ---

エラーは、$ cart-> save();のreorder関数でsales/order/controllers/OrderController.phpから来ているようです。
add機能のCheckout/controllers/CartController.phpの同じコード
私のカートのオブジェクトが壊れているかのようです。

---------------------- EDIT ------------------------ -

---------------------- EDIT#2 ------------------- -------

私が$ this-> getQuote() - > collectTotals();という行にコメントすると、 Checkout/model/cart.phpの保存機能では動作しているようですが、その商品がカートに追加されたことは表示されません。それから、私はコードの行を戻し、すべて正常に動作します。 collectTotals()内の何かが間違っているようです...

---------------------- EDIT#2 ---------- ----------------

ありがとうございます!

+0

最近、拡張機能をインストールしたことがありますか?そうであれば、これらのエクステンションを無効にするか削除してください。 –

+0

はい、いくつかの拡張モジュールがインストールされていて、多くのカスタムモジュールが作成されていますが、それらをすべて無効にしようとしました。 –

+0

同じ問題が発生しました。 canu anyone anyone – sivakumar

答えて

0

これはおそらく、Magentoモデルを書き換えたり、エスケープされた(おそらく直接、Magento ORMインフラストラクチャを使用しない)SQLクエリを使用して、イベントリスナー(私の推奨推測)を提供するサードパーティのモジュールによる問題です。

クイックデバッグでは、管理者は、レンダリングを解除するだけでなく、リライトやイベントリスナーではなく、サードパーティ製モジュールの「app/etc/modules/[Module_Name] .xml "ファイルを" app/etc/modules/[Module_Name] .xml.disabled "のようなものに置き換えて、Magentoはそれを無視します)。注文。

責任モジュールを特定したら、SQLクエリの文字列を適切にエスケープして修正プログラムを見つけるか、修正プログラムを提供するようモジュールの製造元に問い合わせることができます。

xdebugを使用して適切なデバッグを試すこともできますが、稼動環境では、停止の原因となる可能性があるため、これらのいずれかを行うことを強くお勧めします。

エスケープされていない値を持つ生のSQLクエリを使用すると、SQLインジェクション攻撃につながる可能性があるため、セキュリティの脅威になります。お客様のサイトで適切に細工されたURLを使用している人だけで、顧客データを盗まれたり、データベースがハッキングされたりすることがあります。

関連する問題