Saya telah bermain-main dengan Aturan Harga Keranjang Belanja untuk Magento Enterprise 1.14.1.0 dan telah menemukan masalah.
Saya mencoba membuat aturan sederhana sehingga Anda akan mendapatkan diskon £ 10 jika Anda membeli 3 item dari kategori yang ditentukan, dan telah menghabiskan lebih dari £ 15. Lihat konfigurasi saya di bawah ini.
Dalam keranjang saya, saya memiliki 3 item dari kategori dengan id 5
, dan 1 item dari kategori dengan id 3
.
Ketika saya mengaktifkan aturan ini dan melihat keranjang saya, saya menerima kesalahan fatal. Inilah bagian dari jejak tumpukan. Seperti yang bisa Anda lihat, saya sudah mencapai xdebug.max_nesting_level
tingkat yang mengerikan.
Fatal error: Maximum function nesting level of '18000' reached, aborting! in /dev/builds/1_14_1_0/lib/Varien/Object.php on line 344 Call Stack:
0.0003 348680 1. {main}() /dev/builds/1_14_1_0/index.php:0
0.0020 694956 2.Mage::run() /dev/builds/1_14_1_0/index.php:89
0.0068 1819640 3.Mage_Core_Model_App->run() /dev/builds/1_14_1_0/app/Mage.php:684
0.0509 9129168 4.Mage_Core_Controller_Varien_Front->dispatch() /dev/builds/1_14_1_0/app/code/core/Mage/Core/Model/App.php:354
0.0626 11074424 5. Mage_Core_Controller_Varien_Router_Standard->match() /dev/builds/1_14_1_0/app/code/core/Mage/Core/Controller/Varien/Front.php:172
0.0658 11765288 6. Mage_Core_Controller_Varien_Action->dispatch() /dev/builds/1_14_1_0/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php:250
0.1314 16963044 7. Mage_Checkout_CartController->indexAction() /dev/builds/1_14_1_0/app/code/core/Mage/Core/Controller/Varien/Action.php:418
0.3065 27313592 8. Mage_Checkout_Model_Cart->save() /dev/builds/1_14_1_0/app/code/core/Mage/Checkout/controllers/CartController.php:144
0.3195 28006864 9. Mage_Sales_Model_Quote->collectTotals() /dev/builds/1_14_1_0/app/code/core/Mage/Checkout/Model/Cart.php:458
0.3827 32507432 10. Mage_Sales_Model_Quote_Address->collectTotals() /dev/builds/1_14_1_0/app/code/core/Mage/Sales/Model/Quote.php:1331
0.6151 37466752 11. Mage_SalesRule_Model_Quote_Freeshipping->collect() /dev/builds/1_14_1_0/app/code/core/Mage/Sales/Model/Quote/Address.php:1013
0.6245 37839108 12. Mage_SalesRule_Model_Validator->processFreeShipping() /dev/builds/1_14_1_0/app/code/core/Mage/SalesRule/Model/Quote/Freeshipping.php:74
0.6247 37839784 13. Mage_SalesRule_Model_Validator->_canProcessRule() /dev/builds/1_14_1_0/app/code/core/Mage/SalesRule/Model/Validator.php:249
0.6282 37960924 14. Mage_Rule_Model_Abstract->validate() /dev/builds/1_14_1_0/app/code/core/Mage/SalesRule/Model/Validator.php:223
0.6418 38895940 15. Mage_Rule_Model_Condition_Combine->validate() /dev/builds/1_14_1_0/app/code/core/Mage/Rule/Model/Abstract.php:353
0.6420 38896372 16. Mage_SalesRule_Model_Rule_Condition_Product_Subselect->validate() /dev/builds/1_14_1_0/app/code/core/Mage/Rule/Model/Condition/Combine.php:307
0.6421 38896772 17. Mage_SalesRule_Model_Rule_Condition_Product_Combine->validate() /dev/builds/1_14_1_0/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product/Subselect.php:117
0.6428 38898084 18. Mage_SalesRule_Model_Rule_Condition_Product_Subselect->validate() /dev/builds/1_14_1_0/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product/Combine.php:219
0.6429 38898484 19. Mage_SalesRule_Model_Rule_Condition_Product_Combine->validate() /dev/builds/1_14_1_0/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product/Subselect.php:117
0.6433 38898572 20. Mage_SalesRule_Model_Rule_Condition_Product_Subselect->validate() /dev/builds/1_14_1_0/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product/Combine.php:219
0.6434 38898972 21. Mage_SalesRule_Model_Rule_Condition_Product_Combine->validate() /dev/builds/1_14_1_0/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product/Subselect.php:117
0.6439 38899060 22. Mage_SalesRule_Model_Rule_Condition_Product_Subselect->validate() /dev/builds/1_14_1_0/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product/Combine.php:219
0.6440 38899460 23. Mage_SalesRule_Model_Rule_Condition_Product_Combine->validate() /dev/builds/1_14_1_0/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product/Subselect.php:117
Ketika saya menghapus If total quantity is 3
bagian dari Condition
Magento maka tidak lagi panik. Bisakah seseorang menunjukkan saya cara yang benar untuk mengkonfigurasi promosi ini, dan juga menjelaskan mengapa saya menjadi gemuk?
Ini adalah instalasi vanilla dari Magento, dan saya khawatir saya bisa memecahkan keranjang belanja dengan mudah.
Memperbarui
Saya menjalankan mysql as
Server version: 5.5.41-0ubuntu0.12.04.1 (Ubuntu)
Dan PHP sebagai
PHP 5.3.10-1ubuntu3.15 with Suhosin-Patch (cli) (built: Oct 29 2014 12:16:30)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with the ionCube PHP Loader v4.0.10, Copyright (c) 2002-2011, by ionCube Ltd., and
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
Perbarui 2
Database dump tersedia di sini, datang pada ~ 130kb.
http://www.lukerodgers.co.uk/files/vanilla_1_14_1_0.sql.gz
- Dibuat dengan mysql menjalankannya sebagai root @ localhost tanpa kata sandi
- Nama pengguna panel admin Magento adalah
admin
dan kata sandinyapassword1
- Anda harus memperbarui
web/unsecure/base_url
danweb/secure/base_url
dicore_config_data
titik untuk menginstal Misalnya Anda.
Untuk mereplikasi
- Sebagai tamu, Tambahkan 1 Green Bowler ke keranjang Anda
- Kemudian Tambahkan 3 Sepatu Hijau ke keranjang Anda
- Semoga ada kesalahan mengerikan seperti yang saya lihat
sumber
magerun index:reindex:all
dan tidak ada bedanya. Saya sangat sibuk hari ini dan besok di tempat kerja, tetapi jika Anda masih gagal mereplikasi, saya akan dapat memberikan DB dump pada hari Kamis jika itu bagus?Jawaban:
mengambil perubahan untuk menyelami ini. Menginstal Magento Enterprise 1.14.1.0 yang bersih
Aturan Anda masih rusak tanpa yang pertama
>15 rule
...Asalnya ada di subseleksi produk.
Dua fungsi ini yang menyebut dirinya berulang kali.
Lebih spesifik:
Mage_SalesRule_Model_Rule_Condition_Product_Subselect: 118
Mage_SalesRule_Model_Rule_Condition_Product_Combine: 216
Seperti yang dapat Anda lihat, jika produk tersebut dapat dikonfigurasi (yang memang benar untuk kedua produk Anda) panggil fungsi yang diperluas lagi. Dan seterusnya, dan seterusnya, dan seterusnya, dan ...
Ini memang bug Magento karena tidak memeriksa apakah itu item yang valid yang diteruskan ke fungsi.
Biasanya fungsi ini dipanggil dengan
Mage_Sales_Model_Quote_Address
dan dalam rekursiMage_Sales_Model_Quote_Item
sehingga kita dapat membangun perbaikan untuk itu. Keduanya juga memiliki fungsi getQuote ().Jika Anda ingin menyelesaikannya dalam kasus Anda hal itu dilakukan dengan menambahkan baris pohon ini.
Mage_SalesRule_Model_Rule_Condition_Product_Subselect
Anda dapat menyalin file ini ke app / code / local / Mage / SalesRule / Model / Rule / Condition / Product / Subselect.php
Jadi pemeriksaan terakhir saya adalah untuk melihat apakah itu juga berlaku untuk Magento CE 1.9.1.0 Ini juga terjadi karena fungsi induk diimplementasikan dalam edisi CE. Magento CE 1.9.0.1 tidak terpengaruh, tidak memiliki fungsi induk! Jadi saya menduga Magento EE 1.13.1.0 juga bebas dari ini, karena keduanya melekat satu sama lain.
Anda harus membuat tiket di akun Magento Enterprise Anda dan memberikan informasi sehingga mereka dapat membuat tambalan untuk ini.
sumber