Jump to content

Ean13


alextn

Recommended Posts

Ciao a tutti, Prestashop 1.7. Ho bisogno di modificare per ragioni che non sto spiegando la funzione isEan13 in modo che nel campo EAN 13 lettere e numeri possono essere inseriti senza alcun limite e controllo(al limite solo quello sul numero di caratteri). Ho aperto il file classes / validate / validate.php e modificato la funzione isEan13 in questo modo:


    funzione pubblica statica isEan13 ($ ean13)
    {
      return is_string ($ ean13);
    }


Inserendo numeri tutto ok, inserendo lettere di testo, ottengo sempre l'errore "Questo valore non è valido". Qualche aiuto per favore? PS
Cash svuotatata.
Link to comment
Share on other sites

Soluzione:

//////////////////////////////////////////////////////////////////////


FILE: classes/Validate.php

public static function isEan13($ean13)
{
return !$ean13 || preg_match('/^[0-9]{0,13}$/', $ean13);
}

MODIFICA IN 

public static function isEan13($ean13)
{
return !$ean13 || preg_match('/^[a-zA-Z0-9]{0,13}$/', $ean13);
}

//////////////////////////////////////////////////////////////////////


FILE: src\PrestaShopBundle\Form\Admin\Product/ProductOptions.php

  ->add('ean13', FormType\TextType::class, [
                'required' => false,
                'error_bubbling' => true,
                'label' => $this->translator->trans('EAN-13 or JAN barcode', [], 'Admin.Catalog.Feature'),
                'constraints' => [
                    new Assert\Regex('/^[0-9]{0,13}$/'),
                ],
                'empty_data' => '',
            ])

MODIFICA IN 

  ->add('ean13', FormType\TextType::class, [
                'required' => false,
                'error_bubbling' => true,
                'label' => $this->translator->trans('EAN-13 or JAN barcode', [], 'Admin.Catalog.Feature'),
                'constraints' => [
                    new Assert\Regex('/^[a-zA-Z0-9]{0,13}$/'),
                ],
                'empty_data' => '',
            ])

//////////////////////////////////////////////////////////////////////

Link to comment
Share on other sites

  • 10 months later...
On 5/4/2019 at 11:11 PM, hardware-store said:

ciao.

Scusa ma L'ean 13 e uno standard che non può avere lettere, ne di essere di meno di 13 o maggiore di 13 numeri semplicemente per una questione di standard e di fattori di ricerca.

Se avessi spiegato i motivi di avere nei codici a barre anche lettere forse era meglio.

Potresti trovarti con dei problemi non da poco nell'interscambio di dati tra i vari maketplace, plug-in ecc ecc.

Per la tua esigenza potresti invece prendere in considerazione il Code-128 composto da lettere enumeri basato su codice a barre ABC-abc-1234

Una ricerca mi ha portato inoltre a questo articolo che potrebbe interessarti

 

Immagine.png

Salve,

attualmente utilizziamo codici a barre di questo tipo: "P138122600600" (dunque 13 caratteri con 1 lettera iniziale) e dunque penso che il Code128 possa tornarci utile perché gli altri 3 campi in prestashop non accettano questo tipo di codice a barre quando l'andiamo ad inserire/scannerizzare.

Mi saprebbe dire come posso abilitare il campo Code128? La ringrazio.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...