Aspirant
Inscrit: 04/02/2003 13:31
|
Bonjour,
nous avons réalisé une petite modification dans Oledrion afin de mieux suivre les commandes payées par chèque (c'est à dire non réglées en ligne). En effet, d'une part, le module ne gardait pas de trace en base de données de l'information sur les paiements. D'autre part, il n'y avait pas la trace de la date de validation de la commande.
Les modifs suivantes ont donc été réalisées (sur une version 2.31 d'Oledrion)
Ajout de deux champs dans les tables d'Oledrion
- un pour garder en mémoire le type de paiement utilisé (en ligne ou par chèque). En effet, cette information recueillie lors de la commande n'est pas enregistré alors qu'il pourrait être utile de l'avoir pour les statistiques pour la suite ou pour savoir si une commande en attente été payée par chèque - un pour stocker la date de validation de la commande. Toujours dans le cas où le payement n’est pas effectué directement en ligne.
Ces deux nouvelles informations sont visibles lorsque l'on liste les commandes dans la partie administration du module.
1 - Ajout des champs dans la requête de construction
Dans sql\mysql.sql, ajout de deux champs dans la table oledrion_commands
ligne 137 'cmd_date_validation' date NOT NULL, 'cmd_paiement_mode' tinyint(1) unsigned NOT NULL,
2 - Ajout des champs dans la classe commande
Dans class\oledrion_commands.php Lignes 66-67 $this->initVar('cmd_date_validation',XOBJ_DTYPE_TXTBOX,null,false); $this->initVar('cmd_paiement_mode',XOBJ_DTYPE_INT,null,false); On renseigne le champs cmd_date_validation lors de la validation
Ligne 248 function validateOrder(oledrion_commands $order, $comment = '') { $retval = false; $order->setVar('cmd_state', OLEDRION_STATE_VALIDATED); $order->setVar('cmd_comment', $comment);
$order->setVar('cmd_date_validation', date("Y-m-d")); $retval = $this->insert($order, true); if($retval) { $this->updateStocks($order); $this->notifyOrderValidated($order, $comment); } return $retval; } 3 - Sauvegarde des informations de ces deux champs
checkout.php - ligne 163 if (intval($_POST['offline_payment']) == 0) { $commande->setVar('cmd_paiement_mode', '1');}
4 - Modification de l'administration
Dans admin\actions\orders.php On rappatrie les deux champs supplémentaires de la base de données pour pouvoir les afficher Ligne 90 $date_validation = formatTimestamp(strtotime($item->getVar('cmd_date_validation')), 's'); if ($date_validation=='01/01/1970'){$date_validation="-";} $paiement_mode = $item->getVar('cmd_paiement_mode'); if ($paiement_mode == 0){$paiement_mode="En ligne";} else {$paiement_mode="Chèque";}
On modifie l'affichage du tableau
Ligne 82 - les entêtes echo "<tr><th align='center'>"._AM_OLEDRION_ID."</th><th align='center'>"._AM_OLEDRION_DATE."</th><th align='center'>"._AM_OLEDRION_DATE_VALIDATION."</th><th align='center'>"._AM_OLEDRION_PAIEMENT_MODE."</th><th align='center'>"._AM_OLEDRION_CLIENT."</th><th align='center'>"._AM_OLEDRION_TOTAL_SHIPP."</th><th align='center'>"._AM_OLEDRION_ACTION."</th></tr>"; Ligne 96 - les données
echo "<td align='right'>".$id."</td><td align='center'>".$date."</td><td align='center'>".$date_validation."</td><td align='center'>".$paiement_mode."</td><td align='center'>".$item->getVar('cmd_lastname').' '.$item->getVar('cmd_firstname')."</td><td align='center'>".$oledrion_Currency->amountForDisplay($item->getVar('cmd_total', 'n')).' / '.$oledrion_Currency->amountForDisplay($item->getVar('cmd_shipping'))."</td><td align='center'>".implode(' ', $actions)."</td>\n";
5 - On met à jour le fichier langage admin.php
define('_AM_OLEDRION_PAIEMENT_MODE', "Paiement"); define('_AM_OLEDRION_DATE_VALIDATION', "Date validation");
Posté le : 21/05/2010 14:19
|