Details
-
Bug
-
Resolution: Invalid
-
Medium
-
None
-
None
-
None
-
Operating System: Centos 5
PHP Version: PHP 5.2.9 (cli)
Database and version: mysql Ver 14.12 Distrib 5.0.45
Browser (and version): Firefox 3.0.11
Description
If you make a new order status it adds an entry to the db similar to:
+----+-----------+----------+-----------+ | id | is_active | name | status_id | +----+-----------+----------+-----------+ | 7 | 1 | REJECTED | 1003 | +----+-----------+----------+-----------+
On line 1300 of kernel/classes/ezorder.php you get eZOrder::statusName using the $this->StatusID which in the above case is 7 rather than 1003. Because of this, the eZOrderStatus::fetchByStatus fails as it cannot find a DB entry with a status_id of 7. It works if you change the call to eZOrderStatus::fetch. Or eZOrder could be changed to stored the status_id number rather than id.
Steps to reproduce
Log into the admin interface and go to Webshop. Click Order status in the left menu. Add a new order status.
Create an order that uses this status.
Try to view the order list. You should get:
Fatal error: Call to a member function attribute() on a non-object in /var/www/html/designtest/kernel/classes/ezorder.php on line 1302