Par le

Voulez-vous générer la facture par nom de client au lieu des numéros ennuyeux ? C'est tellement simple - je vais vous montrer comment le faire!

Êtes-vous prêt? Suivez-moi.

Avant de faire quoi que ce soit d'autre, assurez-vous d'abord de sauvegarder votre site Web / votre fichier. Quand vous avez fini, allons-y.

Étape I - Modifier la fonction getFilename()

Ouvrez et éditez la fonction getFilename() dans votre-website/classes/pdf/HTMLTemplateInvoice.php en utilisant votre éditeur favori.

Étape II - Obtention de l'objet client: Fonction getFilename() (ligne 500):

  public function getFilename()
      {
          $id_lang = Context::getContext()->language->id;
          $id_shop = (int)$this->order->id_shop;
          $format = '%1$s%2$06d';
  

Changez-le pour:

  public function getFilename()
      {
          $id_lang = Context::getContext()->language->id;
          $id_shop = (int)$this->order->id_shop;
          $format = '%1$s%2$06d';
          $customer = new Customer((int)$this->order->id_customer);
  

Étape III - Retour avec le nom et le numéro

Regardez dans ce code:

  return sprintf(
              $format,
              Configuration::get('PS_INVOICE_PREFIX', $id_lang, null, $id_shop),
              $this->order_invoice->number,
              date('Y', strtotime($this->order_invoice->date_add))
          ).'.pdf';
  

Changez-le pour:

  return sprintf(
              $format,
              Configuration::get('PS_INVOICE_PREFIX', $id_lang, null, $id_shop),
              $this->order_invoice->number,
              date('Y', strtotime($this->order_invoice->date_add))
          ).'_'.$customer->firstname.'_'.$customer->lastname.'.pdf';
  

Finale - Profitez de votre résultat

Le nom de la facture sera IN_number_customername.pdf. Par exemple: IN000001_Natalia_Eva.pdf.

C'est cool, hein ? N'oubliez pas notre blog pour trouver les tutoriels utiles de Prestashop.

Voir la vidéo pour le changer plus facilement.

Bon week-end!