Я использую Magento 1.5.0.1 и иногда получаю сообщение об ошибке «Вызов функции-члена getId() для необъекта» при оформлении заказа.
Клиент несколько раз попытается оформить заказ с одними и теми же данными, и ошибка «Вызов функции-члена getId() для не-объекта» будет продолжать появляться, но затем, через несколько секунд или несколько минут, ошибка исчезнет. остановитесь, и касса пройдет.
Это происходит не в 100% случаев.
Я проверил: 1) Журналы ошибок Apache чисты, у Apache много свободных системных ресурсов. Оптимизирован для Magento в соответствии с официальным руководством. 2) Журналы ошибок MySQL чисты, у mysql много свободных системных ресурсов. Оптимизирован для Magento в соответствии с официальным руководством. 3) Журналы ошибок PHP будут отображать только «Вызов функции-члена getId() для не-объекта», нет никаких указаний на то, что PHP исчерпал оперативную память, т.е. ошибка невыделенной памяти, типичная для нехватки оперативной памяти. 4) Выполнены все остальные оптимизации Magento: кеширование, компиляция, APC, ограничение PHP 256mb. 5) У APC много платы за системные ресурсы. 6) Загрузка ЦП никогда не превышала 25-50%, ОЗУ использовалось только на 40-50%, более 50% свободно!
Также можно получить сообщение об ошибке «Вызов функции-члена getStoreId() для сообщения об ошибке, не относящегося к объекту».
Я рву на себе волосы, пытаясь сделать еще что-нибудь! Из 50 заказов он облажается примерно для 2-3 заказов, то есть покупатель пытается оформить заказ около 5-10 раз в течение 5-10 минут.
Что может запираться?