Integrazione software di fatturazione con website ecommerce
Autore: Abramo B.
Visite 4487,
Followers 1,
Condiviso 0
Salve, volevo chiedere ad un esperto se posso sfruttare la funzionalità che offre il mio programma di fatturazione "Danea Easyfatt" con website 5 dell'ecommerce sviluppato da website, clienti,fornitori, acquisti online, magazzino ecc, che il mio danea ha già come funzione di import ed export di cio' ma non so come farlo comunicare con il modulo che sviluppa website5..
Postato il
Autore
Per essere di aiuto posso inserire con un copia e incolla le specifiche che il danea richiede per la sua compatibilità:
Note preliminari per il formato XML
Il file XML deve essere codificato in UNICODE UTF-8 che prevede importanti regole nella codifica delle stringhe racchiuse tra tag:
I caratteri "&", "<", ">" sono riservati: se un testo contiene questi caratteri, bisogna sostituirli rispettivamente con "&", "<", ">".
In PHP è sufficiente utilizzare il comando seguente:
$string= htmlspecialchars("prova con caratteri riservati & < >", ENT_NOQUOTES, 'Windows-1252');
La maggioranza dei file di testo creati su sistemi Windows segue la codifica "Windows-1252"; questa codifica differisce dalla codifica UTF-8 per i caratteri con codice ASCII > 127, ad esempio il simbolo di € e le lettere accentate òàùéèìù.
In PHP per convertire una stringa da "Windows-1252" a "UTF-8" è sufficiente utilizzare il comando seguente:
$string= mb_convert_encoding("prova con caratteri €òàùéè", 'UTF-8', 'Windows-1252');
Quindi nella preparazione di un file da far importare ad Easyfatt, ogni campo inserito tra TAG deve essere prima codificato con:
$string= mb_convert_encoding(htmlspecialchars($string, ENT_NOQUOTES, 'Windows-1252'), 'UTF-8', 'Windows-1252');
...mentre per l'interpretazione di un file ricevuto da Easyfatt, è necessario eseguire l'operazione opposta:
$string= html_entity_decode(mb_convert_encoding($string, 'Windows-1252', 'UTF-8'), ENT_NOQUOTES, 'Windows-1252');
Versioni del tracciato
Le specifiche tecniche di interfacciamento tra Easyfatt ed il sito di e-commerce possono variare nel tempo per consentire l'aggiunta di nuove funzionalità. Versioni differenti delle specifiche vengono denominate "protocolli":
Questo è il primo protocollo realizzato (Giugno 2007).
Viene usato negli applicativi Easyfatt 2006 (a partire dalla rev. 17), fino a Easyfatt 2009 rev. 07 (compreso).
Questo è il secondo protocollo realizzato (Giugno 2009).
Viene usato a partire da Easyfatt 2009 rev. 08
Differenze
Il protocollo 2 introduce la possibilità di trasmettere il catalogo prodotti in modo incrementale e con la possibilità di inviare in upload le relative immagini. Se l'utente Easyfatt non sceglie l'opzione di invio incrementale, il tracciato Xml trasmesso sarà analogo a quello del protocollo 1 (con la sola differenza dell'attributo AppVersion="2").
Rispetto al protocollo 1, nel protocollo 2 la trasmissione di prodotti o clienti invierà esclusivamente record il cui campo <code> (codice) è valorizzato.
Nell'invio dell'elenco clienti e nella ricezione degli ordini non vi sono differenze (ad esclusione dell'attributo AppVersion="2").
Retrocompatibilità
Consigliamo di verificare che le procedure del sito siano in grado di gestire entrambi i protocolli, in questo modo sarà garantita la compatibilità anche con gli utilizzatori del precedente Easyfatt 2006. Sono pochi gli aspetti da controllare:
Autenticazione
Le credenziali di autenticazione (login e password) impostabili in Easyfatt per le operazioni di aggiornamento listini e di scarico ordini possono utilizzare l'autenticazione standard del web server (Basic, Ntlm o Digest).
Se questo tipo di autenticazione non viene gestito, l'applicazione del sito può comunque acquisire i dati di login e password trasmessi da Easyfatt nell'header delle richieste HTTP: a questo scopo viene inviato un header apposito, denominato HTTP_X_AUTHORIZATION, contenente login e password concatenati e separati da due punti (:), quindi codificati Base64.
Ad esempio con utente 'pippo' e password 'microcomputer', si avrebbe prima la concatenzione: 'pippo:microcomputer' e poi verrebbe calcolato il Base64: 'cGlwcG86bWljcm9jb21wdXRlcg=='.
E pertanto l'header sarebbe:
X-Authorization: cGlwcG86bWljcm9jb21wdXRlcg==
Scarica esempi per gestire l'autenticazione codificata Base64:
Trasmissione catalogo prodotti
La trasmissione avviene tramite l'invio al sito di e-commerce di un file XML contenente l'elenco dei prodotti con relative descrizioni.
Suggerimento: per verificare i tracciati prodotti, tramite Easyfatt (anche in versione dimostrativa), è possibile esportare gli articoli nel formato XML di seguito descritto. Per farlo è sufficiente accedere al menu Strumenti->E-Commerce->Aggiorna articoli e premere Salva su file.
Struttura del file invio catalogo prodotti XML
Il file XML e' una sequenza di oggetti Product all'interno delle liste Products oppure UpdateProducts e DeletedProducts, descritti nel dettaglio in seguito. L'attributo AppVersion indica la versione del protocollo usato. L'attributo Warehouse è presente solo se l'utente sta gestendo più magazzini ed in tal caso è specificato il magazzino che si sta aggiornando.
Quando l'invio è completo (ovvero vengono trasmessi tutti i prodotti), verrà usata esclusivamente la lista Products e l'attributo Mode dovrà essere valorizzato a full. Trasmissioni complete vengono fatte anche da versioni di Easyfatt che non supportano il protocollo 2, in questo caso l'attributo Mode sarà assente. Esempio:
<?xml version="1.0" encoding="UTF-8"?>
<EasyfattProducts AppVersion="2" Mode="full" Warehouse="Negozio">
<Products>
<Product>
[...]
</Product>
<Product>
[...]
</Product>
[...]
</Products>
</EasyfattProducts>
Quando viene ricevuto un flusso in modalità full, è importante provvedere ad eliminare tutti i prodotti presenti nel database del sito ed assenti nella trasmissione. E' altresì importante che rimanga sempre possibile eseguire un invio COMPLETO dei prodotti senza rischiare di perdere eventuali informazioni aggiuntive inserite nel catalogo prodotti on-line: se su alcuni prodotti sono stata compilate delle informazioni direttamente dal sito e-commerce perche' non disponibili in Easyfatt (ad esempio promozioni, foto delle categorie, garanzia, o altro...), è fondamentale che queste informazioni aggiuntive non vengano perse anche in caso di un invio completo di tutti i prodotti.
Quando l'invio è incrementale (vengono trasmessi solo i nuovi prodotti e quelli modificati o cancellati dall'ultima trasmissione), verranno usate le listeUpdateProducts (per i prodotti da aggiungere o aggiornare) e DeletedProducts (per quelli da eliminare). In questa modalità, l'attributo Mode è impostato suincremental. Esempio:
<?xml version="1.0" encoding="UTF-8"?>
<EasyfattProducts AppVersion="2" Mode="incremental">
<UpdatedProducts>
<Product>
[...]
</Product>
<Product>
[...]
</Product>
[...]
</UpdatedProducts>
<DeletedProducts>
<Product>
[...]
</Product>
<Product>
[...]
</Product>
[...]
</DeletedProducts>
</EasyfattProducts>
Esempio
<Product>
<InternalID>16</InternalID>
<Code>0016</Code>
<Description>Armadio Alto funzionalità a giorno</Description>
<Category>Complementi d'arredo</Category>
<Subcategory>Mobile</Subcategory>
<Vat Perc="21" class="Imponibile" Description="Aliquota 21%">21</Vat>
<Um>pz</Um>
<NetPrice1>105</NetPrice1>
<NetPrice2>85</NetPrice2>
<GrossPrice1>126</GrossPrice1>
<GrossPrice2>102</GrossPrice2>
<Barcode>AR</Barcode>
<SupplierCode>0054</SupplierCode>
<SupplierName>Il Mio Ufficio</SupplierName>
<SupplierProductCode>52-715-7845</SupplierProductCode>
<SupplierNetPrice>63</SupplierNetPrice>
<SupplierGrossPrice>75.6</SupplierGrossPrice>
<ProducerName>WoodThings</ProducerName>
<WarehouseLocation>Magazzino1</WarehouseLocation>
<Link>http://www.arredamenti.it/catalog?cod=52-715-7845
<SizeUm>cm</SizeUm>
<NetSizeX>90</NetSizeX>
<NetSizeY>133</NetSizeY>
<NetSizeZ>45</NetSizeZ>
<PackingSizeX>112.5</PackingSizeX>
<PackingSizeY>145</PackingSizeY>
<PackingSizeZ>50.7</PackingSizeZ>
<WeightUm>kg</WeightUm>
<NetWeight>4.5</NetWeight>
<GrossWeight>6</GrossWeight>
<ManageWarehouse>true</ManageWarehouse>
<MinStock>2</MinStock>
<AvailableQty>1</AvailableQty>
<OrderedQty>2</OrderedQty>
<CustomField2>5 Anni</CustomField2>
<CustomField3>Media</CustomField3>
<Notes>Versione di colore: Grigio, Acero, Struttura acero e profili in PVC color Grigio.</Notes>
<ImageFileName>15447.jpg</ImageFileName>
</Product>
Campi della sezione <Product>
InternalID
ID interno dell'applicazione.
Code
Codice prodotto (campo obbligatorio).
Barcode
Codice a barre (se diverso dal codice articolo).
Description
Descrizione prodotto in testo semplice.
DescriptionHTML
Descrizione prodotto in formato HTML
- Sono supportati i seguenti tag: p, br, a, b, i, u, ul, li, span
- Sono supportati gli attributi di colore e allineamento del testo
- Sono disponibili 4 classi di stile denominate: ef-titolo1, ef-titolo2, ef-titolo3, ef-titolo4
Per ciascun prodotto viene sempre compilato il tag <Description>, mentre il tag <DescriptionHTML> è opzionale (l'utente può scegliere se compilarlo o meno). Se il sito di e-commerce supporta il testo descrittivo in formato HTML, si dovrà quindi tenere conto di questo fattore.
Category
Categoria.
Subcategory
Sottocategoria.
Subcategory2...9
Ulteriori sotto-livelli di categoria (in Easyfatt vanno inseriti nel campo della sottocategoria, specificando i nuovi livelli con ">>", ad esempio: "Auto Italiane >> A gasolio >> Trazione integrale").
Vat
Codice IVA. Il codice è accompagnato dalle seguenti proprietà, il cui uso è facoltativo:
- Perc (percentuale di tassazione applicata)
- Class (classe: imponibile, non imponibile, intra-ue, extra-ue, esente, escluso, fuori campo, iva non esposta, rev. charge)
- Description: descrizione libera del codice Iva
Um
Unità di misura.
ProducerName
Nome del produttore .
Link
Link a file o pagina web con informazioni relative al prodotto.
CustomField1
Campo libero 1.
CustomField2
Campo libero 2.
CustomField3
Campo libero 3.
Notes
Note.
ImageFileName
Nome dell'immagine associata al prodotto. Questo tag potrebbe essere ripetuto, in presenza di più immagini sullo stesso prodotto (funzione non ancora presente in Easyfatt). L'intero percorso locale della cartella delle immagini è ricavabile dalla proprietà ImageFolder associata all'oggetto EasyfattProducts.
Prezzi:
NetPrice1 ... 9
Prezzo netto listino 1...9 [Valuta]. Usare questi campi quando il sito web mostra prezzi al netto d'Iva.
GrossPrice1 ... 9
Prezzo ivato listino 1...9 [Valuta]. Usare questi campi quando il sito web mostra prezzi comprensivi di Iva.
NetEcoFee
Importo netto Iva dell'eco-contributo [Valuta].
GrossEcoFee
Importo ivato dell'eco-contributo [Valuta].
Fornitore:
SupplierCode
Codice del fornitore.
SupplierName
Nome del fornitore.
SupplierProductCode
Codice articolo per il fornitore.
SupplierNetPrice
Prezzo netto d'acquisto [Valuta].
SupplierGrossPrice
Prezzo ivato d'acquisto [Valuta].
Magazzino:
ManageWarehouse
Gestione magazzino abilitata [true|false].
WarehouseLocation
Ubicazione.
MinStock
Scorta minima [Numerico].
AvailableQty
Quantità disponibile [Numerico].
OrderedQty
Quantità ordinata ed in arrivo [Numerico].
Dimensioni:
SizeUm
Unità di misura delle dimensioni.
NetSizeX
Larghezza prodotto [Numerico].
NetSizeY
Altezza prodotto [Numerico].
NetSizeZ
Profondità prodotto [Numerico].
PackingSizeX
Larghezza imballo [Numerico].
PackingSizeY
Altezza imballo [Numerico].
PackingSizeZ
Profondità imballo [Numerico].
WeightUm
Unità di misura peso [Numerico].
NetWeight
Peso del prodotto [Numerico].
GrossWeight
Peso del prodotto imballato [Numerico].
Nota: nelle liste DeletedProducts, l'oggetto Product conterrà esclusivamente il campo <Code>, necessario per identificare ed eliminare il prodotto dal database.
Taglie e colori
Per i prodotti gestiti con taglie e colori (tipico del settore dell'abbigliamento o delle calzature), all'interno di ciascun <Product> vengono specificate le informazioni sulle singole varianti (<Variant>):
<Product>
[...]
<Variant>
<Size>M</Size>
<Color>Blu</Color>
<AvailableQty>23</AvailableQty>
</Variant>
<Variant>
<Size>M</Size>
<Color>Rosso</Color>
<AvailableQty>14</AvailableQty>
</Variant>
<Variant>
[...]
</Variant>
[...]
</Product>
Campi della sezione <Variant>:
Size
Taglia.
Color
Colore.
AvailableQty
Quantità disponibile (viene omesso quando quantità=0).
Protocollo trasmissione file catalogo prodotti XML
Il file XML viene trasmesso con un POST HTTP alla URL indicata nella linguetta Impostazioni della funzione di aggiornamento articoli del programma. Se lo script che riceve il file è posizionato in una cartella del webserver ad accesso limitato (ad esempio la cartella "admin" di os-commerce), è possibile specificare, sempre nelle Impostazioni, la Login e la Password di accesso.
Il file viene trasmesso con Content-type "multipart/form-data", come se venisse inviato un parametro "file" da un form HTML.
Di seguito un esempio minimale di script PHP per ricevere il file:
admin/uploadarticoli.php:
Se al termine della trasmissione Easyfatt riceve una risposta diversa da "OK", la mostra all'utente come messaggio di errore.
Essendo decisamente più complessa la procedura in ASP VBScript, è stato creato un apposito esempio da scaricare.
Trasmissione immagini
Nel caso in cui il sito di e-commerce, al termine della ricezione dell'elenco prodotti, desideri ricevere anche le relative immagini, gli sarà necessario aggiungere, successivamente all'OK di risposta, i seguenti parametri:
questo è un parametro opzionale. Se presente, al termine della trasmissione di tutte le immagini, Easyfatt effettuerà una chiamata alla URL specificata. LaURL può essere esclusivamente un indirizzo http (es.: http://www.miosito.it/uploadTerminato.php), la pagina chiamata dovrà restituire la stringa "OK" per confermare l'avvenuta elaborazione, oppure una stringa di errore da mostrare all'utente.
Importante: questi parametri vanno richiesti solo se il protocollo in uso (AppVersion) è uguale o maggiore a 2. Nel caso in cui vengano specificati sul protocollo precedente, Easyfatt gestirà questa stringa come se si trattasse di un errore nella trasmissione del catalogo prodotti.
Esempio di risposta con richiesta di immagini, senza segnalazione di trasmissione terminata:
OK
ImageSendURL=http://www.miosito.it/immagini/upload.asp
Esempio di risposta con richiesta di immagini, con segnalazione di trasmissione terminata:
OK
ImageSendURL=ftp://ftp.miosito.it/immagini
ImageSendFinishURL=http://www.miosito.it/invio_terminato.asp
E' importante che le diverse righe contenenti OK, ImageSendURL e ImageSendFinishURL siano separate da un carattere di INVIO ("new line").
L'invio delle immagini in modalità HTTP avverrà con un post per ciascun file trasmesso in modalità Content-type "multipart/form-data" contenente due parametri: "file" (il file trasmesso) e "fileName" (il nome del file).
Ricezione ordini
La ricezione viene effettuata ricevendo dal sito un file XML con l'elenco dei documenti (tipicamente conferme d'ordine).
Suggerimento: per effettuare delle verifiche sui tracciati, tramite Easyfatt (anche in versione dimostrativa), è possibile esportare documenti nel formato XML di seguito descritto. Per farlo è sufficiente accedere alla sezione DOCUMENTI, selezionare i documenti desiderati e premere il pulsante Utilità > Trasferisci documenti (formato Easyfatt-Xml).
Risorse utili
Struttura del file
<?xml version="1.0" encoding="UTF-8"?>
<EasyfattDocuments AppVersion="2" Creator="Danea Soft" CreatorUrl="www.danea.it">
<Company>
[...]
</Company>
<Documents>
<Document>
[...]
<Rows>
<Row>
[...]
</Row>
<Row>
[...]
</Row>
</Rows>
<Payments>
<Payment>
[...]
</Payment>
<Payment>
[...]
</Payment>
</Payments>
</Document>
<Document>
[...]
<Rows>
<Row>
[...]
</Row>
<Row>
[...]
</Row>
</Rows>
<Payments>
<Payment>
[...]
</Payment>
<Payment>
[...]
</Payment>
</Payments>
</Document>
</Documents>
</EasyfattDocuments>
Annotazioni sugli elementi
EasyfattDocuments
EasyfattDocuments.Company
EasyfattDocuments.Documents
EasyfattDocuments.Documents.Document
EasyfattDocuments.Documents.Document.Rows
EasyfattDocuments.Documents.Document.Rows.Row
EasyfattDocuments.Documents.Document.Payments
EasyfattDocuments.Documents.Document.Payments.Payment
Esempio
<?xml version="1.0" encoding="UTF-8"?>
<EasyfattDocuments AppVersion="2" Creator="Danea Soft" CreatorUrl="www.danea.it">
<Company>
<Name>Arredufficio Srl</Name>
<Address>Via Crissolo, 12</Address>
<Postcode>10138</Postcode>
<City>Torino</City>
<Province>TO</Province>
<Country>Italia</Country>
<FiscalCode>01303760282</FiscalCode>
<VatCode>01303760282</VatCode>
<Tel>011-2568745</Tel>
<Fax>011-2548793</Fax>
<Email>***</Email>
<HomePage>www.arredufficiosrl.it</HomePage>
</Company>
<Documents>
<Document>
<DocumentType>C</DocumentType>
<CustomerCode>0018</CustomerCode>
<CustomerName>Ceramiche Italiane</CustomerName>
<CustomerAddress>Via Flaminia, 963</CustomerAddress>
<CustomerPostcode>06061</CustomerPostcode>
<CustomerCity>Castiglione Del Lago</CustomerCity>
<CustomerProvince>PG</CustomerProvince>
<CustomerCountry>Italia</CustomerCountry>
<CustomerVatCode>03322350178</CustomerVatCode>
<CustomerTel>075-26589</CustomerTel>
<CustomerEmail>***</CustomerEmail>
<Date>2010-03-23</Date>
<Number>2</Number>
<Total>239.4</Total>
<PaymentName>Bonifico bancario</PaymentName>
<PaymentBank>Banca Antoniana Popolare Veneta ag. Torino 5 - abi 5040 cab 42970 c/c 16243/x</PaymentBank>
<InternalComment>Nessun Acconto</InternalComment>
<CustomField2>08/04/2010</CustomField2>
<SalesAgent>Arturo Lupini</SalesAgent>
<Rows>
<Row>
<Code>0043</Code>
<Description>Appendiabiti su ruote. In robusto metallo verniciato dotato di griglia portascarpe in filo metallico.</Description>
<Qty>1</Qty>
<Um>pz</Um>
<Price>162</Price>
<Discounts>5%</Discounts>
<VatCode Perc="20" class="Imponibile" Description="Aliquota 20%">20</VatCode>
<Notes>vedi preventivo</Notes>
</Row>
<Row>
<Code>0039</Code>
<Description>Cestini Gettacarta - Pareti in acciaio laminato nero o acciaio</Description>
<Qty>3</Qty>
<Um>pz</Um>
<Price>16</Price>
<Discounts>5%</Discounts>
<VatCode Perc="20" class="Imponibile" Description="Aliquota 20%">20</VatCode>
<Notes></Notes>
</Row>
</Rows>
<Payments>
<Payment>
<Advance>false</Advance>
<Date>2010-01-31</Date>
<Amount>100</Amount>
<Paid>true</Paid>
</Payment>
<Payment>
<Advance>false</Advance>
<Date>2010-02-28</Date>
<Amount>139.4</Amount>
<Paid>false</Paid>
</Payment>
</Payments>
</Document>
</Documents>
</EasyfattDocuments>
Campi dell'elemento <Document>
DocumentType
è il codice corrispondente al tipo di documento; se questo tag viene omesso, il documento sarà considerato un ordine cliente. Elenco dei tipi ammessi:
A: Avviso di parcella
B: Vendita al banco
C: Ordine cliente (tipo predefinito)
D: Documento di trasporto
E: Ordine fornitore
F: Fattura accompagnatoria
G: Rapporto d'intervento
I: Fattura
L: Fattura pro-forma
M: Autofattura
N: Nota d'accredito
O: Nota d'addebito
P: Parcella
Q: Preventivo
R: Ricevuta fiscale
S: Preventivo fornitore
H: Arrivi merce fornitore
Date
Data del documento [Data]
Number
Numero documento [Numerico]
Numbering
Numerazione documento ( /a, /b, etc.). Se omesso, l'importazione userà la numerazione scelta nelle relative impostazioni.
Seguono i campi del'intestatario del documento. Va notato che i campi "Customer" (ovvero ... "Cliente") conterranno invece i dati del fornitore per i documenti di fornitura (ordine cliente, arrivo merce, etc.):
CustomerCode
Codice anagrafica; serve per associare l'ordine all'eventuale cliente già inserito in anagrafica. Durante l'importazione, i presenza di <CustomerCode> e in assenza altri codici <Customer...>, i relativi campi anagrafica del documento saranno riempiti con i dati dell'anagrafica corrispondente a <CustomerCode> e già codificata nell'archivio.
CustomerWebLogin
Login web del cliente (usato nell'integrazione e-commerce); nella fase di identificazione dell'anagrafica, questo campo viene preso in considerazione solo in mancanza di CustomerCode.
CustomerName
Cognome e nome o denominazione sociale.
CustomerAddress
Indirizzo.
CustomerPostcode
CAP.
CustomerCity
Città.
CustomerProvince
Provincia (2 caratteri).
CustomerCountry
Nazione.
CustomerFiscalCode
Codice fiscale.
CustomerVatCode
Partita Iva.
CustomerTel
Numero di telefono.
CustomerCellPhone
Numero di cellulare.
CustomerFax
Numero di fax.
CustomerEmail
Indirizzo e-mail.
CustomerReference
Persona di riferimento.
I campi "Delivery", si riferiscono all'indirizzo di consegna o spedizione e vanno specificati se tale indirizzo differisce da quello nei precedenti campi "Customer":
DeliveryName
Nome e cognome o denominazione.
DeliveryAddress
Indirizzo.
DeliveryPostcode
CAP.
DeliveryCity
Città.
DeliveryProvince
Provincia (2 caratteri).
DeliveryCountry
Nazione.
Informazioni sul trasporto:
Carrier
Denominazione vettore.
TransportReason
Causale trasporto.
GoodsAppearance
Aspetto delle merci.
NumOfPieces
Numero colli.
ShipmentTerms
Porto (franco, assegnato...).
TransportedWeight
Peso trasportato.
Note e commenti:
InternalComment
Commento (nell'e-commerce, usare questo campo per indicare note libere dell'acquirente durante la fase dell'ordine).
CustomField1
Campo note 1.
CustomField2
Campo note 2.
CustomField3
Campo note 3.
CustomField4
Campo note 4.
FootNotes
Note a fine pagina.
Altri campi della testata del documento:
CostDescription
Descrizione spese aggiuntive (ad esempio per spese di trasporto).
CostVatCode
Codice IVA spese aggiuntive (deve essere già presente nella tabella "Categorie Iva" dell'applicazione). Il codice è accompagnato dalle seguenti proprietà, il cui uso è facoltativo:
- Perc (percentuale di tassazione applicata)
- Class (classe: imponibile, non imponibile, intra-ue, extra-ue, esente, escluso, fuori campo, iva non esposta, rev. charge)
- Description: descrizione libera del codice Iva
CostAmount
Importo spese aggiuntive [Valuta].
TotalWithoutTax
Totale documento al netto dell'imposta IVA [Valuta]. Ignorato in fase di importazione.
VatAmount
Totale Iva calcolata [Valuta]. Ignorato in importazione.
Total
Totale documento [Valuta]. Ignorato in importazione.
PaymentAdvanceAmount
Importo acconto già versato (va usato solo nei documenti che non prevedono l'indicazione dei singoli Payment).
PricesIncludeVat
Se "true" i campi CostAmount e Row.Price vengono considerati importi ivati, altrimenti netti [true|false].
WithholdingTaxPerc
Percentuale ritenuta d'acconto applicata [Numerico].
WithholdingTaxPerc2
Seconda percentuale della ritenuta d'acconto (es.: 20% del 50%) [Numerico].
WithholdingTaxAmount
Totale ritenuta d'acconto calcolata nel documento [Valuta]. Ignorato in importazione.
Warehouse
Denominazione del magazzino usato.
PriceList
Denominazione del listino usato.
PaymentName
Nome pagamento (deve essere già presente nella tabella "Tipi pagamento" di Easyfatt).
PaymentBank
Banca pagamento.
SalesAgent
Nome dell'agente venditore (deve corrispondere ad un nominativo già presente nella tabella degli agenti).
ExpectedConclusionDate
Data prevista conclusione ordine [Data].
DocReference
Causale del documento.
Righe documento e scadenze di pagamento:
Rows
Contiene una sequenza di elementi Row.
Payments
Contiene una sequenza di elementi Payment.
Campi nelle righe del documento (elementi <Row>):
Code
Codice prodotto.
SupplierCode
Codice prodotto del fornitore.
Description
Descrizione prodotto o nota.
Qty
Quantità prodotti [Numerico].
Um
Unità di misura della quantità.
Size
Taglia (usato nel settore dell'abbigliamento).
Color
Colore (usato nel settore dell'abbigliamento).
Lot
Lotto.
ExpiryDate
Data scadenza lotto [Data].
Serial
Codice seriale
Price
Prezzo unitario [Valuta].
Discounts
Sconti (es: "20+5.5%").
EcoFee
Importo dell'eco-contributo unitario associato all'articolo.
VatCode
Codice IVA (deve essere già presente nella tabella "Categorie Iva" dell'applicazione). Il codice è accompagnato dalle seguenti proprietà, il cui uso è facoltativo:
- Perc (percentuale di tassazione applicata)
- Class (classe: imponibile, non imponibile, intra-ue, extra-ue, esente, escluso, fuori campo, iva non esposta, rev. charge)
- Description: descrizione libera del codice Iva
Total
Importo complessivo della riga [Valuta]. Ignorato in importazione.
WithholdingTax
Ritenuta d'acconto applicata [true|false].
Stock
Movimentazione magazzino [true|false].
Notes
Note della riga.
CommissionPerc
Percentuale provvigione agente [Numerico].
Campi nei pagamenti del documento (elementi <Payment>):
Advance
Se "true", segnala che il pagamento è riferito ad un acconto [true|false].
Date
Data [Data].
Amount
Importo [Valuta].
Paid
Se "true", significa che il pagamento è stato eseguito [true|false].
Campi dell'elemento <Company>
Name
Nome del mittente (l'azienda che ha originato il file).
Address
Indirizzo.
Postcode
CAP.
City
Città.
Province
Provincia (2 caratteri).
Country
Nazione.
FiscalCode
Codice fiscale.
VatCode
Partita Iva.
Tel
Numero di telefono.
Fax
Numero di fax.
Email
Indirizzo e-mail.
HomePage
Indirizzo sito web.
La gestione dell'anagrafica nell'importazione del documento
Quando Easyfatt importa un documento deve verificare se il nominativo Customer è già presente in archivio o se è un nuovo soggetto; nel primo caso, deve inoltre verificare se i dati anagrafici (indirizzo, telefono...) presenti in archivio sono allineati con quelli dell'ordine scaricato. Questa operazione viene svolta secondo il seguente schema:
Nota: nella procedura di importazione di un file Easyfatt-Xml viene data la possibilità di ignorare completamente la presenza del CustomerCode. Tale possibilità può essere utile quando il trasferimento dei documenti avviene tra soggetti diversi, che preferiscono adottare ognuno un proprio e distinto codice per ciascuna anagrafica.
Modalità di ricezione file ordini XML
Il file XML viene ricevuto con un GET HTTP alla URL indicata nella linguetta Impostazioni della funzione di scaricamento ordini del programma. Se lo script che riceve il file è posizionato in una cartella del webserver ad accesso limitato (ad esempio la cartella "admin" di os-commerce), è possibile specificare, sempre nelle Impostazioni, la Login e la Password di accesso.
Vengono, se necessario, accodati alla URL specificata nelle impostazioni i seguenti parametri per limitare il numero di ordini da scaricare:
Esempio di URL richiamata:
http://www.mioserver.it/admin/ordini.php?appver=2&firstdate=2009-01-01&lastdate=2009-12-31&firstnum=1&lastnum=45
Di seguito un esempio minimale di script PHP che invia un file XML precedentemente salvato nel server:
admin/ordini.php:
Di seguito un esempio minimale di script ASP VBScript che invia un file XML precedentemente salvato nel server:
admin/ordini.asp:
Importazione prodotti dal sito webL'utilizzo dell'integrazione e-commerce prevede che sia sempre Easyfatt ad esportare i dati dei prodotti sul sito web. Tuttavia, in alcuni casi può essere necessario effettuare l'operazione contraria, ad esempio quando s'inizia ad usare Easyfatt in presenza di un sito web già pronto e con centinaia o migliaia di prodotti faticosamente inseriti (e che si preferirebbe non dover reintrodurre in Easyfatt!).
Per importare questi dati consigliamo di effettuare un'esportazione dal sito in un formato testo (ad esempio in formato CSV). Questo tracciato dovrà poi essere aperto con Excel (o con OpenOffice), quindi salvato come normale foglio Excel (oppure OpenOffice). Il file così ottenuto sarà importabile da Easyfatt, tramite l'apposita funzione presente nel menu File > Importa. Affinché l'importazione abbia successo è necessario che le colonne del file Excel corrispondano con quelle che Easyfatt s'aspetta di trovare... maggiori informazioni in tal senso sono presenti nella guida in linea del programma (capitolo "Importazioni ed esportazioni").
Chiedo scusa per l'invasione ma credo che questi dati siano importanti affinchè possiate darmi una risposta valida, se non e possibile comunicare con website e-commerce suggerisco una collaborazione per fortificare website5 in futuro visto che danea e sempre più usato dai commercianti...
Dopo i primi 3 righi ho smesso di leggere. Fammi capire se ho intuito quello che ti serve, vuoi esportare il carrello di website x5 e importarlo in questo programma oppure il contrario???
Ciao Abramo,
intendi il file .csv che spedisce website assieme alle emil dell'ordine?
Se il tuo programma legge i file .csv e in particolare il nostro non vi sono problemi se no puoi usare excell per effettuare una conversione.
Autore
Ciao Riccardo e Roberto,
Intendo che il sito sviluppato da website e nell'interno anche l'ecommerce comunichi con il programma di fattura che nel mio caso e il Danea Easyfatt che offre l'opportunità di essere sempre aggiornato di magazzino, ordini clienti e quant'altro semplicemente mettendolo in comunicazione con l'ecommerce trasmesso e creato con website!!! Non so ancora bene come funziona il meccanismo, ma mi pare di capire che serva un modulo già preimpostato e completo per l'ecommerce che trasferito nel server comunichi con il danea easyfatt e che abbia la compatibilità dei file trasmessi nelle modalità elencate al primo post, ho visto qualche esempio e mi pare di capire che i prodotti i prezzi ecc, vengono gestiti direttamente dal danea semplicemente esportandoli in questo modulo... vorrei realizzare qualcosa del genere per automatizzare il tutto e rendere la vita del commerciante che intende pubblicare i suoi prodotti senza avere la pesantezza di gestirsi da solo le vendite i clienti ecc....
Ciao Abramo,
ti posso suggerire di dare un'occhiata a questa faq che spiega come deve essere strutturato il file .csv.
http://answers.websitex5.com/post/30582
Se questo altro programma genera un file .csv diverso anche solo in minima parte dal nostro non potrà essere poi letto da website.
Se invece il processo che ti serve è solo da website a Danea Easyfatt allora ti basta che il file generato da WebsiteX5 venga letto correttamente.
Autore
Si sono informato di questo, in teoria ci vorrebbe integrato un modulo da installare o trasmettere al server ogni volta che website crea un nuovo sito che interaggisca con i programmi di fatturazione usati attualmente i piu comuni e commerciali, esempio il file csv strutturato in un certo modo da website che si trova nella cartella che so "files" e da questo dipenda tutto l'ecommerce online magazzino, ordini, clienti ecc. questo modulo in java o altre modalità converta automaticamente il modulo spedito dal danea nel formato di website e lo inserisca nella cartella "files" aggiornandolo sovrascrivendolo e cosi mantenere sempre aggiornati magazzini, clienti e ordini, fantascienza?
Autore
Come server intendo sql inserendo le impostazione del database esistente, dare a website la possibilità di intereggire con lo stesso.
Ciao Abramo,
se vuoi puoi tentare di creare tu lo script che serve per collegare le due cose e che converta il .csv, essendo Danea Easyfatt un programma esterno non posso però garantirti che WebstieX5 riconosca correttamente il file generato e convertito.