6
votes

Remplacer une méthode d'expédition - Qu'est-ce que je manque

J'ai déjà écrit de nombreux modules avant, mais pour une raison quelconque, mon module d'expédition ne remplace pas une méthode d'expédition magnéto exsive. Est-ce permis? Qu'est-ce que j'oublie ici? Le nom du module apparaît dans l'onglet Avancé de la zone de configuration, il est donc chargé, mais rien ne se passe. Toute astuce?

code

etc / modules / ssi_shipping.xml xxx

local / ssi / expédition / etc.xml xxx

local / ssi / expédition / modèle / porteur / table.php xxx


0 commentaires

5 Réponses :


1
votes

Vérifiez d'abord que le modèle est remplacé par le tout. Essayez ceci: xxx


2 commentaires

Où voudrais-je mettre ça? N'importe où sur la page?


Je garde un fichier autour de cela initialise le cadre mais me donne une "version de grattage" (une version presque clonée du fichier index.php) pour être rapide, vous devriez être capable de le mettre dans un modèle, par exemple, et d'aller bien. N'oubliez pas de le supprimer plus tard.



0
votes

Après avoir travaillé un peu, j'ai trouvé que le seul moyen de remplacer le contrôleur d'expédition était de faire dupliquer le fichier (et la structure du répertoire) dans le dossier de code local. Ensuite, je pourrais essentiellement modifier le code.

Je ne sais pas pourquoi Magento ne semble pas permettre la norme de remplacement de ces fonctions d'expédition, mais le moins il y a un travail autour.


1 commentaires

Je ne le recommande vivement pas. Il y a un moyen propre pour remplacer le transporteur, voir ma réponse.



12
votes

Il y a un moyen, mais ce n'est pas évident et m'a obligé de parcourir le module d'expédition Source:

Si vous regardez Mage_Shipping_model_config , vous découvrirez que le code utilisé comme paramètre pour mage: : GetModel () est pris à partir de la configuration du magasin. Ce code n'est pas le code standard comme 'Shipping / Carrier_Tablerate', de sorte que cela n'aide pas à déterminer comme d'habitude.

Vous devez maintenant trouver d'abord ce que ce code est. Par exemple, je voulais remplacer le porte-matriciate, alors je l'ai testé comme ça: xxx

Oui, vous pouvez mettre ce code n'importe où sur la page temporaire mais il est utile d'avoir Un fichier séparé pour de telles choses pouvant être exécutées à partir de la ligne de commande (commençant par MAGE :: App () pour initialiser Magento)

Dans mon cas, le code était matrixrate_shipping / porteur_matrixrate J'ai donc dû changer mon config.xml comme celui-ci: xxx

au lieu de xxx

bonne chance! Bonne chance!


1 commentaires

mate, merci pour celui-ci, cela m'a donné un mal de tête pendant un certain temps



0
votes

Cela fait longtemps que j'ai eu le même problème les derniers jours. Je voulais remplacer les méthodes d'expédition FreeShipping et Flattrate et, en plus de la réponse de Fab, j'ai dû ajouter le code suivant dans etc / config.xml. Dans mon cas, les valeurs d'origine sont situées dans l'application / code / noyau / mage / expédition / etc / config.xml. xxx

Les valeurs du modèle sont des exemples. Vous devez les remplacer par vos chemins corrects.


1 commentaires

Pouvez-vous s'il vous plaît partager ce qui est à l'intérieur de la classe d'expédition_carrier_fratrate



0
votes

Si quelqu'un d'autre est confronté à ce problème et est venu ici pour la solution, il ressemble à OP avoir utilisé Codepool dans le fichier de module où il devrait être Codepool (remarquez la capitale p ).


0 commentaires