Clienti

Definizione dei campi

I campi obbligatori sono contrassegnati da una matita. Le definizioni dei campi si basano sulla sintassi MySQL.

L'identificazione di un cliente esistente avviene tramite il numero cliente esterno (external) o il numero cliente interno (id). Se non viene trovata alcuna corrispondenza, viene creato un nuovo cliente.

id
int(11)
Numero cliente XONIC interno.
Se specificato ed già esistente → Aggiornamento. Vuoto o 0 → Nuovo cliente con AUTO_INCREMENT.
external
varchar(255)
Numero cliente esterno (ad es. proveniente da un sistema ERP/gestione merci come SelectLine).
Ha la precedenza su id durante l'abbinamento dei clienti esistenti.
email_address
varchar(255)
Indirizzo e-mail del cliente.
gender
char(1)
Sesso / Titolo
  • m: maschile (Signor)
  • f: femminile (Signora)
  • d: divers
nome
varchar(255)
Nome del cliente.
cognome
varchar(255)
Cognome del cliente.
pseudonimo
varchar(255)
Nome utente / Nome visualizzato del cliente.
password
varchar(255)
Password (in chiaro).
Viene salvata automaticamente in forma crittografata durante l'importazione. Se non viene specificata alcuna password, quella esistente viene mantenuta (in caso di aggiornamento) oppure non ne viene impostata alcuna (per i nuovi clienti).

Per i nuovi clienti con l'opzione « XML_PORT_NEW_CUSTOMER_MAIL=true » attivata, viene generata automaticamente una password e inviata tramite e-mail di benvenuto.
telephone
varchar(255)
Numero di telefono.
fax
varchar(255)
Numero di fax.
language
varchar(2)
Lingua del cliente come codice ISO-2.
  • de: Tedesco (predefinito)
  • en: inglese
