Cookie
This website requires cookies to provide all of its features. For more information on what data is contained in the cookies, please see our Privacy Policy page. To accept cookies from this site, please click the Accept button below.
Se utilizzi Magento 2 per il tuo negozio elettronico e sincronizzi gli ordini con Danea EasyFatt, potresti aver riscontrato un problema con i numeri d'ordine molto elevati. Questo accade spesso quando hai viste negozio (store view) in lingue diverse, e Magento inizia a generare numeri d'ordine con prefissi differenti, come ad esempio:
Danea EasyFatt ha un limite massimo per i numeri d'ordine che può gestire, fissato a 2.147.483.647. Quando i numeri d'ordine superano questo valore, EasyFatt non è in grado di importarli, causando errori durante la sincronizzazione.
Messaggio di errore visualizzato:
Valore non valido:
Correggere il valore o premere il tast "Esc" per annullare la modifica
Per risolvere questo problema, è necessario ridurre la lunghezza di riempimento (pad-length) dei numeri d'ordine in Magento 2. In questo modo, i numeri d'ordine generati saranno più brevi e non supereranno il limite imposto da EasyFatt.
La lunghezza di riempimento si riferisce al numero minimo di zeri aggiuntivi assegnati a ciascun numero d'ordine come “riempimento” fino a quando il numero d'ordine diventa superiore alla lunghezza di riempimento di incremento scelta. Ad esempio:
Nell'ordine di cui sopra l'ID di incremento è composto dalle seguenti parti:
Aprire il file /vendor/magento/module-sales-sequence/Model/Sequence.php e trovare il codice:
/** * Default pattern for Sequence */ const DEFAULT_PATTERN = "%s%'.09d%s";
Modificare il valore di DEFAULT_PATTERN da 09 al valore desiderato, esempio 08 (valore minimo di compatibilità con Easyfatt):
/** * Default pattern for Sequence */ const DEFAULT_PATTERN = "%s%'.08d%s";
Importante
Aprire il file /app/code/Webprojectsol/DaneaEasyFatt/etc/di.xml e prima del seguente codice:
<type name="Webprojectsol\DaneaEasyFatt\Logger\Handler"> <arguments> <argument name="filesystem" xsi:type="object">Magento\Framework\Filesystem\Driver\File</argument> </arguments> </type>
Inserire il seguente codice:
<type name="Magento\SalesSequence\Model\Sequence"> <arguments> <argument name="pattern" xsi:type="string">%s%'.08d%s</argument> </arguments> </type>
Facendo attenzione a valorizzare la lunghezza di riempimento secondo il valore desiderato. Infatti, nel codice precedente è pari a 08.
Per concludere, è necessario compilare la soluzione Magento eseguendo il seguente comando da terminale:
php bin/magento setup:di:compile
Importante