I am having an issue with a commerce file download. I am using D7.14 with Commerce 1.3 After successfully completing the transaction on Paypal. The redirect shows only this info:

Notice: Undefined index: transaction_id in commerce_paypal_ec_response_to_ipn() (line 488 of /home/solarpow/public_html/sites/all/modules/commerce_paypal_ec/commerce_paypal_ec.module).
Notice: Undefined variable: transactions in commerce_paypal_ec_paypal_ipn_process() (line 576 of /home/solarpow/public_html/sites/all/modules/commerce_paypal_ec/commerce_paypal_ec.module).
Notice: Undefined index: default-system in drupal_mail_system() (line 272 of /home/solarpow/public_html/includes/mail.inc).
Warning: class_implements() [function.class-implements]: object or string expected in drupal_mail_system() (line 276 of /home/solarpow/public_html/includes/mail.inc).
Exception: Class <em class="placeholder"></em> does not implement interface <em class="placeholder">MailSystemInterface</em> in drupal_mail_system() (line 281 of /home/solarpow/public_html/includes/mail.inc).

No menus, no headers/footers, nothing but these error messages. The transaction goes through though no access is ever given to the file. This is a new install of the commerce modules and has never worked. I am also not much of a coder, just a musician trying to DIY myself a site. How do I start trying to get to the bottom of the issue here?

Thanks!

Comments

viceversa’s picture

I have chatted with the original poster on #drupal-support and here is my take of this problem.

Some module that has been installed and then uninstalled has left a spurious reference to the mail_system variable in the DB, whose implementation (keyed by default-system) is no more in place. When drupal_mail_system() tries to use the implementation referenced by mail_system, it does not exist and fails.

Possible solution: deleting the mail_system variable from the variable table in the DB will revert drupal_mail_system() to use the default implementation (namely 'DefaultMailSystem') and therefore solve the problem. The original poster didn't try it because he was not comfortable with editing the DB directly.

citlacom’s picture

Status: Active » Closed (won't fix)

Definitely here there are 2 things:

1. The warnings of PayPal EC was solved in dev release.
2. As @viceversa said this looks like a problem with dirty reference for a module that has installed and uncorrectly uninstalled.

Try to do some debug in /home/solarpow/public_html/includes/mail.inc file in line 281. Probably if you do a print_r($module); before throw new Exception(t('Class %class does not implement interface %interface', array('%class' => $class, '%interface' => 'MailSystemInterface')));

This way you can get the name of the conflict module and try to reinstall it and uninstall correctly via the modules admin UI.

Drupal Musician’s picture

Status: Closed (won't fix) » Closed (fixed)

I installed the mail system module and used it to set the default mail system. The issue has been resolved. Thanks for the help.