Jump to content

[RISOLTO]Codice fiscale problema PS1.7.4.2


BlackTarmac RC

Recommended Posts

Ciao a tutti, ho PS1.7.4.2 con PHP ver 7.2 e sono alle solite con il problema del C.F.

Ho settato obbligatorio dni in clienti->indirizzi e in località -> italia ho impostato si su "richiesto campo codice fiscale"

Se il cliente è di nazionalità italiana durante l'iscrizione o compilazione indirizzi è tutto ok, ma se è straniero PS ritorna un messaggio di indirizzo non completo perchè evidentemente si aspetta che l'utente compili il campo codice fiscale che invece non è visibile.

Se tolgo la spunta dni obbligatorio tra clieni-> indirizzi quando il cliente è straniero è ok ma se è italiano il campo è opzionale e non obbligatorio.

A parte che ritengo scandaloso che PS non abbia ancora risolto definitaemente questo bug per l'italia e i paesi in cui è obbligatorio un codice fiscale, chiedo gentilmente se qualcuno ha qualche soluzione o se ha risolto.

Grazie mille

Edited by BlackTarmac RC (see edit history)
Link to comment
Share on other sites

Grazie sito lab per la risposta. Le impostazioni riportate nella tua guida sono già settati in questo modo. E così funziona ma il campo codice fiscale resta non obbligatorio, bensì opzionale.

Io invece vorrei che funzionasse nello stesso modo ma che fosse obbligatorio l'inserimento. Se si va a mettere obbligatorio il "dni" flaggandolo nella sezione indirizzi quando un utente è straniero viene restituito un messaggio di "indirizzo incompleto" perchè PS si aspetta che venga compilato un campo C.F. che però non è mostrato.

Spero di essermi spiegato.

 

Link to comment
Share on other sites

Confermo che é un PITA come dicono gli yankees!!:-)

 

Cmq ho risolto e trovandomi all'estero confermo che il CF non é obbligatorio..lo diventa quando seleziono il paese Italia al secondo step "Indirizzi"..se cambio paese ovviamente il campo codice fiscale sparisce.

 

Riepilogando nel primo step 1 Informazioni Personali compaiono Nome, Cognome, e mail obbligatori...Azienda e CF sono Opzionali...anche perché quá servono solo questi pochi dati per creare un account Guest....al secondo Step entrano in ballo gli indirizzi e quá c'e´da modificare una classe...eheh son sempre loro le incriminate.

Per cui al secondo step avremo il campo visibile e richiesto nominato "codice fiscale" solo se si seleziona il paese Italia...se mi trovo in Spagna per es questo campo non sará mostrato e neanche processato per cui non é solo nascosto.

 

Cosa fare??

classes/form

 

CustomerAddressFormatter.php

aggiungere il codice in rosso sotto indicato...piú o meno riga 94..vi ho indicato una porzione maggiore del codice cosí da trovarlo piú facilmente.

Attenzione: nel BO non dovete fare cose esoteriche ma tutto deve seguire la logica della piattaforma ossia abilitare il CF nel Paese Italia e non renderlo obbligatorio invece nella sezione clienti>indirizzi....mi sembra logico no?:-) altrimenti diventa una regola generale globalizzata e a Trump non piace:-)

 

Questo funziona sulla 1.7.4.2 

 

PS: attenzione questo andrebbe peró fatto non direttamente sulla classe ma bensí con il metodo dell'ovveride per cui ...al volo mentre stó scrivendo si tratta di ricreare uno file php con lo stesso nome e inserirgli dentro solo la funzione in oggetto ossia public function getFormat()..prendete tutto il codice incluso all'interno di questa funzione

quindi questo nuovo file lo caricate in Override/Classes/Form

tutto questo per evitare di perdere le modifiche al primo aggiornamento!!:-)

 

Fatemi sapere

 

