magento set store id programmatically

46,941

Solution 1

After hours of huffing and puffing i was able to figure out a way to set the store id programatically :)

In the index.php file, (in your language specific folder), add the following:-

$store_id = 'your_store_id_here';
$mageRunCode = 'store view code';
$mageRunType = 'store';

Mage::app()->setCurrentStore($store_id);
Mage::run($mageRunCode, $mageRunType);

Hope someone will find this information useful :)

Solution 2

You will get all store details here

<?php
$allStores = Mage::app()->getStores();
foreach ($allStores as $_eachStoreId => $val) 
{
$_storeCode = Mage::app()->getStore($_eachStoreId)->getCode();
$_storeName = Mage::app()->getStore($_eachStoreId)->getName();
$_storeId = Mage::app()->getStore($_eachStoreId)->getId();
echo $_storeId;
echo $_storeCode;
echo $_storeName;
}
?>

To redirect to the specified store, you need to redirect the page along with the store code.

http://www.mywebsite.com/index.php/store_code/

Please check the template/page/switch/stores.phtml for more details

Solution 3

If the reason you're doing the htaccess stuff is so that you can generate URLs specific to each store, you may want to go with the configuration option that does that for you, should be in System > Config > Web

Share:
46,941
maximus 69
Author by

maximus 69

Updated on December 12, 2020

Comments

  • maximus 69
    maximus 69 over 3 years

    I am currently working on a magento site that is in 2 languages (French and Dutch). The approach I am taking is as follows:

    • Create a folder in the web root (named nl)
    • Import the index.php and .htaccess file to that folder
    • In the index.php I modify the following line:

      Mage::run('nl'); // to specify the store view i want to load
      

    When I check, the categories, CMS content etc are still in the default language. The following code:

    Mage::app()->getStore()->getName();
    

    returns the fr store's name.

    What is it that I'm doing wrong? I think a viable solution would be to set the store to run in index.php...

    Could someone please let me know how to load a store by ID?

  • maximus 69
    maximus 69 about 12 years
    Thanks for your reply Sarath, but i haven't enabled 'Add store code to url' in the admin so the above won't work..
  • Chiragit007
    Chiragit007 over 10 years
    Can you tell me the location where I should update this code ?
  • Pooch
    Pooch over 10 years
    You could also go with something like $store = Mage::getModel('core/store')->load([store id]); if you don't want to globally set the store to one thing for the whole app. This is handy if you're working with a few models like customers and products in the same code and you don't want to limit results to one store for everything.
  • jessedb
    jessedb about 9 years
    For some reason, setCurrentStore() wasn't working for me. Instead, I changed $mageRunType to 'group' and then used the store ID for the code. Hope that helps someone. This is with 1.8.1.0.
  • jruzafa
    jruzafa almost 8 years
    setCurrentStore() work for me in my case setCurrentStore('default')