aide prestashop PhenixSuite Help
    • Catégories
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Recherche
    • S'inscrire
    • Se connecter

    Prestashop 1.6 ajouter un code barre au bon de livraison.

    Planifier Épinglé Verrouillé Déplacé Tutoriels
    1 Messages 1 Publieurs 1.5k Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • O Hors-ligne
      okom3pom legacy
      dernière édition par okom3pom

      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.

      1. Faire un override de la classe PDFGeneratorCore et ajouter la méthode header dans l'override.
      2. 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 :

      text alternatif

      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.

      1. on pose le colis sur la balance,
      2. on flash le code barre
      3. l'étiquette sort directement sur l'imprimante thermique.
      1 réponse Dernière réponse Répondre Citer 2
      • Premier message
        Dernier message
      bug
      26 sujets
      1.6
      24 sujets
      front-office
      11 sujets
      1.5
      8 sujets
      1.7
      5 sujets
      système
      4 sujets
      administration
      3 sujets
      hack
      3 sujets
      module
      3 sujets
      performance
      3 sujets
      smtp
      3 sujets
      transporteurs
      3 sujets
      dashboard
      2 sujets
      https
      2 sujets
      paypal
      2 sujets
      promotions
      2 sujets