@Note: la solution ci dessous n'est pas 100% compatible avec les modules tiers tel que GoogleBase. J'y travaille encore, vous pouvez cependant analyser la note de bas de page pour aider à trouver une solution propre. Cependant si vous êtes très pressé, voici une autre solution

Pour ceux qui rencontrent des difficultés avec leur backend de Magento et qui ont personalisé l'accès (exple: http://www.magento.com/backend/) grâce au fichier /app/etc/local.xml. Ils rencontreront probablement l'affichage d'une page 404 error - Page Not Found après avoir donné ses informations de login et mot de passe. Cette situation est présente seulement si vous avez activé dans la configuration de Magento, l'option qui force l'ajout du Store Code dans l'URL ( System > Configuration > Web > Url Options > Add Store Code to Urls - YES).

La solution est d'indiquer à Magento que l'on peut utiliser notre URL de backend personnalisé directement et sans prendre en compte le fait que c'est un Store Code. Il suffit pour cela de modifier le fichier local.xml de la manière suivante: {nom_backend_personalisé} = backend dans l'exemple http://www.magento.com/backend/

Ci-dessous un exemple de fichier local.xml:

<config>
    <global>
	...
         <request>
            <direct_front_name>
                <{nom_backend_personalisé} />
            </direct_front_name>
        </request>
     </global>
     <admin>
        <routers>
            <adminhtml>
                <args>
                    <frontName><![CDATA[{nom_backend_personalisé}]]></frontName>
                </args>
            </adminhtml>
        </routers>
     </admin>
</config>

Notez les Tags <request><direct_front_name>< {nom_backend_personalisé} /> </direct_front_name></request>.
< {nom_backend_personalisé} /> est un tag et non le contenu d'un élément XML.
Remplacez seulement {nom_backend_personnalisé} par backend (par exemple) ou autre.

Ainsi vous pouvez accéder à votre backend personnalisé sans cette erreur 404 pour les modules adminhtml

@developers:
If you want to deep more about this subject, take a look in the file /app/code/core/Mage/Core/Controller/request/Http.php line 148. The problem comes from here.

if ($this->_canBeStoreCodeInUrl()) {
                $pathParts = explode('/', ltrim($pathInfo, '/'), 2);
                $storeCode = $pathParts[0];
 
                if (!$this->isDirectAccessFrontendName($storeCode)) {
                    $stores = Mage::app()->getStores(true, true);
                    if ($storeCode!=='' && isset($stores[$storeCode])) {
                        Mage::app()->setCurrentStore($storeCode);
                        $pathInfo = '/'.(isset($pathParts[1]) ? $pathParts[1] : '');
                    }
                    elseif ($storeCode !== '') {
                        $this->setActionName('noRoute');
                    }
                }
            }

 

Suite à des problèmes avec des modules installés via Magento Connect/Pear et un déplacement de mon dossier de développement vers celui de production, je me suis rendu compte que des fichiers cachés de Pear possédaient l'ancien chemin d'installation de Magento. Donc si vous souhaitez pouvoir gérer vos modules après un déplacement de votre dossier de base de Magento vers un autre emplacement vous devez utiliser le script ci-dessous en utilisant la procédure expliqué ci-dessous. Ce script regénèrera les fichiers de registre des canaux de pear et modifiera le contenu avec le nouveau chemin de votre dossier d'installation. On en parle également dans ce forum de Magento.

Les fichiers pear sont sérialisés, alors il est nécessaire de les désérialiser de remplacer le contenu avec le nouveau chemin, de sérialiser à nouveau et sauvegarder les fichiers. Le script fournit fait tout ça pour vous.

Les fichiers de cache (filename.reg) sont dans ce dossier par example: /pearlib/php/.registry/.channel.connect.magentocommerce.com_community
Le script PHP-CLI analyse le dossier désiré qui réparera le chemin de chaque module pour modifier le chemin d'installation de chaque module installé via pear.

Vous devez fournir trois arguments: 
1) le chemin complet du dossier ‘shop/downloaders/pearlib’
2) Le texte à trouver (normallement le chemin de votre ancienne installation) 
3) Le texte à remplacer (normallement le chemin de votre nouvelle installation)

Exemple:

php -f un/serialize-pear-reg-files.php ‘/the_path_to_magento_installation/downloader/pearlib/php/.registry’ ‘/old_path/shop’ ‘/new_path/shop’

Les résultats sont sauvegardés dans des sous-dossiers nommés ‘new_serialized’. Les fichiers et dossiers .registry sont cachés dans les systèmes linux. Le script fournit a été testé sur les versions  1.3.2.2 et 1.3.2.3. Vous pouvez également utiliser ce script à partir de votre navigateur mais vous devez commenter certaines parties du code et décommenter d'autres (voir le script) ainsi que fournir directement les informations ci-dessus dans le script.

Fichiers : unserialize-pear-reg-files.php.zip (2.9 Ko)

Il y a un bug dans Paypal Standard pour Magento, après qu'un client a effectué le processus d'achat et validé son paiement sur Paypal. Le client ne reçoit pas l'email incluant sa facture. Il ne reçoit seulement qu'une confirmation de paiement et un message, après le processus de paiement, lui indiquant que sa commande va être traitée.

Pour résoudre ce problème, deux possibilités:
  • Soit ajouter dans la classe (en faisant une surcharge de cette classe dans un module à vous) Mage_Paypal_Model_Standard (app/code/core/Mage/Paypal/Model/) à la ligne 418 après $invoice->register()->pay();, la ligne suivante: $invoice->sendEmail();
  • Soit créer un évènement (event) à l'aide d'une classe Observer.php qui se déclenchera après l'évènement sales_order_invoice_pay, qui dans Paypal standard démarre à la ligne 418, après le traitement $invoice->register()->pay(). Pour cela, vous dever créer un module (il y a plein de tutoriaux sur Google pour savoir comment on fait) avec les fichiers suivants (remplacer Name par le nom de votre Module):
    • /app/code/local/Name/Sales/etc/config.xml
    • /app/code/local/Name/Sales/Model/Observer.php
    • /app/etc/modules/Name_All.xml

Lire la suite...

S'il y a bien quelque chose qui m'a étonné, c'est de voir que le mode de paiement Paypal apparraissait lors d'une commande (processus onepage checkout par exemple) dont le montant du panier d'achat est de 0. Ce scénario peut effectivement arrivé pour certains sinon Varien ne proposerai pas dans les modes de paiement de Magento l'option "No payment information is required". Je vous propose de changer ce comportement en ajoutant simplement trois fichiers dans votre installation de Magento.

Lire la suite...