Post by moneycarlo » Tue Sep 13, 2016 3:25 pm

I'm on 2.3.0.2 and was doing some test orders and noticed that they weren't showing up in my admin. There's nothing in the error log, the test credit card transaction went through processor fine in test mode and the order is in the order table in the database, BUT in the Comment field in the order_history table, there's a error:

Code: Select all

The order could not be completed normally due to the following error:<br /><br /><em><br />
<b>Fatal error</b>:  Call to a member function check() on a non-object in <b>/system/storage/modification/catalog/model/checkout/order.php</b> on line <b>267</b><br />
</em><br /><br />Double-check your SMTP settings in System > Settings > Mail, and then try disabling or uninstalling any modifications that affect customer orders (i.e. the /catalog/model/checkout/order.php file). One of those is usually the cause of errors like this.
Line 267 has this:
$fraud_status_id = $this->{'model_fraud_' . $extension['code']}->check($order_info);

So when I disabled both maxmind and fraudlabs, the order went through, but if either or both are enabled, I get this error.

I know my SMTP settings are correct, because the emails go out fine and there's no errors in the error log.
Ideas?
thanks!

Active Member

Posts

Joined
Wed Sep 28, 2011 3:40 am

Post by moneycarlo » Wed Sep 14, 2016 6:14 am

confirmed that catalog/model/checkout/order.php also has the same line on 267.
Anyone else run into this?

Active Member

Posts

Joined
Wed Sep 28, 2011 3:40 am

Post by pprmkr » Wed Sep 14, 2016 2:12 pm

In catalog/model/checkout/order.php at line 268:

Code: Select all

						$fraud_status_id = $this->{'model_fraud_' . $extension['code']}->check($order_info);
This line is forgotten in the process of putting all extensions in a seperate folder. Line should be:

Code: Select all

						$fraud_status_id = $this->{'model_extension_fraud_' . $extension['code']}->check($order_info);
Check github, perhaps there are more bugs ...

User avatar
Active Member
Online

Posts

Joined
Sat Jan 08, 2011 11:05 pm
Location - Netherlands

Post by Johnathan » Wed Sep 14, 2016 9:59 pm

That warning message looks like it's added by one of my extensions (Stripe Payment Gateway or Braintree Payment Gateway) and pprmkr is right about the source of the issue and the fix. I don't see this listed in the 2.3.0.2 bug topic, so I'll add it there:

http://forum.opencart.com/viewtopic.php?f=191&t=166012

Image
Image Image Image Image


User avatar
Global Moderator

Posts

Joined
Fri Dec 18, 2009 3:08 am


Post by moneycarlo » Thu Sep 15, 2016 12:32 pm

Well I do use your stripe plugin, so that would make sense.
I updated order.php and so far it's working!

A shame that i actually opened a bug and daniel closed it saying i must have changed the statuses. But then again, maybe because i was quoting the "stripe" error he figured it wasn't his..who knows.

anyways, thanks!

Active Member

Posts

Joined
Wed Sep 28, 2011 3:40 am

Post by Johnathan » Thu Sep 15, 2016 10:33 pm

I reported it as an issue on Github yesterday, so hopefully he'll see it, and the fix in this topic, to add it to the next release.

Image
Image Image Image Image


User avatar
Global Moderator

Posts

Joined
Fri Dec 18, 2009 3:08 am


Post by yusufag » Thu Dec 01, 2016 4:46 am

pprmkr wrote:In catalog/model/checkout/order.php at line 268:

Code: Select all

						$fraud_status_id = $this->{'model_fraud_' . $extension['code']}->check($order_info);
This line is forgotten in the process of putting all extensions in a seperate folder. Line should be:

Code: Select all

						$fraud_status_id = $this->{'model_extension_fraud_' . $extension['code']}->check($order_info);
Check github, perhaps there are more bugs ...

This totally helped me. Thank you

Newbie

Posts

Joined
Thu Dec 01, 2016 4:45 am
Who is online

Users browsing this forum: No registered users and 38 guests