foreach ($fields as $field) {
            $formField = new FormField();
            $formField->setName($field);

            $fieldParts = explode(':', $field, 2);
            
            if ($field === 'dni') { 
                if ($this-> country-> need_identification_number) {
                    $formField-> setRequired (true); 
                }
            } 

            if (count($fieldParts) === 1) {
                if ($field === 'postcode') {
                    if ($this->country->need_zip_code) {
                        $formField->setRequired(true);
                    }
                }
            } elseif (count($fieldParts) === 2) {
                list($entity, $entityField) = $fieldParts;

 

 

 

Edited by Fabry (see edit history)
Link to comment
Share on other sites

  • 4 months later...
On 8/28/2018 at 7:35 PM, Fabry said:

PS: attenzione questo andrebbe peró fatto non direttamente sulla classe ma bensí con il metodo dell'ovveride per cui ...al volo mentre stó scrivendo si tratta di ricreare uno file php con lo stesso nome e inserirgli dentro solo la funzione in oggetto ossia public function getFormat()..prendete tutto il codice incluso all'interno di questa funzione

quindi questo nuovo file lo caricate in Override/Classes/Form

Non mi è chiara questa parte. Ho effettuato l'operazione citata, ma il file CustomerAddressFormatter.php nella cartella classes/form lo devo lasciare originale o modificato? 

Link to comment
Share on other sites

On 8/28/2018 at 7:35 PM, Fabry said:

Confermo che é un PITA come dicono gli yankees!!:-)

 

Cmq ho risolto e trovandomi all'estero confermo che il CF non é obbligatorio..lo diventa quando seleziono il paese Italia al secondo step "Indirizzi"..se cambio paese ovviamente il campo codice fiscale sparisce.

 

Riepilogando nel primo step 1 Informazioni Personali compaiono Nome, Cognome, e mail obbligatori...Azienda e CF sono Opzionali...anche perché quá servono solo questi pochi dati per creare un account Guest....al secondo Step entrano in ballo gli indirizzi e quá c'e´da modificare una classe...eheh son sempre loro le incriminate.

Per cui al secondo step avremo il campo visibile e richiesto nominato "codice fiscale" solo se si seleziona il paese Italia...se mi trovo in Spagna per es questo campo non sará mostrato e neanche processato per cui non é solo nascosto.

 

Cosa fare??

classes/form

 

CustomerAddressFormatter.php

aggiungere il codice in rosso sotto indicato...piú o meno riga 94..vi ho indicato una porzione maggiore del codice cosí da trovarlo piú facilmente.

Attenzione: nel BO non dovete fare cose esoteriche ma tutto deve seguire la logica della piattaforma ossia abilitare il CF nel Paese Italia e non renderlo obbligatorio invece nella sezione clienti>indirizzi....mi sembra logico no?:-) altrimenti diventa una regola generale globalizzata e a Trump non piace:-)

 

Questo funziona sulla 1.7.4.2 

 

PS: attenzione questo andrebbe peró fatto non direttamente sulla classe ma bensí con il metodo dell'ovveride per cui ...al volo mentre stó scrivendo si tratta di ricreare uno file php con lo stesso nome e inserirgli dentro solo la funzione in oggetto ossia public function getFormat()..prendete tutto il codice incluso all'interno di questa funzione

quindi questo nuovo file lo caricate in Override/Classes/Form

tutto questo per evitare di perdere le modifiche al primo aggiornamento!!:-)

 

Fatemi sapere

 