Viene automaticamente convertito nel formato interno language_id.
group_id
int(11)
ID del gruppo clienti.
I gruppi di clienti possono essere definiti/aggiornati nel blocco <groups> del file XML.
default_address
int(11)
Indirizzo di consegna predefinito (ID rubrica).
Se non specificato, viene impostato automaticamente sul primo indirizzo importato.
billing_address
int(11)
Indirizzo di fatturazione (ID rubrica).
Se non specificato, viene impostato automaticamente sul primo indirizzo importato.
newsletter
tinyint(1)
Abbonamento alla newsletter
  • 1: Iscritto (crea/aggiorna la voce dell'abbonato alla newsletter). A partire dalla versione 4.9.168 del negozio, solo in assenza di blocco della newsletter o di opposizione alla pubblicità per l’indirizzo e solo per account attivi e non bloccati; un abbonamento confermato mantiene la conferma e il link di disiscrizione.
  • 0: Cancellazione. A partire dalla versione 4.9.168 del negozio, l’importazione cancella l’iscrizione sia nel negozio che presso il fornitore della newsletter e registra un’opposizione alla pubblicità: le importazioni successive rifiuteranno l’indirizzo, una nuova registrazione sarà possibile solo tramite l’e-mail di conferma. Fino alla versione 4.9.167 l’abbonamento veniva cancellato solo nel negozio.
  • ⚠️ Le e-mail promozionali provenienti da Marketing & Automazioni (xoMarketing) non tengono ancora conto dell’opposizione alla pubblicità nella versione 4.9 dello shop; questa funzionalità sarà disponibile a partire dalla versione 4.10.
  • ⚠️ Se un sistema di gestione delle scorte invia un’ 0 anche per gli indirizzi «non noti», disiscriverà così ogni registrazione effettuata dal negozio. In tal caso, inviare l’ newsletter solo per gli abbonamenti noti oppure ometterla.
customers_nl_lock
tinyint(1)
Blocco newsletter, solo con XSL personalizzato (l’XSL standard non fornisce questo campo).
  • 1: Imposta blocco. A partire dalla versione 4.9.171 dello shop, l'importazione dal file cancella tutte le iscrizioni dell'account, sia nello shop che presso il fornitore della newsletter; la risposta viene registrata in newsletter.locked_removed, mentre un errore presso il fornitore in unsubscribe_failed. Fino alla versione 4.9.170, l'importazione impostava solo il blocco, mentre l'iscrizione nello shop rimaneva attiva.
  • ⚠️ Le e-mail promozionali provenienti da Marketing & Automazioni (xoMarketing) non aggirano ancora il blocco in Shop 4.9; questa funzionalità sarà disponibile con Shop 4.10.
  • 0: revoca solo il blocco e non reinserisce nessuno.

Indirizzi

È possibile importare più indirizzi per ogni cliente. Ogni indirizzo viene specificato come nodo <address> separato all'interno del blocco <addresses>. Il primo indirizzo viene automaticamente impostato come indirizzo di consegna e fatturazione predefinito.

gender
char(1)
Titolo dell’indirizzo (m, f, d).
firstname
varchar(255)
Nome.
lastname
varchar(255)
Cognome.
azienda
varchar(255)
Nome dell'azienda.
Viene inoltre trasferito nel campo " customers_company " del record cliente.
tax_id
varchar(255)
Partita IVA (ad es. DE123456789).
street_address
varchar(255)
Via e numero civico.
postcode
varchar(10)
Codice postale.
città
varchar(255)
Città / Località.
suburb
varchar(255)
Quartiere / Frazione.
country_code
char(2)
Codice paese ISO 3166-1 Alpha-2 (ad es. DE, AT, CH).
Consigliato al posto del campo country.
country
varchar(255)
Nome del paese (alternativa a country_code).
Viene risolto internamente in country_id. Se non viene specificato né country_code né country, viene utilizzato il paese predefinito configurato nel negozio.
state
varchar(255)
Stato federale / Regione / Cantone.
zusatz1
varchar(255)
Informazioni aggiuntive sull'indirizzo 1 (campo libero, ad es. piano, edificio).
aggiunta2
varchar(255)
Dettaglio indirizzo 2.
complemento3
varchar(255)
Dettaglio indirizzo 3.

Gruppi di clienti

I gruppi di clienti possono essere definiti nel blocco opzionale « <groups> » prima dei dati dei clienti. I gruppi esistenti vengono aggiornati in base all'ID, mentre i nuovi gruppi vengono creati automaticamente.

id
int(11)
ID del gruppo. Vuoto per l’assegnazione automatica.
name
varchar(255)
Nome del gruppo di clienti.

Campi aggiuntivi

Tramite il blocco " <extra_fields>" è possibile trasmettere campi aggiuntivi sotto forma di coppie nome-valore. I seguenti campi vengono elaborati in modo specifico:

blocco documento
booleano
Blocca conto cliente.
  • true: Il cliente è bloccato (customers_lock = 1)
  • false: Il cliente è attivo (customers_lock = 0)
Responsabile di zona
varchar(255)
Assegnazione ai responsabili di zona.
Più responsabili di zona separati da punto e virgola. Prefisso S per il flag di superutente.
Esempio: EXT-001;SEXT-002;EXT-003
Il numero cliente esterno del responsabile di area viene convertito nell'ID interno.
numero_approvatore
varchar(255)
Numero cliente esterno dell’approvatore.
Viene convertito nell’ID cliente interno e salvato come relazione dell’approvatore.
castrolnr
varchar(255)
Numero cliente Castrol (specifico del settore).

Sconti (discounts)

A partire dalla versione 4.8.6 dello Shop, all’interno dell’elemento « <customer> » è possibile trasmettere un nodo opzionale « <discounts> ». Ogni voce « <discount> » corrisponde a una riga di sconto nel campo «Sconti» della gestione clienti (x % sulla categoria N).

Se nel negozio sono presenti più account cliente con lo stesso numero cliente esterno (ad es. più referenti di un’azienda), a partire dalla versione 4.8.8 dello Shop gli sconti trasmessi vengono applicati automaticamente a tutti gli account associati a tale numero. I restanti dati del cliente (nome, e-mail, indirizzi) non vengono modificati.

category_id
int(11)
ID della categoria a cui si applica lo sconto.
0 = Livello principale – insieme a subcategories = 1, lo sconto si applica all’intero assortimento.
value
decimale
Sconto in percentuale (campo obbligatorio).
È consentita la virgola decimale (ad es. 8,5). I valori superiori a 100 vengono limitati a 100, mentre quelli pari o inferiori a 0 vengono ignorati.
sottocategorie
tinyint(1)
Lo sconto si applica anche alle sottocategorie.
0 / 1, impostazione predefinita: 1.
qpb
tinyint(1)
Sconto applicabile anche ai prezzi scalari.
0 / 1, Impostazione predefinita: 0.
option
tinyint(1)
Sconto applicabile anche ai sovrapprezzi per le caratteristiche.
0 / 1, Impostazione predefinita: 0.
special
tinyint(1)
Sconto anche sulle offerte speciali (prezzi promozionali dalla gestione delle offerte speciali).
Non si applica ai prezzi personalizzati per i clienti – vedi nota sotto la tabella.
0 / 1, Impostazione predefinita: 0.

Per il nodo <discounts> si applica la semantica «Sostituisci, se presente»:

  • Nodo con voci presenti: l’intero elenco degli sconti del cliente viene sostituito.
  • Nodo vuoto (<discounts></discounts>): tutti gli sconti del cliente vengono rimossi.
  • Nodo mancante: gli sconti rimangono invariati – i collegamenti esistenti non modificano nulla.

Il flag di attivazione interno del cliente viene aggiornato automaticamente: gli sconti hanno effetto immediato nel negozio online.

Interazione con i prezzi personalizzati per cliente: per impostazione predefinita, uno sconto di categoria viene applicato in aggiunta a un prezzo personalizzato per cliente (lo sconto si riflette quindi sul prezzo del cliente). A partire dalla versione 4.8.8 del negozio, è possibile disattivare questa funzione tramite l’impostazione «Sconti di categoria sui prezzi personalizzati» nella configurazione del negozio: il prezzo personalizzato diventa quindi il prezzo finale ed è escluso dallo sconto.

Esempio all’interno dell’elemento « <customer> »:

<discounts>
  <discount>
    <category_id>0</category_id>
    <value>8,5</value>
  </discount>
  <discount>
    <category_id>22</category_id>
    <subcategories>0</subcategories>
    <value>15</value>
    <special>1</special>
  </discount>
</discounts>

Esempio XML

Il file XML deve rispettare la seguente convenzione di denominazione:
Customers(.)*.xml

Percorso di salvataggio: /xoport/xml/import/

Avviare l'importazione: /xpanel/xoport/import_customers.php (alias a partire dalla versione 4.8.6 dello shop: update_customers.php).

Il file è incorporato in un contenitore di tipo <customer_data><customers> — ogni cliente è un elemento <customer>(vedi esempio). A partire dalla versione 4.8.6 dello shop, viene accettato direttamente anche <customers> come elemento radice. Vengono scritti solo i campi presenti nel file — i campi dei dati anagrafici mancanti rimangono invariati (importazione delta, ad es. solo <external> + <discounts>); un campo trasmesso vuoto azzera il valore nello shop. A partire dalla versione 4.8.6, la risposta JSON segnala inoltre customers.imported / customers.skipped_unknown — imported: 0 indica un elemento radice errato o numeri cliente sconosciuti.
<?xml version="1.0" encoding="UTF-8"?>
<customer_data>

  <!-- Kundengruppen (optional) -->
  <groups>
    <group>
      <id>1</id>
      <name>Standardkunde</name>
    </group>
    <group>
      <id>2</id>
      <name>Premium</name>
    </group>
  </groups>

  <!-- Kundendaten -->
  <customers>
    <customer>
      <id></id>
      <external>ERP-12345</external>
      <group_id>1</group_id>
      <language>de</language>
      <gender>m</gender>
      <firstname>Max</firstname>
      <lastname>Mustermann</lastname>
      <email_address>max@example.com</email_address>
      <telephone>+49 371 123456</telephone>
      <newsletter>1</newsletter>
      <addresses>
        <address>
          <gender>m</gender>
          <firstname>Max</firstname>
          <lastname>Mustermann</lastname>
          <company>Meine GmbH</company>
          <tax_id>DE123456789</tax_id>
          <street_address>Hauptstraße 1</street_address>
          <postcode>09247</postcode>
          <city>Chemnitz</city>
          <country_code>DE</country_code>
          <state>Sachsen</state>
        </address>
      </addresses>
      <extra_fields>
        <extra_field>
          <name>belegsperre</name>
          <value>false</value>
        </extra_field>
      </extra_fields>
      <discounts>
        <discount>
          <category_id>0</category_id>
          <value>8,5</value>
        </discount>
      </discounts>
    </customer>
  </customers>

</customer_data>

Scarica la definizione XSL

Last updated: 18 ottobre 2026

Importa i dati dei clienti, inclusi indirizzi, gruppi di clienti e abbonamenti alla newsletter, nel tuo negozio XONIC tramite interfaccia XML. Supporta i codici cliente esterni per l'integrazione con sistemi ERP/WaWi.