Collegare un negozio online
Calcolo prezzi per cliente e creazione dei documenti di vendita.
1. Il prezzo giusto, prima di vendere
Il prezzo applicato a un cliente dipende da listino, regole di sconto, prezzi speciali e quantità. Il calcolo va richiesto al gestionale, non replicato nell'integrazione:
curl -X POST https://tuaazienda.siriocloud.it/api/v1/prezzi/calcola \
-H 'Authorization: Bearer sc_live_LATUACHIAVE' -H 'Content-Type: application/json' \
-d '{
"partita_iva": "01234567890",
"righe": [ { "codice": "ART-001", "quantita": 10 } ]
}'{
"cliente": 88,
"righe": [ {
"articolo": { "id": 17, "codice": "ART-001" },
"quantita": "10",
"prezzo": "24.9", "sconti": [10, 5], "sconto": "14.5",
"prezzo_netto": "21.2895", "prezzo_netto_ivato": "25.9732",
"aliquota": { "id": 2, "valore": "22" },
"regola_sconti": "Sconto rivenditori"
} ]
}
2. L'ordine diventa un documento
Alla conferma dell'ordine il documento si crea in una chiamata — tutto o niente: se una riga viene rifiutata non viene scritto nulla e il messaggio indica riga e motivo. Con prezzi_ivati: true i prezzi si inviano IVA inclusa e lo scorporo lo esegue il gestionale.
curl -X POST https://tuaazienda.siriocloud.it/api/v1/documenti-vendita \
-H 'Authorization: Bearer sc_live_LATUACHIAVE' -H 'Content-Type: application/json' \
-H 'Idempotency-Key: ordine-negozio-58317' \
-d '{
"tipo": "fattura",
"sezionale": "FE",
"partita_iva": "01234567890",
"magazzino": 1,
"prezzi_ivati": true,
"righe": [
{ "codice": "ART-001", "quantita": 10, "prezzo": "25.97" },
{ "descrizione": "Spese di spedizione", "prezzo": "8.20", "aliquota": 2 }
]
}'
La risposta è il documento completo, col numero consumato dal sezionale. Le giacenze scendono da sole; una riga senza prezzo prende quello del motore del punto 1.
fattura numera sul sezionale; proforma non prende numero (lo prenderà alla trasformazione, dal gestionale); vendita_banco è la vendita al banco senza numero di fattura. Un cliente non ancora presente si crea prima, con il PUT /clienti per partita IVA.3. Gestione degli errori
Il 422 indica riga e motivo ("Riga 0: ART-9 ha delle varianti: indicare la variante."); il 409 chiave_ambigua richiede l'id esplicito quando una partita IVA corrisponde a più schede; la Idempotency-Key previene i doppi invii. Tutti i codici in Errori.