foreach ($fields as $field) {
            $formField = new FormField();
            $formField->setName($field);

            $fieldParts = explode(':', $field, 2);
            
            if ($field === 'dni') { 
                if ($this-> country-> need_identification_number) {
                    $formField-> setRequired (true); 
                }
            } 

            if (count($fieldParts) === 1) {
                if ($field === 'postcode') {
                    if ($this->country->need_zip_code) {
                        $formField->setRequired(true);
                    }
                }
            } elseif (count($fieldParts) === 2) {
                list($entity, $entityField) = $fieldParts;

 

 

 

Non funziona sulla 1.7.5 - gli override sono attivati

Link to comment
Share on other sites

On 1/7/2019 at 1:25 AM, shon said:

Grazie mille per la risposta, il fatto è che ho provato e non funziona senza toccare il file originale nella cartella form. Forse dimentico qualcosa?

Ho risolto inserendo nella cartella Override/Classes/Form tutto il file originale con la modifica. 

Link to comment
Share on other sites

5 minutes ago, anto2812 said:

è quello che ho fatto anche io, ma niente da fare, versione Prestashop 1.7.5

hai pulito la cache dopo aver inserito il file modificato (per intero) nella cartella Override/Classes/Form?

Link to comment
Share on other sites

2 minutes ago, anto2812 said:

certo, è stato il mio primo pensiero, ho anche abilitato din negli indirizzi cliente, ma niente da fare il CF appare ma sempre come opzionale

Ho fatto dei test. Quando tolgo il file modificato dalla cartella Override/Classes/Form il CF mi diventa opzionale. Quando lo rimetto nella stessa cartella torna obbligatorio. Anche io ho la versione 1.7.5. Prova a vedere se hai effettuato tutto correttamente, riepilogando:

- copi il file CustomerAddressFormatter.php tale e quale dalla cartella classes/form e lo incolli nella cartella Override/Classes/Form
- il file che ora si trova nella cartella Override/Classes/Form lo modifichi aggiungendo la parte di testo in rosso come indicato sopra
- pulisci la cache e fine
- il CF dovrebbe ora essere obbligatorio e non opzionale
 

Link to comment
Share on other sites

ho riprovato, ma niente da fare anzi se tolgo il CF rimane sempre nel form and elimnando l'override, la voce dni, disabilito l'obbligatorietà del CF dalle Nazioni e tolgo la spunta dni dagli indirizzi cliente. 

Rimane nel form come opzionale e la cosa più curiosa è che se ripristino il layout di base (form nelle Nazioni) cmq non cambia niente

però ho installato il modulo gratuito per la fatturazione elettronica il che mi fa pensare che abbia il campo CF, però rimane opzionale qualcuno ha provato quel modulo con il codice fiscale?

grazie

Link to comment
Share on other sites

  • 1 month later...

Grazie Fabry,

ho testato questa soluzione e su prestashop 1.7.5 funziona bene...l'unico limite che ho è che in tutte le nazioni anche se facoltativo devo avere nell'indirizzo il campo dni altrimenti mi restituisce errore 500, e anche se spunto l'opzione non richiedere codice fiscale rimane sempre attivo...ora però con questa soluzione l'ITALIA non è facoltativo ma obbligatorio mentre per le altre rimane facoltativo e non è poco!Grazie

Link to comment
Share on other sites

Chiedo scusa ma io sto provando ad aggiungere il campo Codice Fiscale nel BO (Clienti->Indirizzi-Impostare i campi obbligatori per questa sezione -> flaggo dni) però una volta aggiornato e e facendo l'accesso come utente registrato (EDIT: anche come ospite) sul sito non mi appare il campo dove inserire il codice fiscale. Dove sbaglio? Uso PS 1.7.4.2 grazie

Edited by Francicu (see edit history)
Link to comment
Share on other sites

Ciao Francicu, provo a spiegare la procedura, per aggiungere il campo Codice Fiscale devi andare in : INTERNAZIONALE - LOCALITA' - NAZIONI.

Primo controllo: controlla quale nazioni hai attive, selezioni ITALIA, dentro trovi il FORMATO INDIRIZZO. Nel formato indirizzo devi aggiungere il campo dni e se vuoi tutti i campi che vuoi attivare ad esempio mobile_phone; email ecc...

Quindi DENTRO NAZIONI AGGIUNGI I CAMPI ALL'INDIRIZZO!

Attivi anche il flag RICHIEDI CODICE FISCALE? metti SI.

Attenzione a non confondere NAZIONI indirizzi ( dove aggiungi i campi) con CLIENTI indirizzi (dove imposti i vincoli di obbligatorietà)

Se vendi solo in ITALIA, puoi impostare dentro CLIENTI-INDIRIZZI come obbligatorio il campo dni ( ATTENZIONE questo Vincolo vale per tutti gli indirizzi inseriti ITALIANI, STRANIERI TUTTII! ma non nasce per rendere obbligatorio ai fini fiscali Italiani il campo DNI, nasce per rendere obbligatorio qualsiasi campo di qualsiasi indirizzo!)

Se vendi anche all'estero, mettendo Obbligatorio il campo dni, prestashop cercherà sempre questo campo come obbligatorio anche nei FORMATI indirizzi delle altre NAZIONI. ( NB dovrai aggiungere il campo dni a tutte le nazioni attive affinchè il cliente estero che registra il suo indirizzo non si ritrovi  un errore 500 del server)

( non è un ragionamento contorto come molti pensano perchè ad esempio con questo tipo di vincolo ti permette di rendere obbligatorio per tutte le nazioni un campo utile come ad esempio un cellulare)

Quindi ricapitolando se imposti obbligatorio il campo DNI, sarà obbligatorio per tutti, e questo non va bene per chi vende all'estero, per questo esiste il FLAG richiedi codice fiscale, impostandolo su SI e modificando la CLASSE come in questo tutorial solo chi ha il Flag su si avrà il campo obbligatorio ( come dovrebbe essere) per tutti gli altri sarà facoltativo se lo svincoli...

spero sia chiaro...

 

 

 

Link to comment
Share on other sites

1 ora fa, alexpacha dice:

Ciao Francicu, provo a spiegare la procedura, per aggiungere il campo Codice Fiscale devi andare in : INTERNAZIONALE - LOCALITA' - NAZIONI.

Primo controllo: controlla quale nazioni hai attive, selezioni ITALIA, dentro trovi il FORMATO INDIRIZZO. Nel formato indirizzo devi aggiungere il campo dni e se vuoi tutti i campi che vuoi attivare ad esempio mobile_phone; email ecc...

Quindi DENTRO NAZIONI AGGIUNGI I CAMPI ALL'INDIRIZZO!

Attivi anche il flag RICHIEDI CODICE FISCALE? metti SI.

Attenzione a non confondere NAZIONI indirizzi ( dove aggiungi i campi) con CLIENTI indirizzi (dove imposti i vincoli di obbligatorietà)

Se vendi solo in ITALIA, puoi impostare dentro CLIENTI-INDIRIZZI come obbligatorio il campo dni ( ATTENZIONE questo Vincolo vale per tutti gli indirizzi inseriti ITALIANI, STRANIERI TUTTII! ma non nasce per rendere obbligatorio ai fini fiscali Italiani il campo DNI, nasce per rendere obbligatorio qualsiasi campo di qualsiasi indirizzo!)

Se vendi anche all'estero, mettendo Obbligatorio il campo dni, prestashop cercherà sempre questo campo come obbligatorio anche nei FORMATI indirizzi delle altre NAZIONI. ( NB dovrai aggiungere il campo dni a tutte le nazioni attive affinchè il cliente estero che registra il suo indirizzo non si ritrovi  un errore 500 del server)

( non è un ragionamento contorto come molti pensano perchè ad esempio con questo tipo di vincolo ti permette di rendere obbligatorio per tutte le nazioni un campo utile come ad esempio un cellulare)

Quindi ricapitolando se imposti obbligatorio il campo DNI, sarà obbligatorio per tutti, e questo non va bene per chi vende all'estero, per questo esiste il FLAG richiedi codice fiscale, impostandolo su SI e modificando la CLASSE come in questo tutorial solo chi ha il Flag su si avrà il campo obbligatorio ( come dovrebbe essere) per tutti gli altri sarà facoltativo se lo svincoli...

spero sia chiaro...

Innanzitutto ti ringrazio per la pazienza ed il meticoloso tutorial, bene o male sono riuscita ad inserire il campo CF ma cosa intendi quando dici che non lo rende obbligatorio ai fini fiscali? A me servirebbe proprio per quei clienti che richiedono la fattura (privato, CF) azienda (p.iva/CF) quindi vorrei poi ritrovarmi il CF in fattura, questo avviene? Ed è meglio tenerlo obbligatorio oppure opzionale? Perchè dai test che ho effettuato ovviamente in fase di check out, prima di procedere con un acquisto durante l'inserimento dell'indirizzo devo obbligatoriamente inserirlo, se settato come obbligatorio, altrimenti non mi fa procedere. Giustamente. Quindi mi chiedo: ne vale la pena per l'utente? Oppure è meglio lasciare il campo come opzionale? In questo caso starà al cliente compilare questo campo, se vorrà richiedere fattura con quell'intestazione.

Poi un'altra cosa..non esiste alcun controllo sul codice fiscale? Penso ad un cliente che sbaglia ad inserirlo, per esempio. Al momento non mi interessa vendere all'estero quindi sto ragionando unicamente per il mercato italiano.Ti ringrazio!

Link to comment
Share on other sites

In Italia se fatturi hai bisogno del codice fiscale del cliente o della partita iva con ragione sociale....Prestashop ti permette di gestire questi campi all'interno della scheda NAZIONI->Indirizzi-> Formato indirizzo.....ok? Qua dentro inserisci DNI ecc...

Di default prestashop sotto questo campo ha un flag da settare che si chiama RICHIEDI CODICE FISCALE---se imposti questo campo su SI dovrebbe richiedere il codice fiscale per la nazione in questione come campo obbligatorio, ma questo non funziona forse è un bug, seguendo la guida sopra potrai fare in modo che le nazioni che hanno questo RICHIEDI CODICE FISCALE impostato su SI di default senza rendere obbligatorio il campo dentro INDIRIZZI CLIENTI richiedano obbligatoriamente ai clienti che si registrano il codice fiscale...

Ora proprio a causa di questo problema(Bug) per rendere obbligatorio il campo CODICE FISCALE l'unico modo( se non metti mano alle CLASSI e al Codice) è spuntare la casella dentro INDIRIZZI CLIENTI ma questo ti causerà qualche grattacapo con i clienti stranieri che non hanno un codice Fiscale da inserire, lo trovano "obbligatorio" si bloccheranno e abbandoneranno il tuo negozio....

Se non rendi obbligatorio il campo e se non metti mano al codice il campo codice fiscale anche se flagghi su SI in Richiedi codice fiscale rimane facoltativo  l'inserimento (bug)...a te la scelta!

Il mio consiglio è questo: Non rendere obbligatorio DNI dentro Indirizzi-clienti, segui la guida sopra, è semplicissimo e risolvi un problema che in futuro ti creerà grattacapi

Link to comment
Share on other sites

Se fatturi tutto a tutti vale la pena richiedere il campo Codice fiscale, se non fatturi tutto lascialo facoltativo.

Se il cliente sbaglia ad inserire il campo codice fiscale credo che non esista un modulo che ti faccia un controllo...

Se non fatturi tutto spesso è conveniente creare uno Status Emetti Fattura, separato da pagamento accettato ecc così chi vorrà la fattura la emetti al volo..

Link to comment
Share on other sites

A questo punto mi sa che emerge un altro problema che non avevo considerato.. Impostare come zona di vendita e spedizione unicamente l'Italia.. come posso fare per impostare tutto ciò? Quando ho inserito il corriere e le spese di spedizione ho flaggato unicamente ''Europa'' tra i paesi che mi venivano proposti, ma credo non basti...

Link to comment
Share on other sites

Beh certo che non basta assegnare l'Europa, le zone devono essere ben definite, le NAZIONI attive sono una cosa, le zone sono un altra, poi bisogna valutare quali sono le tue tariffe di spedizione, se sono legate al peso, al peso-volume o se preferisci al prezzo, definire le zone e come sono suddivise le zone...alcuni corrieri dividono ulteriormente le zone, avrai le zone ma anche i CAP, poi ci sono le isole, le zone disagiate, le zone periferiche ecc...credo ci sia  da studiare un po!

Link to comment
Share on other sites

26 minuti fa, alexpacha dice:

Beh certo che non basta assegnare l'Europa, le zone devono essere ben definite, le NAZIONI attive sono una cosa, le zone sono un altra, poi bisogna valutare quali sono le tue tariffe di spedizione, se sono legate al peso, al peso-volume o se preferisci al prezzo, definire le zone e come sono suddivise le zone...alcuni corrieri dividono ulteriormente le zone, avrai le zone ma anche i CAP, poi ci sono le isole, le zone disagiate, le zone periferiche ecc...credo ci sia  da studiare un po!

Potresti suggerirmi qualche link dove iniziare a documentarmi su questa cosa? Perchè riguardo le zone ne ho creata una nuova (Italia) e ad essa ho assegnato tutte le province italiane, deselezionando tutte quelle altre (zone) che non mi interessano (e che adesso mi ritrovo in mezzi di spedizione come ''non attive'') giusto?

Link to comment
Share on other sites

il procedimento è abbastanza semplice, è solo un pò macchinoso....I Corrieri in prestashop lavorano per Zone, quindi devi creare le zone che ti interessano ed associare alle zone le relative province....crei le zone in base alle tue tariffe, es: Italia, Italia Isole ecc... puoi associ ad ogni zona le province...poi in Spedizioni, mezzi di trasporto troverai  nella lista delle zone le zone che hai creato...setti le tariffe e hai completato l'inserimento...tutto qua...

Di default prestashop suddivide le zone solo in province, se vuoi delle suddivisioni più strette ad es. per CAP ti consiglio di acquistare dei moduli già pronti...esistono e funzionano bene...

Link to comment
Share on other sites

Grazie, dovrò approfondire questo aspetto allora. Invece come faccio per rendere visibile il mio sito almeno in Europa (ad esempio penso ad un cliente italiano residente all'estero). Immagino dalla tab localizzazione.. ma cosa devo spuntare? Geolocalizzazione tramite ip? Inoltre mi esce questo avviso: "Per utilizzare la Geolocalizzazione, si prega di scaricare questo file e di estrarlo (utilizzando WinRar o Gzip) nella cartella /app/Resources/geoip/."

Link to comment
Share on other sites

On 3/4/2019 at 3:50 PM, alexpacha said:

il procedimento è abbastanza semplice, è solo un pò macchinoso....I Corrieri in prestashop lavorano per Zone, quindi devi creare le zone che ti interessano ed associare alle zone le relative province....crei le zone in base alle tue tariffe, es: Italia, Italia Isole ecc... puoi associ ad ogni zona le province...poi in Spedizioni, mezzi di trasporto troverai  nella lista delle zone le zone che hai creato...setti le tariffe e hai completato l'inserimento...tutto qua...

Di default prestashop suddivide le zone solo in province, se vuoi delle suddivisioni più strette ad es. per CAP ti consiglio di acquistare dei moduli già pronti...esistono e funzionano bene...

ciao Alexpacha, mi puoi dire come si associano le zone alle province? Ho creato le diverse zone che mi interessano sul DB e le vedo nel backoffice, ma poi le province sono attivabili soltanto per Nazione. Ho provato a impostare le singole Regioni come Nazioni, ma non mi accetta il codice ISO perché IT è già utilizzato e non mi fa inserire per esempio IT-82 (codice ISO della Sicilia) perché il campo accetta soltanto 3 caratteri e soltanto lettere. Per caso hai risolto in qualche modo? grazie per una risposta

Schermata_2019-03-09_alle_13_25_43.png

Link to comment
Share on other sites

Salve Andrea,

é semplice...nel back office ha 3 tab> Zone, Nazione, Province ( queste ultime funzionano anche come distretti per es quá in Portogallo o Stati come in USA)....ok

Crea le varie zone coperte dal suo corriere e in base quindi a dove vuole vendere....per es una zona Italia ed un'altra con Italia Isole..se vende anche in Europa creerá Zona Europa con tariffe diverse...etc etc.

Poi la Nazione Italia per es la associa al Zona Italia ( se invece avesse costi di spedizioni identici per Europa e Italia allora creerá solo la Zona Europa e la zona Italia non server)

Per le province se ha una unica zona Italia andranno associate a Nazione>Italia..Zona>Italia

se ha zone differenti.....es Cagliari sará associata a Nazione>Italia....Zona>Italia Isole

 

spero che risolva!

 

ciao

Link to comment
Share on other sites

eccomi, sono arrivato tardi...non so perchè è sempre così ostico il settaggio dei corrieri, il corriere vuole le ZONE...dentro località trovi:

NAZIONI - ZONE - PROVINCE

Imposti NAZIONI - ITALIA attivata

Zone: crei le tue zone in base alle tariffe del corriere che utilizzerai ad esempio se il corriere ti fa tre prezzi diversi per l'italia, le isole e le isole minori crei ad esempio la ZONA PENISOLA ITALIANA + ZONA ISOLE  + ZONA ISOLE MINORI e Zone disagiate

Province: ogni provincia ha una nazione, una zona ecc imposti le province nelle zone appena create...ES: sassari andrà dentro la nazione italia-zona isole; Livigno andrà dentro isole minori...

tutto qua...

dopo dentro Spedizione----> Mezzi di spedizione troverai le zone create con la possibilità di selezionare per le tue zone i tuoi prezzi...

Se vuoi avere un ulteriore suddivisione in base al CAP devi acquistare un modulo aggiuntivo!

Link to comment
Share on other sites

5 hours ago, Fabry said:

De nada!:-)

Cmq esiste una guida ufficiale dove puó trovare informazioni utili:

 

http://doc.prestashop.com/display/PS17/User+Guide

 

Ciao

 

 

ho seguito le tue indicazioni e speravo di aver risolto, però facendo un ordine di prova mi dice che non ci sono vettori disponibili per l'indirizzo di consegna. Hai idea del perché? Ho anche un altro problema: se un cliente tenta di aggiungere un nuovo indirizzo (alcuni hanno più sedi) il browser restituisce questo errore: 

[PrestaShopException]

La proprietà Address->id_country è vuota.
at line 954 in file classes/ObjectModel.php

949.             }
950. 
951.             $message = $this->validateField($field, $this->$field);
952.             if ($message !== true) {
953.                 if ($die) {
954.                     throw new PrestaShopException($message);
955.                 }
956.                 return $error_return ? $message : false;
957.             }
958.         }
959. 

