Créez votre module personnalisé d’expédition Joomla Virtuemart

Laisser une réponse »

Si vous avez besoin de créer un module d’expédition personnalisé pour Joomla Virtuemart, voici quelques informations pour vous aider.

(Pour info, pour installer VirtueMart sur Joomla, il suffit de télécharger Virtuemart, vous dezippez l’archive, puis vous vous connectez en administrateur sur joomla, vous allez dans le menu extensions puis installer/desinstaller
et vous uploadez/installez le fichier virtuemart.zip)

Fichiers de base

Il y a 3 fichiers de bases pour créer un module d’expédition, que vous devrez placer dans :
/administrator/components/com_virtuemart/classes/shipping/
Une classe, un fichier d’information et un fichier de configuration.
Si vous voulez créer un module s’appelant expPerso nommez les fichiers ainsi :

  • expPerso.php (la classe expPerso)
  • expPerso.ini (versionning du module, créateur etc…)
  • expPerso.cfg.php (constantes de configuration du module)

Récupérez les 3 fichiers du module de base, renommez les et adaptez les… 😉

Une fois ces 3 fichiers placés, vous pourrez activer votre module dans composant -> VirtueMart -> configuration -> onglet shipping
virtuemart

Gérer les traductions

La page qui gère les traductions de l’interface d’ajout des taux d’expédition est :
/www/administrator/components/com_virtuemart/languages/shipping/french.php
Pour les erreurs, par exemple si un champs n’a pas été rempli, regardez le fichier
/www/administrator/components/com_virtuemart/languages/common/french.php

Créer de nouveaux taux

Le formulaire qui gère la création de nouveaux taux est :
/www/administrator/components/com_virtuemart/html/shipping.rate_form.php

Fichiers d’ajouts de taux

Les classes de fonctionnement sont :
/www/administrator/components/com_virtuemart/classes/ps_shipping.php qui contient les fonctions qui gèrent l’ajout/modification/suppression des taux
/www/administrator/components/com_virtuemart/html/shipping.rate_form.php qui est le formulaire html d’ajout (interaction avec ps_shipping.php)
/www/administrator/components/com_virtuemart/html/shipping.rate_list gère l’affichage des taux ajoutés.
Dans ce fichier, les entêtes sont gérés par le tableau $columns
[cc lang=’php’ width=’100%’]
$columns = Array( « # » => « width=\ »20\ » »,
«  » => « width=\ »20\ » »,
$VM_LANG->_(‘PHPSHOP_SHIPPING_RATE_LIST_CARRIER_LBL’) =>  »,
$VM_LANG->_(‘PHPSHOP_SHIPPING_RATE_LIST_RATE_NAME’) =>  »,
$VM_LANG->_(‘E_REMOVE’) => « width=\ »5%\ » »
);
[/cc]
Et les cellules par l’objet $listObj
[cc lang=’php’ width=’100%’]
$listObj->addCell( $db->f(« shipping_rate_value »));
[/cc]
Notez que les constantes, qui sont donc par convention en majuscules comme PHPSHOP_SHIPPING_RATE_LIST_CARRIER_LBL sont traduites grâce aux fichiers de traduction que j’ai présenté plus haut, alors que $db->f(« shipping_rate_value ») correspond à un champ en base de données

La classe expPerso

Au début je vous ai parlé de expPerso.php qui contient la classe expPerso. Ce fichier contient la requête qui après validation de la commande affiche les possibilités d’expéditions.

exemple un morceau de la requête qui affiche un les frais d’expédition en fonction du poids de la commande
[cc lang=’php’ width=’100%’]
$q .= « shipping_rate_weight_start < = '" . $d["weight"] . "'AND " ; $q .= "shipping_rate_weight_end >= ‘ » . $d[« weight »] . « ‘ » ;
[/cc]
Pour utiliser le montant de la commande appelez tout simplement la variable globale $total
[cc lang=’php’ width=’100%’]
function list_rates( &$d ) {
global $total;
[…]
[/cc]

Le code postal, lui par exemple est déjà récupéré par la requête

[cc lang=’php’ width=’100%’]
$zip = $dbc->f( « zip » ) ;
[/cc]

Bon, voilà de quoi vous éclairer un peu, maintenant à vos claviers pour faire vos modifications…



ShareThis

Publicité

Laisser un commentaire