diff --git a/app/code/core/Mage/Core/Model/App.php b/app/code/core/Mage/Core/Model/App.php index 73e2e6ec76cdb..431fa417b3613 100644 --- a/app/code/core/Mage/Core/Model/App.php +++ b/app/code/core/Mage/Core/Model/App.php @@ -1369,8 +1369,16 @@ public function dispatchEvent($eventName, $args) 'type' => (string)$obsConfig->type, 'model' => $obsConfig->class ? (string)$obsConfig->class : $obsConfig->getClassName(), 'method'=> (string)$obsConfig->method, + 'priority' => $obsConfig->priority ? (int)$obsConfig->priority : 0, ); } + usort($observers, function($a, $b){ + if($a['priority']==$b['priority']){ + return 0; + } else { + return $a['priority']<$b['priority'] ? -1 : 1; + } + }); $events[$eventName]['observers'] = $observers; $this->_events[$area][$eventName]['observers'] = $observers; }