Récemment
-
Configuration de wamp compatible presta.1.6.1.24 et PhenixSuite 1.6.2.25
Discussion générale61 -
bug installation bdd
Questions relatives à l'installation/upgrade13 -
Responsive sur liste des produits dans les commandes
Bugs & Améliorations2 -
affichage incorrect de produit personnalisé au panier
Bugs & Améliorations3 -
Erreur PHP à l'installation du module cedconnector
Bugs & Améliorations2 -
Problème calcul HT
Bugs & Améliorations18 -
MAJ .htaccess Apache 2.4 et 2.2
Nouvelles fonctionnalités5 -
Erreur SQL 1.6.2.23 -> 1.6.2.25
Questions relatives à l'installation/upgrade2 -
Calcul règle panier
Bugs & Améliorations1 -
Images sur les BL ne s'affichent pas
Bugs & Améliorations13 -
SQL [WARNING] MAJ 1.6.2.19 vers 1.6.2.25
Questions relatives à l'installation/upgrade3 -
Erreur - Le template d'e-mail suivant n'existe pas : /mails/fr/password_code.html [RÉSOLU]
Bugs & Améliorations3 -
Soucis ps_checkout (admin et front)
Bugs & Améliorations9 -
Erreur module block_cart en php8.2 mais pas en php7.4
Bugs & Améliorations7 -
Erreur SQL sur le Liens Modules et Service après upgrade a 1.6.2.25
Questions relatives à l'installation/upgrade3 -
Erreur SQL sur la requête The used table type doesn't support FULLTEXT indexes
Questions relatives à l'installation/upgrade3 -
Maj de 1.6.1.20 rien ne se passe
Questions relatives à l'installation/upgrade2 -
information mise en cache désactivée sur param 1-click-upgrade
Questions relatives à l'installation/upgrade3 -
Erreur SQL syntax at line 14
Questions relatives à l'installation/upgrade5 -
paramétrage des colonnes d'une commande en BO
PhenixSuite4
Prestashop 1.6 ajouter un code barre au bon de livraison.
-
Comment ajouter un code barre au bon de livraison
Je vais ici expliquer comment ajouter un code barre ( C128 ) dans vos bons de livraison, j'utiliserais ici un override on pourrait utiliser les hook sur les pdf mais dans un soucis d'encre utilisée, de ligne à modifier je préfère utiliser l'override.
- Faire un override de la classe PDFGeneratorCore et ajouter la méthode header dans l'override.
- Dans cette méthode ajouter le code suivant :
$style = array( 'position' => '', 'align' => 'C', 'stretch' => false, 'fitwidth' => true, 'cellfitalign' => '', 'border' => true, 'hpadding' => 'auto', 'vpadding' => 'auto', 'fgcolor' => array(0,0,0), 'bgcolor' => false, //array(255,255,255), 'text' => true, 'font' => 'helvetica', 'fontsize' => 8, 'stretchtext' => 4 ); if( $this->filename == 'deliveries.pdf' || substr($this->filename,0,3) == '#LI' ) { $this->write1DBarcode($this->id_customer.' '.$this->id_order, 'C128', '', '', '', 18, 0.4, $style, 'N'); } else { $this->writeHTML($this->header); }
Ajouter dans cet override :
public function createHeader($header, $object, $filename) { $order = new Order($object->id_order); $this->id_order = $order->id; $this->id_customer = $order->id_customer; $this->filename = $filename; $this->header = $header; }
Faire un override la classe PDF.php ajouter dedans :
public function render($display = true) { $render = false; $this->pdf_renderer->setFontForLang(Context::getContext()->language->iso_code); foreach ($this->objects as $object) { $this->pdf_renderer->startPageGroup(); $template = $this->getTemplateObject($object); if (!$template) { continue; } if (empty($this->filename)) { $this->filename = $template->getFilename(); if (count($this->objects) > 1) { $this->filename = $template->getBulkFilename(); } } $template->assignHookData($object); $this->pdf_renderer->createHeader($template->getHeader(),$object,$this->filename); $this->pdf_renderer->createFooter($template->getFooter()); $this->pdf_renderer->createPagination($template->getPagination()); $this->pdf_renderer->createContent($template->getContent()); $this->pdf_renderer->writePage(); $render = true; unset($template); } if ($render) { // clean the output buffer if (ob_get_level() && ob_get_length() > 0) { ob_clean(); } return $this->pdf_renderer->render($this->filename, $display); } }
Dans cette exemple vous n'afficherez plus le logo sur votre bon de livraison il sera remplacer par un code contenant l'id de la commande et l'id du client.
Voici à quoi ressemblera vos bon de livraison désormais :
En gros si le fichier à générer est un bon de livraison on affiche un code, sinon on garde le header des pdf.
Vous pouvez ajuster ceci selon vos besoins, nous nous servons de ces code barre pour mondial relay et expéditor.
- on pose le colis sur la balance,
- on flash le code barre
- l'étiquette sort directement sur l'imprimante thermique.