Schermata_2019-03-10_alle_01_23_32.png

Link to comment
Share on other sites

devi controllare il formato indirizzo:

Vai in nazioni ----- controlla le nazioni attive ----ti consiglio di impostare per in ogni nazione lo stesso formato indirizzo...devi avere: Nome , Cognome, DNI, Company, Country ecc ....verifica che in tutte le nazioni sia presente il campo COUNTRY...

Link to comment
Share on other sites

11 hours ago, alexpacha said:

mentre per il problema sui vettori, hai impostato bene i corrieri con  i prezzi per le zone create?

Grazie Alex per l'aiuto. Credo di sì (ti allego un paio di schermate). Ho notato che non tiene conto del corriere di default (non so se sia questo il problema e, nel caso, come risolverlo)

Schermata_2019-03-11_alle_09_06_25.png

Schermata_2019-03-11_alle_09_08_44.png

Schermata_2019-03-11_alle_09_09_40.png

Schermata_2019-03-11_alle_09_57_14.png

Link to comment
Share on other sites

  • 1 year later...

Riapro questo post perche continuo ad avere questo errore nonostante abbia fatto l'override della classe e pulito la cache.

ho la versione 1.7.4.2

ho messo anche nelle nazioni gli stessi campi compreso il dni ( obbligatorio solo per l'italia ) ma non cambia nulla.

immagine.png

Link to comment
Share on other sites

ciao Claus.

controlla di aver impostato correttamente la Nazione nel menù Località, la configurazione che a me funziona nel formato indirizzo contiene queste voci: 

firstname lastname
company
vat_number
address1
address2
postcode city
Country:name
State:name 
phone
dni
codice_destinatario pec

Ti allego anche una schermata

Schermata_2020-05-25_alle_01_10_31.png

Link to comment
Share on other sites

Già verificato ma provo a incollare lo stesso i tuoi campi.

L'unica cosa differente è che io per L'italia ho creato una zona a parte per gestire le spedizioni gratuiite rispetto l'europa.

Purtroppo il problema si verifica solo quando un cliente straniero cerca di fare un ordine.

Per l'Italia non ci sono problemi e ho incollato gli stessi campi ( tranne pec e sdi ) anche nella altre nazioni attive

Sembra che non prenda l'override della classe.

Link to comment
Share on other sites

niente...pensavo di aver risolto ma qualche cliente mi ha comunicato che in fase di inserimento va ancora in blocco.

questo maledetto dni crea un sacco di casini.

l'ho tolto tra i campi dei paese esteri ma ancora lo chiede.

 

 

immagine.png

Edited by claus (see edit history)
Link to comment
Share on other sites

  • 6 months later...

Stesso problema e non funziona.
Prestashop 1.7.6.8.

Ho seguito la guida punto punto per l'override ma niente. Il campo risulta sempre opzionale.
Anche io ho inserito l'Italia in una zona a parte per gestire i corrieri nazionali.
Per ora lo lascio opzionale per tutte le nazioni ma questa cosa è davvero noiosa.

Se qualcuno ha risolto davvero faccia sapere perché è incredibile questo problema nel 2020.

Link to comment
Share on other sites

4 hours ago, domechan said:

Stesso problema e non funziona.
Prestashop 1.7.6.8.

Ho seguito la guida punto punto per l'override ma niente. Il campo risulta sempre opzionale.
Anche io ho inserito l'Italia in una zona a parte per gestire i corrieri nazionali.
Per ora lo lascio opzionale per tutte le nazioni ma questa cosa è davvero noiosa.

Se qualcuno ha risolto davvero faccia sapere perché è incredibile questo problema nel 2020.

Salve

sulla sua versione non deve fare nulla di quello che avevo scritto sopra in quanto ora tutto funziona in forma differente!! é sufficiente renderlo obbligatorio in localizzazione>nazioni>Italia..e mettere la slide su SI

ciao

Link to comment
Share on other sites

  • 2 months later...

Salve,

per quanto concerne CF obbligatorio in fase di registrazione con versione 1.7.6.2 non riesco in alcun modo ad attivarlo, seguito varie procedure indicate in questo thread e altri ma nulla. Bottone Slider è su  "SI" e il "din", anche se lo tolgo riappare da solo... qualunque aiuto graditissimo!
Grazie Mille

Link to comment
Share on other sites

Ciao MatG,

onestamente io con 1.7.6.8 non ho risolto.

Da quando sono passato a 1.7.7.2 il problema si è risolto automaticamente, per l'Italia compare il campo ed è obbligatorio, per tutto il resto delle nazioni il campo scompare e non va compilato.

Brutto da sapere ma (secondo me) con 1.7.6 non c'è soluzione.

Link to comment
Share on other sites

Ciao, cosa vuol dire anche se lo tolgo riappare da solo? 

In Internazionale->Località->Nazione->Italia vai su modifica e tra le cose richieste se inserisci DNI appare il campo codice fiscale. Con lo slider lo rendi obbligatorio. Prova a cancellare la cache. VAR-cache 

Per rendere "forzatamente" un campo obbligatorio devi andare su: 

Vendi->CLIENTI->INDIRIZZI e in basso trovi: rendi i campi obbligatori per questa sezione..qua se spunti DNI il campo diventa obbligatorio. Attenzione perchè diventa obbligatorio per TUTTI se vendi anche in altri paesi oltre l'italia anche negli indirizzi degli altri paese devi aggiungere il campo DNI altrimenti ti uscirà un errore.

Link to comment
Share on other sites

3 minutes ago, alexpacha said:

Ciao, cosa vuol dire anche se lo tolgo riappare da solo? 

 

Ciao, ho provato diverse volte a "ricominciare da capo" togliendo DNI, spuntando su NO all'obbligatorietà, forse pero' in questa operazione non ho pulito var-cache, ora riprovo per l'ennesima volta a rifare tutto (le altre operazioni le avevo fatte) intanto grazie

 

Link to comment
Share on other sites

Ciao, non so se cambi qualcosa ma come detto all'inizio io ho la versione 1.7.6.2, ho rifatto i passaggi consigliati e pulito cache ma ancora nessun miglioramento. Di nuovo grazie proverò a fare altre verifiche, vedere se faccio ancora qualcosa di sbagliato. Vi allego immagini delle schermate in questione.1850849405_Schermata2021-03-10alle15_57_22.thumb.png.31725e0b91495f879f79f583915cc700.png2015853016_Schermata2021-03-10alle16_02_30.png.1b790317f0447f8d57db1d7ec1a2db16.png

 

 

Schermata 2021-03-10 alle 15.56.33.png

Link to comment
Share on other sites

c'è qualcosa che non va, il campo DNI se lo metti sotto Phone deve trovarsi sotto TELEFONO non in alto...L'ordine dei campi deve essere rispettato...potrebbe essere un problema di cache...prova a riordinare i campi, rinominare la cartella var-cache in var->cache-old, cancellare la cache del browser e vedere cosa accade...

Schermata 2021-03-10 alle 20.50.03.png

Schermata 2021-03-10 alle 20.52.17.png

Link to comment
Share on other sites

  • 3 years later...

Buongiorno a tutti

ripreso dopo parecchio tempo lo store ma sono riusciti gli stessi problemi

versione prestashop 1.7.7.5

Sempre solito errore e non so se sia per il modulo Prestashop Checkout ufficiale dove ci sono anche le carte di credito

Ho abilitato il cf per l'italia obbligatorio  in locations-> country con il relativo campo dni

Impostato anche l'obbligatorietà nel campo Clienti indirizzi.

Facendo cosi però funziona se metto il cf anche per gli altri paese ( lavoriamo con l'europa quindi non posso lasciare solo l'italia )

 

 

immagine.png.91b08e85cf1a96c0d43d5dec4e60b800.png

 

ad esempio per l'inghilterra continua a chiedermelo nonostante nella nazione è presente il campo ma non è richiesto obbligatorio.

immagine.png.9561b73cb391fe4973a17dfd7d806591.png

 

immagine.png.5e0d14215701a16f2c1c3ab45f90e77a.png

Sto impazzendo con questo errore.

Spero qualcuno possa dare una mano.

Edited by claus (see edit history)
Link to comment
Share on other sites

Salve Claus

"Impostato anche l'obbligatorietà nel campo Clienti indirizzi."

Se attiva questa opzione risulta in una condizione globale dove sará obbligatorio per tutti i paesi 

 

Ammesso che il CF deve essere obbligatorio solo per l'IT deve:

disattivare a livello globale negli indirizzi l'obbligatorietá del cf

eliminare il campo dni dagli altri paesi in localizzazione

aggiungere il dni all'Italia in localizzazione e renderlo obblogatorio sempre in quell'area 

 

ciao

 

Link to comment
Share on other sites

Just now, Fabry said:

Salve Claus

"Impostato anche l'obbligatorietà nel campo Clienti indirizzi."

Se attiva questa opzione risulta in una condizione globale dove sará obbligatorio per tutti i paesi 

 

Ammesso che il CF deve essere obbligatorio solo per l'IT deve:

disattivare a livello globale negli indirizzi l'obbligatorietá del cf

eliminare il campo dni dagli altri paesi in localizzazione (  intendo Adress format)

aggiungere il dni all'Italia in localizzazione e renderlo obblogatorio sempre in quell'area 

 

ciao

 

 

  • Like 1
Link to comment
Share on other sites

Buongiorno Fabry

disattivato a livello globale e impostato solo a livello di paese , unicamente per l'italia con il suo campo dni al fondo.

immagine.png.6a1735276bfad2ac1e11b85925905d48.png

Per quanto riguarda lo uk rimosso il campo dni e ovviamente nessuna obbligatorietà

immagine.thumb.png.6a578d04a3c5c60ffbeed3bf66bf0ea2.png

e nel form infatti il campo non si vede piu ..
immagine.png.f5345adf8ef6fbd4a2c28db7d7d7cbb3.pngù

ma se procedo con il check out...

immagine.png.91f68e1bff4730be0197a58dd92b3708.png

potrebbe essere che cè ancora qualche paese che ha il dni tra i campi anche se non cè l'obbligatorietà?

 

 

Link to comment
Share on other sites

Ciao Claus.

 

ok intanto dia una bella ripulita alle maledette cache:-)

 

