Skip to content

Instantly share code, notes, and snippets.

@7ochem
Created March 19, 2013 16:29
Show Gist options
  • Save 7ochem/5197628 to your computer and use it in GitHub Desktop.
Save 7ochem/5197628 to your computer and use it in GitHub Desktop.
Get all Magento stores with base url and design configuration in one query output
SELECT cw.`website_id`, cw.`code` AS `website_code`, cw.`name` AS `website_name`,
cw.`is_default` AS `website_is_default`, cw.`default_group_id` AS `website_default_group_id`,
csg.`group_id`, csg.`name` AS `group_name`, csg.`default_store_id` AS `group_default_store_id`,
cs.`store_id`, cs.`code` AS `store_code`, cs.`name` AS `store_name`, cs.`is_active` AS `store_is_active`,
ccd_base_url.`value` AS `base_url`, ccd_base_url.`scope_scope_id` AS `base_url_scope`,
ccd_design_package.`value` AS `design_package`, ccd_design_package.`scope_scope_id` AS `design_package_scope`,
ccd_design_theme_layout.`value` AS `design_theme_layout`, ccd_design_theme_layout.`scope_scope_id` AS `design_theme_layout_scope`,
ccd_design_theme_template.`value` AS `design_theme_template`, ccd_design_theme_template.`scope_scope_id` AS `design_theme_template_scope`,
ccd_design_theme_skin.`value` AS `design_theme_skin`, ccd_design_theme_skin.`scope_scope_id` AS `design_theme_skin_scope`
FROM `core_store` AS cs LEFT JOIN `core_store_group` AS csg ON csg.group_id = cs.group_id
LEFT JOIN `core_website` AS cw ON cw.website_id = cs.website_id
LEFT JOIN (
SELECT CONCAT(ccd.`scope`, '-', ccd.`scope_id`) AS `scope_scope_id`, `scope`, `scope_id`, `value`,
IF(ccd.`scope` = 'stores', 3, IF(ccd.`scope` = 'websites', 2, 1)) AS `level`
FROM `core_config_data` AS ccd WHERE ccd.`path` = 'web/unsecure/base_url' ORDER BY `level` DESC
) AS `ccd_base_url`
ON (ccd_base_url.`scope` = 'default' OR ccd_base_url.`scope` = 'websites' AND ccd_base_url.`scope_id` = cw.`website_id`
OR ccd_base_url.`scope` = 'stores' AND ccd_base_url.`scope_id` = cs.`store_id`)
LEFT JOIN (
SELECT CONCAT(ccd.`scope`, '-', ccd.`scope_id`) AS `scope_scope_id`, `scope`, `scope_id`, `value`,
IF(ccd.`scope` = 'stores', 3, IF(ccd.`scope` = 'websites', 2, 1)) AS `level`
FROM `core_config_data` AS ccd WHERE ccd.`path` = 'design/package/name' ORDER BY `level` DESC
) AS `ccd_design_package`
ON (ccd_design_package.`scope` = 'default' OR ccd_design_package.`scope` = 'websites' AND ccd_design_package.`scope_id` = cw.`website_id`
OR ccd_design_package.`scope` = 'stores' AND ccd_design_package.`scope_id` = cs.`store_id`)
LEFT JOIN (
SELECT CONCAT(ccd.`scope`, '-', ccd.`scope_id`) AS `scope_scope_id`, `scope`, `scope_id`, `value`,
IF(ccd.`scope` = 'stores', 3, IF(ccd.`scope` = 'websites', 2, 1)) AS `level`
FROM `core_config_data` AS ccd WHERE ccd.`path` = 'design/theme/layout' ORDER BY `level` DESC
) AS `ccd_design_theme_layout`
ON (ccd_design_theme_layout.`scope` = 'default' OR ccd_design_theme_layout.`scope` = 'websites' AND ccd_design_theme_layout.`scope_id` = cw.`website_id`
OR ccd_design_theme_layout.`scope` = 'stores' AND ccd_design_theme_layout.`scope_id` = cs.`store_id`)
LEFT JOIN (
SELECT CONCAT(ccd.`scope`, '-', ccd.`scope_id`) AS `scope_scope_id`, `scope`, `scope_id`, `value`,
IF(ccd.`scope` = 'stores', 3, IF(ccd.`scope` = 'websites', 2, 1)) AS `level`
FROM `core_config_data` AS ccd WHERE ccd.`path` = 'design/theme/layout' ORDER BY `level` DESC
) AS `ccd_design_theme_template`
ON (ccd_design_theme_template.`scope` = 'default' OR ccd_design_theme_template.`scope` = 'websites' AND ccd_design_theme_template.`scope_id` = cw.`website_id`
OR ccd_design_theme_template.`scope` = 'stores' AND ccd_design_theme_template.`scope_id` = cs.`store_id`)
LEFT JOIN (
SELECT CONCAT(ccd.`scope`, '-', ccd.`scope_id`) AS `scope_scope_id`, `scope`, `scope_id`, `value`,
IF(ccd.`scope` = 'stores', 3, IF(ccd.`scope` = 'websites', 2, 1)) AS `level`
FROM `core_config_data` AS ccd WHERE ccd.`path` = 'design/theme/layout' ORDER BY `level` DESC
) AS `ccd_design_theme_skin`
ON (ccd_design_theme_skin.`scope` = 'default' OR ccd_design_theme_skin.`scope` = 'websites' AND ccd_design_theme_skin.`scope_id` = cw.`website_id`
OR ccd_design_theme_skin.`scope` = 'stores' AND ccd_design_theme_skin.`scope_id` = cs.`store_id`)
GROUP BY cs.`store_id`
ORDER BY cw.website_id, csg.group_id, cs.store_id
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment