2011-12-02 15 views
8

Po złożeniu zamówienia nie ma możliwości dodania produktu do koszyka. Magento mówi mi ciągle: nie można dodać przedmiotu do koszyka.Magento: nie można dodać produktu do koszyka po zamówieniu

Plus, jeśli staram się uporządkować, mam błąd:

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) 

Gdybym wylogować następnie Relog w, wszystko działa dobrze, dopóki I miejsce innej kolejności.

Każdy pomysł?

---------------------- EDYCJA ----------------------- ---
Błędy wydają się pochodzić ze sprzedaży/zamówienia/kontrolerów/OrderController.php, w funkcji kolejki na $ cart-> save();
I ten sam kod w Checkout/controllers/CartController.php w funkcji dodawania
Wygląda na to, że mój obiekt koszyka jest uszkodzony lub coś takiego.

---------------------- EDYCJA ------------------------ -

---------------------- EDYCJA # 2 ------------------- -------

Cóż, jeśli skomentuję wiersz $ this-> getQuote() -> collectTotals(); w funkcji składowania Checkout/model/cart.php wydaje się działać, ale nie pokazuje, że przedmiot został dodany do mojego koszyka. Potem przywracam linię kodu i wszystko działa dobrze. Wydaje się, że coś jest nie tak w collectTotals() ...

---------------------- EDYCJA # 2 ---------- ----------------

Dzięki!

+0

Czy kiedykolwiek zainstalowałeś jakieś rozszerzenie? Jeśli tak, po prostu wyłącz lub usuń te ekstensyny. –

+0

Tak, mam kilka zainstalowanych rozszerzeń + wiele niestandardowych modułów utworzonych, ale starałem się je wyłączyć wszystkie, bez powodzenia –

+0

sam problem mam.i nie wiem, jak przejść dalej. Dla mojej strony minimum 100 niestandardowych trybów tam jest. canu anyone help – sivakumar

Odpowiedz

0

Najprawdopodobniej jest to problem spowodowany modułem innej firmy, być może przepisanie modelu Magento lub dostarczenie detektora zdarzeń (moje preferowane przypuszczenie) z pewnymi nieskorygowanymi (być może bezpośrednimi, nie używającymi infrastruktury Magento ORM) zapytaniami SQL w nim.

Jako szybki debug, sugeruję, aby spróbować wyłączyć (nie przez administratora, który nie działałby, ponieważ właśnie wyłącza renderowanie, nie przepisuje lub detektory zdarzeń, ale zmieniając nazwę modułu "app/etc/modułu innej firmy" modules/[nazwa modułu] .xml "plik do czegoś podobnego" app/etc/modules/[nazwa modułu] .xml.disabled ", więc Magento je ignoruje) każdy z modułów zewnętrznych, które posiadasz - jeden po drugim - dopóki nie umieścisz zamówienie.

Po zidentyfikowaniu odpowiedzialnego modułu można go znaleźć, odpowiednio wymykając się z łańcucha w zapytaniu SQL, lub zwrócić się do producenta modułu z prośbą o podanie poprawki.

Możesz także wypróbować poprawne debugowanie za pomocą xdebug, a ja bardzo zniechęciłbym do robienia tego w środowisku produkcyjnym, ponieważ możesz spowodować przestój.

Należy pamiętać, że używanie surowych zapytań SQL z wartościami bez zmian jest zagrożeniem bezpieczeństwa, ponieważ może prowadzić do ataków typu SQL injection. Możesz łatwo zdobyć skradzione dane klientów lub zhackować bazę danych tylko przez osoby używające odpowiednio spreparowanych adresów URL w Twojej witrynie.

Powiązane problemy