questo problema succede perché ci sono clienti che hanno questo campo vuoto

basta lanciare un query sul db e sostituire per es - dove é NULL...come?

UPDATE ps_addresses SET dni='-' WHERE dni IS NULL

 

Ma prima faccia backup del database!!

Link to comment
Share on other sites

4 minutes ago, Fabry said:

Ciao Claus.

 

ok intanto dia una bella ripulita alle maledette cache:-)

 

questo problema succede perché ci sono clienti che hanno questo campo vuoto

basta lanciare un query sul db e sostituire per es - dove é NULL...come?

UPDATE ps_addresses SET dni='-' WHERE dni IS NULL

 

Ma prima faccia backup del database!!

Pulizia cache come un mantra

io però non ho la tabella ps_addresses bensi ps_address

immagine.png.14276be3f6fcb8922760d4fabb713c8d.png

e se lancio il comando con il nome che ho io non vengono modificate le celle interessate.

immagine.png.42264cb2a82663f2b91c1e7744719064.png

Se uso ' ' invece che null va bene lo stesso?

 

Link to comment
Share on other sites

avevo trovato una quadra mettendo dni obbligatorio negli indirizzi , campo dni presente ma opzionale nei paesi ad eccezione dell Italia ma non riesco piu a farlo andare.

Magari era un incrocio di cache.
mi sfugge perche anche con il codice postato sopra messo in override , in altri paese al di fuori dell italia non ne tenga conto visto che è un campo opzionale.

