2012-06-19 13 views
7

Mam witrynę Magento używającą wersji 1.6.2.0, z którą mam problemy z duplikatami zamówień.Magento Duplicate Orders

Po zbadaniu tematu, znalazłem głównie wątki na forum wyjaśniające, że 1.4.x miało problemy z duplikatami zamówień, a wspomniane rozwiązania (nawet te na SO, które znalazłem) sugerują tylko, że użytkownik aktualizuje Magento do >1.4.

Znalazłem również proponowane rozwiązanie here, ale jestem niechętny do usuwania obserwatorów, co uniemożliwi zakupy do pobrania działa.

Zauważyłem również wspomnianą już parę razy poprawkę o nazwie "Array of Death" (np. here), ale ten problem nie występuje w 1.6.x, wydaje się, że Zend to rozwiązał.

Istnieje kilka propozycji hackingu JavaScript, w których przycisk Potwierdź zamówienie jest ukryty po przesłaniu, ale Magento 1.6.x już to robi.

Zwiększyłem zmienną konfiguracyjną limitu czasu płatności na 120 sekund i jeszcze nie widzę, czy daje ona wyniki. Nie mogę tego przetestować, ponieważ problem jest sporadyczny (i prawdopodobnie spowodowany komunikacją lub jej brakiem między bramką płatności a Magento).

Używam Sagepay jako bramy płatności.

Jeśli ktoś ma jakieś pomysły, które mogą pomóc, lub może doradzić, w jaki sposób mogę dalej to debugować, i idealnie rozwiązać to, co byłoby bardzo cenne!

+0

Mamy ten sam problem w/magento 1.6.2 i SagePay. Czy udało ci się to zbadać? –

+0

Niestety, nie! Jest on obecnie badany przez kolegę, ale nie znalazłem niczego, o ile wiem. Zgłosimy to tutaj, jeśli to zrobią. –

Odpowiedz

1

Opublikowany link jest poprawny, ale nie użyłbym jego poprawki, po prostu wyłączałbym moduł Mage_Rss.

Mage_Rss ma kilku obserwatorów, którzy wywołują Mage :: app() -> cleanCache (...) w procesie realizacji zamówienia, co jest niezwykle kosztowne, jeśli twoja instalacja używa domyślnej pamięci podręcznej systemu plików i jest duża.

Znalazłem najlepszą rzeczą w rozwiązywaniu problemów z wydajnością Magento jest podłączenie się do Xhgui i wykonanie niektórych profilów. Czytanie stosów wywołań pomoże ci również w zrozumieniu Magento.

Aha, i nie wiem, czy to prawda w przypadku SagePay, ale poszedłem i naprawiłem ten problem całkowicie dla PayflowPro, przepisując metodę, która generuje identyfikatory transakcji, aby użyć quoteID zamiast generować unikalne ID dla każdego wywołania. Zacząłem na tej ścieżce, ale wciąż jestem w wersji 1.4.2 i nie mam czasu na testowanie w późniejszych wersjach i jest to dość znacząca przeróbka. Chyba mógłbym go tam położyć, żeby ktoś inny mógł przejechać Moses ...