Отправляет емейл, очень удобный. Перестали уходить емейл при заказе после обновления. В логах модуля все ок, но нет сообщений во время заказов, такое ощущение что он не вызывается просто. Через контактную форму тоже сообщения уходят. А вот при заказе - нет.
У меня не работает модуль отправки email от Mandrill, причем судя по логам он даже не вызывается.
23.10.2014 10:08
В первую очередь надо узнать, что в системе имеются журналы сбоев, включить запись в них (если не включена), удалить журналы, воспроизвести отклонение поведения системы от ожидаемого, проанализировать содержимое журналов, выявить записи, имеющие отношение конкретно к данной проблеме, опубликовать их в проблемной теме.
23.10.2014 10:13
Да, в журнале ошибок есть во время заказа такой текст:
2014-10-23T09:02:42+04:00: exception 'Exception' with message 'Notice: Undefined offset: 0 in /var/www/allshellac.ru/lib/Mandrill/Message.php on line 190' in /var/www/allshellac.ru/app/code/core/Mage/Core/functions.php :245 Stack trace: #0 /var/www/allshellac.ru/lib/Mandrill/Message.php(190): mageCoreErrorHandler(8, 'Undefined offse...', '/var/www/allshe...', 190, Array) #1 /var/www/allshellac.ru/app/code/community/Ebizmarts/Mandrill/Model/Email/Template.php(73): Mandrill_Message->getHeaders() #2 /var/www/allshellac.ru/app/code/core/Mage/Core/Model/Email/Template.php(506): Ebizmarts_Mandrill_Model_Email_Template->send(Array, Array, Array) #3 /var/www/allshellac.ru/app/code/core/Mage/Core/Model/Email/Template/Mailer.php(79): Mage_Core_Model_Email_Template->sendTransactional('customer_create...', 'general', Array, Array, Array, ' 1') #4 /var/www/allshellac.ru/app/code/core/Mage/Customer/Model/Customer.php(676): Mage_Core_Model_Email_Template_Mailer->send() #5 /var/www/allshellac.ru/app/code/core/Mage/Customer/Model/Customer.php(603): Mage_Customer_Model_Customer->_sendEmailTemplate('customer/create...', 'customer/create...', Array, '1') #6 /var/www/allshellac.ru/app/code/core/Mage/Checkout/Model/Type/Onepage.php(756): Mage_Customer_Model_Customer->sendNewAccountEmail('registered', '', '1') #7 /var/www/allshellac.ru/app/code/core/Mage/Checkout/Model/Type/Onepage.php(789): Mage_Checkout_Model_Type_Onepage->_involveNewCustomer() #8 /var/www/allshellac.ru/app/code/core/Mage/Checkout/controllers/OnepageController.php(579): Mage_Checkout_Model_Type_Onepage->saveOrder() #9 /var/www/allshellac.ru/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Checkout_OnepageController->saveOrderAction() #10 /var/www/allshellac.ru/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('saveOrder') #11 /var/www/allshellac.ru/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http)) #12 /var/www/allshellac.ru/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch() #13 /var/www/allshellac.ru/app/Mage.php(684): Mage_Core_Model_App->run(Array) #14 /var/www/allshellac.ru/index.php(87): Mage::run('', 'store') #15 {main} 2014-10-23T09:02:42+04:00: exception 'Exception' with message 'Notice: Undefined offset: 0 in /var/www/allshellac.ru/lib/Mandrill/Message.php on line 190' in /var/www/allshellac.ru/app/code/core/Mage/Core/functions.php :245 Stack trace: #0 /var/www/allshellac.ru/lib/Mandrill/Message.php(190): mageCoreErrorHandler(8, 'Undefined offse...', '/var/www/allshe...', 190, Array) #1 /var/www/allshellac.ru/app/code/community/Ebizmarts/Mandrill/Model/Email/Template.php(73): Mandrill_Message->getHeaders() #2 /var/www/allshellac.ru/app/code/core/Mage/Core/Model/Email/Template.php(506): Ebizmarts_Mandrill_Model_Email_Template->send(Array, Array, Array) #3 /var/www/allshellac.ru/app/code/core/Mage/Core/Model/Email/Template/Mailer.php(79): Mage_Core_Model_Email_Template->sendTransactional('sales_email_ord...', 'sales', Array, Array, Array, '1' ) #4 /var/www/allshellac.ru/app/code/core/Mage/Sales/Model/Order.php(1340): Mage_Core_Model_Email_Template_Mailer->send() #5 /var/www/allshellac.ru/app/code/core/Mage/Checkout/Model/Type/Onepage.php(814): Mage_Sales_Model_Order->sendNewOrderEmail() #6 /var/www/allshellac.ru/app/code/core/Mage/Checkout/controllers/OnepageController.php(579): Mage_Checkout_Model_Type_Onepage->saveOrder() #7 /var/www/allshellac.ru/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Checkout_OnepageController->saveOrderAction() #8 /var/www/allshellac.ru/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('saveOrder') #9 /var/www/allshellac.ru/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http)) #10 /var/www/allshellac.ru/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch() #11 /var/www/allshellac.ru/app/Mage.php(684): Mage_Core_Model_App->run(Array) #12 /var/www/allshellac.ru/index.php(87): Mage::run('', 'store') #13 {main}
23.10.2014 10:21
Сообщение "notice: undefined offset" означает, что программист модуля Ebizmarts Mandrill любит и считает правильным обращаться к несуществующим элементам своих массивов. У интерпретатора PHP по данному вопросу имеется своя точка зрения, отличная от точки зрения программиста модуля Ebizmarts Mandrill. Я рекомендую склониться к точке зрения интерпретатора PHP, открыть указанный им файл на указанной им строке и привести эту строку к заложенной в интерпретатор PHP спецификации языка PHP.
Затем повторить то, что я написал в сообщении выше, и так по кругу, пока проблема не будет устранена.
Затем повторить то, что я написал в сообщении выше, и так по кругу, пока проблема не будет устранена.
23.10.2014 10:33
Строчка 190 - это
в такой функции:
Я понимаю что поддержка сторонних модулей не входит в круг тем, которые здесь обсуждаются, но тем не менее модуль перестал работать именно после установки Русской сборки, поэтому хотелось бы понять, в чем может заключаться ошибка. Может после установки перестали заголовки передаваться?
return $this->_headers[0];
в такой функции:
public function getHeaders() { return $this->_headers[0]; }
Я понимаю что поддержка сторонних модулей не входит в круг тем, которые здесь обсуждаются, но тем не менее модуль перестал работать именно после установки Русской сборки, поэтому хотелось бы понять, в чем может заключаться ошибка. Может после установки перестали заголовки передаваться?
23.10.2014 10:50
Российская сборка Magento, в отличие от Magento Community Edition и Magento Enterprise Edition, обладает способностью к ранней диагностике проблем.
Ранняя диагностика проблем значительно снижает владельцу магазина стоимость сопровождения магазина.
Если в обычном окружении Magento Community Edition бесплатно скачанный модуль для отправки писем, написанный студентом в свободное от учёбы время, как ни в чём не бывало будет обращаться по несуществующим адресам массива, то система может ничего не сказать и продолжить работу. При этом в одних случаях письма будут успешно отправлены, а в других крупный клиент может не получить важное письмо.
Российская сборка Magento широко использует раннюю диагностику, сразу останавливая выполнение дефектного кода и обращая на него внимание администратора магазина. Это значительно снижает затраты владельца магазина на сопровождение магазина, потому что замаскированные ранее дефекты выявляются сразу, в явном виде. При отсутствии ранней диагностики оплаченный владельцем магазина технический специалист может часами проводить диагностику за счёт владельца магазина, причём не на этапе разработки магазина, а на этапе промышленной эксплуатации, когда замаскированный дефект себя проявит.
Ранняя диагностика проблем значительно снижает владельцу магазина стоимость сопровождения магазина.
Если в обычном окружении Magento Community Edition бесплатно скачанный модуль для отправки писем, написанный студентом в свободное от учёбы время, как ни в чём не бывало будет обращаться по несуществующим адресам массива, то система может ничего не сказать и продолжить работу. При этом в одних случаях письма будут успешно отправлены, а в других крупный клиент может не получить важное письмо.
Российская сборка Magento широко использует раннюю диагностику, сразу останавливая выполнение дефектного кода и обращая на него внимание администратора магазина. Это значительно снижает затраты владельца магазина на сопровождение магазина, потому что замаскированные ранее дефекты выявляются сразу, в явном виде. При отсутствии ранней диагностики оплаченный владельцем магазина технический специалист может часами проводить диагностику за счёт владельца магазина, причём не на этапе разработки магазина, а на этапе промышленной эксплуатации, когда замаскированный дефект себя проявит.
23.10.2014 10:55
Может быть, но сейчас мы наблюдаем обратную ситуацию.
Как отключить раннюю диагностику для этого модуля?
Как отключить раннюю диагностику для этого модуля?
23.10.2014 10:57
Никак, потому что это привело бы к значительному повышению стоимости диагностики и, следовательно, пересмотру тарифов на техническую поддержку Российской сборки Magento.
Именно благодаря ранней диагностики стоимость сопровождения Российской сборки Magento так невысока по сравнению с Magento Community Edition.
Именно благодаря ранней диагностики стоимость сопровождения Российской сборки Magento так невысока по сравнению с Magento Community Edition.
23.10.2014 11:05
Тогда вопрос, я правильно понимаю что система выдает notice и warning, а русская сборка думает, что это Exception?
и
exception 'Exception' with message 'Notice: Undefined offset: 0 in /var/www/allshellac.ru/lib/Mandrill/Message.php on line 190'
и
exception 'Exception' with message 'Warning: json_encode(): type is unsupported, encoded as null in /var/www/allshellac.ru/lib/Mandrill/Mandrill.php on line 119'
23.10.2014 11:09
Все данные диагностические сообщения соответствуют нарушениям сторонними программистами специаикаций языка PHP.
Как обращение к несуществующему элементу массива, так и кодирование посредством JSON переменных неподдерживаемого этим кодировщиком типа свидетельствует о замаскированных проблемах в некачественном стороннем программном коде, и эти проблемы могут иметь далеко идущие последствия. Далеко неочевидно, что, обращаясь к несуществующему элементу массива или кодируя посредством JSON некий мусор, система будет работать правильно и устойчиво хотя бы в течение года. Скорее, наоборот: эти дефекты рано или поздно проявят себя при некотором контексте.
Все эти нарушения надо устранять.
Как обращение к несуществующему элементу массива, так и кодирование посредством JSON переменных неподдерживаемого этим кодировщиком типа свидетельствует о замаскированных проблемах в некачественном стороннем программном коде, и эти проблемы могут иметь далеко идущие последствия. Далеко неочевидно, что, обращаясь к несуществующему элементу массива или кодируя посредством JSON некий мусор, система будет работать правильно и устойчиво хотя бы в течение года. Скорее, наоборот: эти дефекты рано или поздно проявят себя при некотором контексте.
Все эти нарушения надо устранять.
23.10.2014 11:12
Тогда откройте диагностическую консоль Android и посмотрите, сколько warning и даже error'ов там В СЕКУНДУ прилетает по системным приложениям и ядру. И ничего, работает очень стабильно.
В любом случае, как это поведение отключить? Трактовать warning как error еще более неправильно. Скажите хотя бы в каком файле посмотреть, попробую сам исправить.
В любом случае, как это поведение отключить? Трактовать warning как error еще более неправильно. Скажите хотя бы в каком файле посмотреть, попробую сам исправить.