Vous pouvez simplement changer le nom du cookie adminhtml pour les sous-domaines.
Deux changements de fichier app/code/core/Mage/Core/Controller/Varien/Action.php
.
Dans les preDispatch
lignes de changement de fonction
/** @var $session Mage_Core_Model_Session */
$session = Mage::getSingleton('core/session', array('name' => $this->_sessionNamespace))->start();
à
$namespace = $this->_sessionNamespace.($_SERVER['SERVER_NAME']=='subdomain.example.com'?'_subdomain':'');
/** @var $session Mage_Core_Model_Session */
$session = Mage::getSingleton('core/session', array('name' => $namespace))->start();
En setRedirectWithCookieCheck
changement de fonction
/** @var $session Mage_Core_Model_Session */
session = Mage::getSingleton('core/session', array('name' => $this->_sessionNamespace));
à
$namespace = $this->_sessionNamespace.($_SERVER['SERVER_NAME']=='subdomain.example.com'?'_subdomain':'');
/** @var $session Mage_Core_Model_Session */
$session = Mage::getSingleton('core/session', array('name' => $namespace));
Et après cette recherche de texte
Mage::getSingleton('core/session', array('name' => 'adminhtml'));
dans tous les fichiers et remplacez-le par
Mage::getSingleton('core/session', array('name' => 'adminhtml'.($_SERVER['SERVER_NAME']=='subdomain.example.com'?'_subdomain':'')));
si des occurrences seraient trouvées.
.
devant du domaine, c'est important!