Confermo che con Dni negli indirizzi , sia obbligatorio che senza , l'errore non esce nell italia.

Provo a disinstallare prestashop checkout che era comodo per via delle carte di credito

Link to comment
Share on other sites

Aggiorno sperando di trovare una soluzione.

Dal lato indirizzi dentro  l' account non ci sono problemi a inserirli nuovi indirizzi o modificarli, in tutti i paesi e con il codice fiscale obbligatorio per l'italia.

immagine.png.e3e7e3fe5eccf11634f20773ce6a85c9.png

 

Però in fase di check out il problema persiste, quindi potrebbe esserci un controller sul checkout che bypassa la regola sopra.?

 

immagine.png.3fec0340b31bbcf02f678d7f3f95f928.png

 

Link to comment
Share on other sites

sono riuscito a trovare un fix momentaneo togliendo il campo che ho messo in neretto dentro il file address.php nella cartella override/classes
 

è normale poi che abbia tutto sto override su questo file?

Quote

 

<?php
class Address extends AddressCore
{
    public $sdi;
    public $pec;
     
    public static $definition = array(
    
        'table' => 'address',
        'primary' => 'id_address',
        'fields' => array(
     
            'id_customer' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false),
            'id_manufacturer' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false),
            'id_supplier' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false),
            'id_warehouse' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false),
            'id_country' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true),
            'id_state' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId'),
            'alias' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => true, 'size' => 32),
            'company' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'size' => 255),
            'lastname' => array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32),
            'firstname' => array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32),
            'vat_number' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),
               'sdi' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'size' => 16),
            'pec' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'size' => 128),
            'address1' => array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'required' => true, 'size' => 128),
            'address2' => array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'size' => 128),
            'postcode' => array('type' => self::TYPE_STRING, 'validate' => 'isPostCode', 'size' => 12),
            'city' => array('type' => self::TYPE_STRING, 'validate' => 'isCityName', 'required' => true, 'size' => 64),
            'other' => array('type' => self::TYPE_STRING, 'validate' => 'isMessage', 'size' => 300),
            'phone' => array('type' => self::TYPE_STRING, 'validate' => 'isPhoneNumber', 'size' => 32),
            'phone_mobile' => array('type' => self::TYPE_STRING, 'validate' => 'isPhoneNumber', 'size' => 32),
            'dni' => array('type' => self::TYPE_STRING, 'validate' => 'isDniLite', 'size' => 16),
            'deleted' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),
            'date_add' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false),
            'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false),
        ),
    );

    protected $webserviceParameters = array(
        'objectsNodeName' => 'addresses',
        'fields' => array(
            'id_customer' => array('xlink_resource'=> 'customers'),
            'id_manufacturer' => array('xlink_resource'=> 'manufacturers'),
            'id_supplier' => array('xlink_resource'=> 'suppliers'),
            'id_warehouse' => array('xlink_resource'=> 'warehouse'),
            'id_country' => array('xlink_resource'=> 'countries'),
            'id_state' => array('xlink_resource'=> 'states'),
        ),
    );    
}

 

 

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...