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



