/** * Retrieve groups data form config.xml * @return array */ public static function getGroups() { $groups = Mage::app()->getConfig()->getNode(self::XML_PATH_CED_CSMARKETPLACE_VENDOR_GROUPS); self::$GROUPS_ARRAY = json_decode(json_encode($groups), true); Mage::dispatchEvent('ced_csmarketplace_vendor_group_prepare', array('class' => 'Ced_CsMarketplace_Model_System_Config_Source_Group')); return self::$GROUPS_ARRAY; }
/** * Get the commission Setting based on group * * @param int $vendor_id * @return array */ public function getCommissionSettings($vendor_id = 0) { $vendor = Mage::getModel('csmarketplace/vendor')->load($vendor_id); $groupCode = $this->getDefaultGroup(); if ($vendor && $vendor->getId()) { if (Mage::registry('current_order_vendor')) { Mage::unRegister('current_order_vendor'); } Mage::register('current_order_vendor', $vendor); $groupCode = $vendor->getGroup(); if ($groupCode) { $groups = Ced_CsMarketplace_Model_System_Config_Source_Group::getGroups(); if (isset($groups[$groupCode]['model'])) { $group = $groups[$groupCode]['model']; } else { $group = 'csmarketplace/vendor_group_' . strtolower($groupCode); } try { $group = Mage::getModel($group); } catch (Exception $e) { } /* $classFile = str_replace(' ', DIRECTORY_SEPARATOR, ucwords(str_replace('_', ' ', str_replace('/', ' ', $group)))); if(file_exists($classFile)) { echo $classFile;die; } else { echo "else";die; } */ if (is_object($group) && ($settings = $group->getCommissionSettings($vendor))) { return $settings; } } } else { if (Mage::registry('current_order_vendor')) { Mage::unRegister('current_order_vendor'); } } return array('type' => $this->getDefaultCommissionMode(), 'rate' => $this->getDefaultCommissionFee(), 'group' => $groupCode); }