@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');
                    }
                }
            }

 

Le JoomlaDay 2010 s'est terminé dans la joie et la bonne humeur. Je tiens à remercier tous les organisateurs et les participants qui ont participé à la réussite de cette journée. Je suis très content d'y avoir pris part et comme promis je vous fournis le fichier de la présentation et le draft de la documentation qui vous permettra d'installer, de configurer et de personnaliser l'ensemble Joomla / Magento et ainsi permettre leur intégration (compte utilisateurs et homogénéisation visuelle):

Le dimanche 21 mars 2010 au Palais des Congrès de Bordeaux se déroulera le JoomlaDay, conférence Joomla avec des présentations et des ateliers sur différentes extensions et techniques pour utiliser Joomla et améliorer ou augmenter ses possibilités.

Diglin sera présent en tant que conférencier entre 14h45 et 16h15 et présentera les possibilités offertes par JFusion et ses plugins pour intégrer Joomla et Magento ainsi qu'une étude de cas avec la plateforme de cours sur Internet rissip.com.

Plus d'informations sur le site JoomlaDay.fr

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...

Malgré que je fasse partie de l'équipe de développement de JFusion et travaille sur l'intégration de Magento/Joomla auprès d'eux, je n'hésiterai pas à vous lister les trois principales applications possibles pour intégrer Joomla et Magento:

  • JFusion (gratuit): single sign on, interface visuel entre les deux applications, modularité, multi applications. Encore au stade de finalisation pour certaines nouvelles fonctionnalité, la prochaine release devrait être prévue d'ici le mois de septembre.
  • MageBridge (payant): même chose que JFusion mais plus axé sur l'intégration de ces deux applications. Je ne vois pas honnêtement en quoi ils sont meilleurs que JFusion, à part pour dire des co...ries sur JFusion ().
  • J!Mint (gratuit): un nouveau venu, encore en cours de développement (prévu d'ici fin 2009). Il semblerait qu'il s'appuie sur les webservices pour en faire l'intégration. Ce qui est techniquement remarquable mais qui doit avoir probablement tendance a être lent. Déjà que les gens trouvent Magento lent! Avec un peu d'optimisation ça se passe sans problème.

Sans discuter, il est clair que JFusion est la meilleure solution ou la moins pire (au choix). Je plaisante. C'est à vous de juger en fonction de vos compétences et besoins bien évidemment. Je trouve que l'avantage dans MageBridge est dans sa simplicité alors que JFusion propose l'intégration de plusieurs logiciels ce qui a aussi pour intérêt de diminuer les risques d'erreurs lors de synchronisation des utilisateurs.

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...

Bref historique

slr-idSpécialiste dans la conception et la création de sites internet depuis un peu plus de dix ans, j'ai participé à de nombreux projets tous aussi divers les uns que les autres: ecommerces, showcases (sites vitrines), événementiels et un portail intranet pour un organisme public. Ces projets ont souvent eu pour base des solutions Open Source, non pas uniquement pour des raisons de coûts mais également pour des raisons de qualité des applications et de leur possibilité à s'adapter aux besoins du moment. L'un des principaux intérêts de l'Open Source est cette accès au code source et l'apport qui peut en être fait pour augmenter les moyens de communications et d'intégration entre différentes applications ouvertes.

Nous avons tous pu observer l'évolution du Web ces dix dernières années, les amateurs se sont professionnalisés et les professionnels se sont efforcés à apporter une meilleure qualité de leurs prestations et proposent, parfois même, l'accès à leurs travaux. C'est ce que fait Varien grâce à son produit Magento. Son framework repose sur Zend Framework et Magento est l'une des premières applications à être diffuser publiquement avec ce framework. "Oui, nous le savons déjà!", en effet rien de nouveau. Mais ce n'est que l'introduction ;-). Ici commence la raison de ce site.

Lire la suite...