[CONTRIBUTION] Reclamaposte, Demande de remboursements des colis livrés en retard. |
Bienvenue invité ( Connexion | Inscription )
[CONTRIBUTION] Reclamaposte, Demande de remboursements des colis livrés en retard. |
25 Jan 2009, 17:46
Message
#1
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
1ère ébauche de Réclamaposte !
Pour donner suite à ce post qui stagnait : http://www.oscommerce-fr.info/forum/index....showtopic=59046 Un petit clin d'oeil à Regne au passage (où es tu ?) et à Mosaïc qui nous ont aidé à automatiser au maximum Après avoir essuyé des déboires avec des logiciels payants, voici une contrib permettant de générer automatiquement une demande de remboursement auprès des services postaux français. - Un fichier de réclamation est automatiquement généré au format PDF avec papier à entête et listing détaillé demande de remboursement Sauts de pages gérés Numéros de commandes, de colis, date d'expedition, de réception du colis, jours de retard etc... Nécessite les fichiers images (je ne m'étale pas... ) qui sont la clé de la contrib. Me les demander ou les demander à Regne. J'invite les prochains intervenants dans ce topic à faire savoir qu'ils ont a disposition ces fichiers afin de se partager les envois PHP 5 Requis - Merci de ne pas me parler de file_put_contents, PHP4 est obsolète Nécessite l'excellente contribution FPDF (testé avec la version v1.53) C'est un premier jet, fonctionnel, mais il y a des amélioration à faire, notamment sur la gestion des remboursements reçus. Mode d'emploi : Dézipper à la racine de votre admin. Installer fpdf dans ce même répertoire (ce qui fera admin/fpdf) Executer la requête SQL qui rajoutera un champ laposte dans orders_history. La contrib a été fait pour fonctionner avec Tracking in order history 1.0 de CHAVEIRO. Mais un simple champ track_num avec le numéro de colis dans l'historique suffit. Editer au besoin dans reclamapost.php et reclamapost_pdf.php le chemin vers votre répertoire temporaire. Editer votre menu préféré (par exemple admin/includes/boxes/tools.php) et ajouter reclamapost.php. Editer le fichier includes/languages/french/reclamaposte_pdf.php pour personnaliser votre document PDF. Les utilisateurs de admin access level devront bien entendu autoriser les fichiers reclamapost.php et reclamapost_pdf.php. Lien vers la contrib : http://addons.oscommerce.com/info/6502 Edit : Premier petit bug connu créer un fichier vide laposte.list.txt avec les droits en écriture dans le répertoire temporaire précité Ce message a été modifié par delete - 26 Jan 2009, 13:21. |
|
26 Jan 2009, 10:14
Message
#2
|
|
Ceinture orange+ OSC Groupe : Membres Messages : 470 Inscrit : 30-May 07 Membre no 17519 |
Salut,
Je me cache...lol... beaucoup de boulot et de développement... donc je suis toujours la mais incognito... Je vais tester tout ça des que j'ai un peu de temps et je ferai un retour... |
|
26 Jan 2009, 13:44
Message
#3
|
|
Ceinture marron OSC Groupe : Membres Messages : 1448 Inscrit : 12-March 05 Lieu : Chuiche Membre no 5120 |
Ton projet m interesse, j'y pensais d'ailleurs dernierement quand j ai du retaper à la main les colissimo en retard afin de faire une réclamation
Bref, pas le temps cette semaine pour cause de ski intensif, mais je regarde dès que je peu. Par contre je vais utiliser file_put_content avec le hack php5->php4, donc pas d impact sur la contrib. Pour les images, je ne les ai pas, mais faut il rendre la contrib compatible avec e-como qui utilise toujours du texte pour le moment ? Pour le fichier, peut etre un file_exists et création du fichier si négatif?? Je reviens dès les test réels. |
|
26 Jan 2009, 15:06
Message
#4
|
|
Ceinture marron OSC Groupe : Membres Messages : 1448 Inscrit : 12-March 05 Lieu : Chuiche Membre no 5120 |
Bon je me réponds car j ai eu un peu pus de temps libre que prévu
D'abord pour PHP4, ajouter en début du fichier reclamaposte.php: Code if(!function_exists('file_put_contents')) { function file_put_contents($filename, $data, $file_append = false) { $fp = fopen($filename, (!$file_append ? 'w+' : 'a+')); if(!$fp) { trigger_error('file_put_contents - erreur écriture dans.', E_USER_ERROR); return; } fputs($fp, $data); fclose($fp); } } J'ai aussi rajouter define(TRACKING_DB_FIELD, 'tracking_id'); et utiliser la variable TRACKING_DB_FIELD dans les requetes plus loin car mon champ de tracking ne s'appelle par track_num!! Après une petite config de fpdf plus d'erreur, par contre je suppose qu'il faut le cron de regne pour que cela fonctionne ? reclamaposte scanne le fichier laposte.list.txt qui doit contenir les info des colissimo. Mais quand est ce que ce fichier est créé. Si un lien doit etre fait avec le cron de regne, ne faudrait pas plutot recuperer ces informations dans orders_suivi_colissimo ? |
|
26 Jan 2009, 15:56
Message
#5
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1819 Inscrit : 14-March 03 Lieu : Beaune (21200) Membre no 961 |
J'ai installé aussi ce matin la contrib. Un peu long (php 4, donc j'ai du mettre la même fonction qui va bien sur les put_content), installé la librairie cURL qui m'a valu une mise jour de php et d'Apache.
Fpdf s'installe en 2 secondes. Aucun problème. Bien renseigner le répertoire temporaire je lui ai rajouté la variable serveur SERVER['root']. A faire dans reclamaposte.php et reclamaposte_pdf.php. Tout fonctionne donc. 3 étapes. On vérifie l'état des commande, une liste sort avec des flags. On génère le pdf pour imprimer (et sauvegarder) la réclamation. Enfin, on met à jour la base de données pour indiquer les colis que l'on a réclamé. Pourquoi utiliser un CRON ? L'outil prend en compte les colis des 30 derniers jours. La contrib de Regne étant intéressante, mais ayant développé mon système il y a un an, il ne me fallait qu'une contrib de réclamation. Celle de Delete est donc complémentaire. -------------------- The hardest thing in this world is to live in it.
Force jaune devant, marron derrière J'ai touché le fond de la piscine Dans ton petit pull marine... |
|
26 Jan 2009, 16:27
Message
#6
|
|
Ceinture marron OSC Groupe : Membres Messages : 1448 Inscrit : 12-March 05 Lieu : Chuiche Membre no 5120 |
Pour le cron c'était une question. Si on l'utilise pour stocker les états du colissimo alors pourquoi ne pas s'en servir dans cette contrib.
J'avais un autre soucis en raison de la ligne if ( strlen($track_num) != 13 ) continue; car je track non seulement du colissimo mais aussi des lettre max, distingo et poste suisse !! A remplacer peut être par un regex vérifiant les 2 premiers caractères. Pour le repertoire tmp j'ai mis Code $tmp_dir = DIR_FS_ADMIN.'/tmp'; pour rester un peu plus standard avec osc et pouvoir visionner le répertoire (ce qui n est pas le cas du tmp de mon serveur mutualisé) Ce message a été modifié par Phocea - 26 Jan 2009, 16:34. |
|
26 Jan 2009, 17:08
Message
#7
|
|
Ceinture marron OSC Groupe : Membres Messages : 1448 Inscrit : 12-March 05 Lieu : Chuiche Membre no 5120 |
Je spamme mais bon
Petit ajout pratique dans reclamaposte_pdf.php changer Code $this->Cell(0,10, RECLAMAPOSTE_FOOTER, 0,0,'C'); par Code $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C'); et ajouter Code $pdf->AliasNbPages(); juste avant Code $pdf->Output(); Ce qui permet d'afficher le nb de page total. |
|
26 Jan 2009, 17:08
Message
#8
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
Voilà
- Ajout de l'adresse du client (obligatoire pour obtenir remboursement) - Ajout du support PHP4 - Correctif du fichier texte qui n'était pas créé par défaut - Ajout de la constante TRACKING_DB_FIELD merci à Phocea pour cette idée http://addons.oscommerce.com/info/6502 Comme me l'a fait remarqué Phocea ne pas oublier de changer le papier à entête dans admin/includes/languages/french/reclamaposte_pdf.php |
|
26 Jan 2009, 18:52
Message
#9
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 136 Inscrit : 4-August 04 Lieu : Strasbourg Membre no 2993 |
Bjr,
Petite question de béotien... La finalité de cette contrib ? se faire rembourser tous les colis qui mettent plus de 48 heures ? Ca marche ? et ça fait beaucoup en % de colis ? Merci ! Bruno -------------------- Merci !
Bruno -- Os commerce MS 2.2 et creload 6.15 en cours Contribs : include html 1.5 : Meta Tags 3.0 : Header Tags 2.4 : OscAffiliate : Birthday : SEO assistant : monthly sales report : Orders Editor : Gift Voucher : Batch pdf editor : catalogue pdf : ultimate Seo Url : Random new products : Comment toolbar : contreremboursement : boite défilante : Scroll Specials : Fancier Invoice & Packing Slip : Ot loyalty discount : Kelkoo : Le Guide.com : Froogle Data Feeder : Whos online enhanced + Flags : Order editor : Shopping cart enhancement : Thumbnail Category Browse : Rss reader : Rss News : Rss Feeder : New product icon : Product sold 1.0 : Multiple Products Manager : Admin comment toolbar : Customers by date : Sales report 2 : CDynamic Meta Tags : Dob dropdown : Articles Manager : File librairy : Faq :... |
|
26 Jan 2009, 19:05
Message
#10
|
|
Ceinture orange+ OSC Groupe : Membres Messages : 470 Inscrit : 30-May 07 Membre no 17519 |
Bon voila j'ai testé ... et ca marche pas !!
Alors j'ai d(abord eu un bug en generant le pdf : Some data has already been output, can't send PDF file donc voila j'ai corrigé en ajoutant : ob_end_clean(); dans reclamaposte_pdf.php Maintenant ca me genere le pdf tout bien... sauf que la liste des colis est vide. aucun colis listé alors que dans la page reclamaposte.php j'ai bien un colis (??) listé... je ne sais pas trop qu'elle resultat ca doit donner dans la page reclamaposte.php, mais il me semble que 1 seul colis de lsité ca fait un peu legé... a moins que ca les liste un par un ?? Quelqu'un peut il m'eclairer ? Merci d'avance Regne |
|
26 Jan 2009, 21:27
Message
#11
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
La finalité de cette contrib ? se faire rembourser tous les colis qui mettent plus de 48 heures ? Ca marche ? et ça fait beaucoup en % de colis ? Les logiciels payants annoncent 20%, moi, factuel, j'annonce 10 points. Bon voila j'ai testé ... et ca marche pas !! Je t'envoie un R.I.B. Alors j'ai d(abord eu un bug en generant le pdf : Some data has already been output, can't send PDF file donc voila j'ai corrigé en ajoutant : ob_end_clean(); dans reclamaposte_pdf.php Les réponses classiques sont dans la FAQ. Le ob_end_clean, c'est du Mercurochrome sur une jambe de bois. |
|
26 Jan 2009, 23:25
Message
#12
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1819 Inscrit : 14-March 03 Lieu : Beaune (21200) Membre no 961 |
Regne > As-tu bien renseigné la variable $tmpdir dans reclamaposte_pdf.php comme dans reclamaposte.php ? Je dis ça car ça m'est arrivé ce matin
-------------------- The hardest thing in this world is to live in it.
Force jaune devant, marron derrière J'ai touché le fond de la piscine Dans ton petit pull marine... |
|
27 Jan 2009, 00:04
Message
#13
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
|
|
27 Jan 2009, 01:24
Message
#14
|
|
Ceinture blanche+ OSC Groupe : Membres Messages : 20 Inscrit : 24-August 06 Membre no 11694 |
Bravo à tous,
J'avais de mon coté développé un système de ce type depuis plusieurs mois et je dois dire que le nombre de colis remboursé est assez impressionnant. Mon code ne fonctionne pas par tache cron, j'y vais de temps à autre et vérifie les colis en retard, puis les faxes (au 0329421588, numéro trouvé sur le forum). Le listing des colis en retard ne doit pas comporter plus de 5 réclamations(infos trouvés sur le forum) car sinon le traitement est semble t'il beaucoup plus long La date de mes demandes ainsi que celle de réponse de la poste sont aussi enregistré (pratique pour faire des re-réclamations). @+ |
|
27 Jan 2009, 01:32
Message
#15
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
Car sinon le traitement est semble t'il beaucoup plus long Je ne me suis pas géné aujourd'hui pour envoyer une demande de 70 remboursements. Hormis ça tu as certainemment raison et il est mieux de traiter les demandes régulièrement. La date de mes demandes ainsi que celle de réponse de la poste sont aussi enregistré (pratique pour faire des re-réclamations). C'est prévu dans la contrib, il n'y a plus qu'à faire ! |
|
27 Jan 2009, 01:35
Message
#16
|
|
Ceinture blanche+ OSC Groupe : Membres Messages : 20 Inscrit : 24-August 06 Membre no 11694 |
|
|
27 Jan 2009, 11:07
Message
#17
|
|
Ceinture orange+ OSC Groupe : Membres Messages : 470 Inscrit : 30-May 07 Membre no 17519 |
Salut,
Bon je sais pas si ce que je vais dire est c** ou pas.... J'ai retirer dans la requete sql de reclamapost.php le where statut!= livré, car avec le cron de suivi les commandes passe toutes seules en livré... Donc elles peuvent etre notifié comme livrée, mais avec du retard ?? Je suis dans le juste ou pas ? du coup j'ai une liste un peu plus consequente de commandes... (j'ai honte de le dire mais mon premier bug viens du faite que je n'avais pas changer le numero du statut livre et expedié... meaculpa !) |
|
27 Jan 2009, 11:27
Message
#18
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
J'ai eu le même problème que toi et j'ai supprimé ce champ ridicule.
Etant donné que cette contribution je la fait cohabiter avec une similaire à la tienne (Envoi automatique des N° Colissimo Suivi) mes commandes étaient donc en statut livré et donc n'apparaissaient non pas non plus dans la contribution reclamaposte en l'état ! Donc tu as fait la bonne manip |
|
27 Jan 2009, 12:00
Message
#19
|
|
Ceinture orange+ OSC Groupe : Membres Messages : 470 Inscrit : 30-May 07 Membre no 17519 |
Je suis trop fort lol le mec modeste...
Sinon j'ai vu un autre petit bug, dans la liste des colis dans le pdf, si le client a une adresse avec complement d'adresse la fin de l'adresse empiète sur la ligne du dessous... |
|
27 Jan 2009, 12:41
Message
#20
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1819 Inscrit : 14-March 03 Lieu : Beaune (21200) Membre no 961 |
Bug remonté.
Pour ma part, cela me fait un décalage sur une des page qui est toute blanche. -------------------- The hardest thing in this world is to live in it.
Force jaune devant, marron derrière J'ai touché le fond de la piscine Dans ton petit pull marine... |
|
27 Jan 2009, 13:05
Message
#21
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1819 Inscrit : 14-March 03 Lieu : Beaune (21200) Membre no 961 |
Nouvelles modifications :
- Pour ne récupérer que les colis envoyés en France, car comme vous le savez les réclamations sont impossibles en International et en DOM. remplacer dans reclamaposte.php ligne 415 : Code $orders_query = 'select o.`orders_id`, o.`orders_status`, o.`customers_email_address`, o.`date_purchased`, o.`customers_name` from ' . TABLE_ORDERS . ' o where DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_purchased and orders_status = "' . $status_sent . '" or orders_status = "'. $status_shipping_progress . '" and orders_status != "'. $status_delivery . '";'; par Code $orders_query = 'select o.`orders_id`, o.`orders_status`, o.`customers_email_address`, o.`date_purchased`, o.`customers_name` from ' . TABLE_ORDERS . ' o where DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_purchased and delivery_country = "France" and orders_status = "' . $status_sent . '" or orders_status = "'. $status_shipping_progress . '" and orders_status != "'. $status_delivery . '";'; Si vous avez déjà installé la contrib, que vous avez déjà lancé la recherche de colis en retard et que vous expédiez à l'étranger (et que la contrib a trouvé des colis en retards en international), il va falloir vider laposte.remboursements.txt et laposte.list.txt pour que cette modification soit prise en compte. Ensuite, si comme moi vous utilisez le format d'adresse standard français dans votre boutique "Code Postal Ville" au lieu de (par défaut) "Ville, Code Postal", le pdf n'en tient pas compte. Il faut donc modifier dans reclamaposte_pdf.php la ligne 190 : Code $pdf->MultiCell(70, 5, tep_address_format(1, $order->delivery, '', '', "\n"), 0, 'L'); par Code $pdf->MultiCell(70, 5, tep_address_format($order->delivery['format_id'], $order->delivery, '', '', "\n"), 0, 'L'); Voila, vos adresses s'affichent correctement dans le pdf. -------------------- The hardest thing in this world is to live in it.
Force jaune devant, marron derrière J'ai touché le fond de la piscine Dans ton petit pull marine... |
|
27 Jan 2009, 15:02
Message
#22
|
|
Ceinture blanche OSC Groupe : Membres Messages : 14 Inscrit : 27-January 09 Membre no 24342 |
Bonjour,
Je ne suis pas propriétaire d'un site de commerce mais je me suis intéressé au suivi colis... kisscoolix sur un autre sujet traitant des dates avait effectué une modification du code pour pouvoir lire les états ( sans nécessité d'images supplémentaire ) et les dates. J'ai fait quelque modification de son code et j'ai ajouté les statuts que je connaissais.. une 20ene pour moi... Mon code permet seulement de voir les statuts des colis et non pas faire des réclamation mais puisque le script "reclamaposte" s'inspire du statut et des dates.. je poste ici ! Un exemple est disponible ici : http://tfourn.free.fr/colissimo/ ( ne pas mettre trop de colis car free ne permet pas d'augmenter le set time limite.. et mes sources sont dispo ici : http://tfourn.free.fr/colissimo/Suivilaposte.rar Le traitement par php_ocr est beaucoup plus fiable et permet un gain de temps... Mon code est normalement complètement commenté.. Si vous avez des remarques ou des demandes n'hésitez pas Edit : n'oubliez pas que cela est interdit par la charte du site coliposte... Ce message a été modifié par scarlaty - 27 Jan 2009, 15:06. |
|
27 Jan 2009, 15:26
Message
#23
|
|
Ceinture marron OSC Groupe : Membres Messages : 1448 Inscrit : 12-March 05 Lieu : Chuiche Membre no 5120 |
2 petits trucs
On peut remplacer la ligne Code if ( strlen($track_num) != 13) continue; par Code if (preg_match("/(8N|8U)[a-z0-9]{1,11}$/i", $track_num) == 0) continue; Ce qui permet de ne prendre en compte que les colissimo nationaux, et tracking de 13 de longueur. Il faudra peut être ajouter des cas autres que (8N|8U), je ne sais pas ce que ca donne pour colissimo expert etc... Une clef de config en haut de fichier peut faire l'affaire. Petit bug avec la colonne de tracking en define Code $order_history_query = 'SELECT o.`orders_id`, o.`' . TRACKING_DB_FIELD . '`, o.`date_added`, o.`laposte` FROM ' . TABLE_ORDERS_STATUS_HISTORY . ' o where orders_id="' . $orders_id . ' " and '.TRACKING_DB_FIELD.' != "" and laposte != "' . REMBOURSEMENT_DEMANDE . '";'; au lieu de Code $order_history_query = 'SELECT o.`orders_id`, o.`' . TRACKING_DB_FIELD . '`, o.`date_added`, o.`laposte` FROM ' . TABLE_ORDERS_STATUS_HISTORY . ' o where orders_id="' . $orders_id . ' " and track_num != "" and laposte != "' . REMBOURSEMENT_DEMANDE . '";'; ET 2 questions:
|
|
27 Jan 2009, 15:39
Message
#24
|
|
Ceinture orange+ OSC Groupe : Membres Messages : 470 Inscrit : 30-May 07 Membre no 17519 |
Citation (phocea) # Pourquoi mettre les images dans le repertoire image coté catalogue? Je pense qu'il a fait ca car ca part de la precedente contrib qui utilise deja ces images.... |
|
27 Jan 2009, 16:02
Message
#25
|
|
Ceinture blanche OSC Groupe : Membres Messages : 14 Inscrit : 27-January 09 Membre no 24342 |
#Faut il prendre en compte les cas ou le statut n'a pas été mis à jours malgré le dépassement de date? Je pense qu'il faut mieux attendre que le statut soit livré pour envoyer la réclamation... Le site de laposte ne doit pas être mis à jour en temps réel mais plutôt 1 à 2 fois par jour... Ce message a été modifié par scarlaty - 27 Jan 2009, 16:02. |
|
Version bas débit | Nous sommes le : 29th March 2024 - 17:04 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |