Magento Model – Playing with Mage_Core_Model_Website
14 July 2010
732 views
No Comment
API Doc – The Website Model
Located in /Core/Model/Website.php (line 35)
Varien_Object
|
--Mage_Core_Model_Abstract
|
--Mage_Core_Model_Website
How to gather info about website stores ?
In our example, we have 1 website which contains 1 store with 3 store views : (1) Default Store View, (2) Debug Store View, (3) US Store View.
With Php Script :
<?php
require_once('app/Mage.php');
Mage::app();
// fetch websites collection
$websites = Mage::getModel('core/website')
->getCollection()
->joinGroupAndStore();
// parse websites;
foreach($websites as $website) {
printf("%s\n", str_repeat('-', 50));
$data = $website->getData();
foreach($data as $key => $item) {
printf("%-30s: %s\n", $key, $item);
}
}
/*
OUTPUT :
--------------------------------------------------
website_id : 1
code : base
name : Main Website
sort_order : 0
default_group_id : 1
is_default : 1
group_id : 1
group_title : Main Website Store
store_id : 2
store_title : Debug Store View
--------------------------------------------------
website_id : 1
code : base
name : Main Website
sort_order : 0
default_group_id : 1
is_default : 1
group_id : 1
group_title : Main Website Store
store_id : 1
store_title : Default Store View
--------------------------------------------------
website_id : 1
code : base
name : Main Website
sort_order : 0
default_group_id : 1
is_default : 1
group_id : 1
group_title : Main Website Store
store_id : 3
store_title : US Store View
*/
?>
With SQL :
SELECT
`main_table`.*,
`group_table`.`group_id`,
`group_table`.`name` AS `group_title`,
`store_table`.`store_id`,
`store_table`.`name` AS `store_title`
FROM `core_website` AS `main_table`
LEFT JOIN `core_store_group` AS `group_table`
ON main_table.website_id=group_table.website_id
LEFT JOIN `core_store` AS `store_table`
ON group_table.group_id=store_table.group_id
WHERE (main_table.website_id>0)
ORDER BY
main_table.sort_order ASC,
main_table.name ASC,
group_table.name ASC,
CASE WHEN store_table.store_id = 0 THEN 0 ELSE 1 END ASC,
store_table.sort_order ASC,
store_table.name ASC;










