Spedizione GRATIS in tutta Italia sopra 69,90€ Pronto in 5/10 giorni lavorativi · stampato a Napoli Personalizzi da 1 solo pezzo · bozza gratuita prima di stampare

Programma rivenditori · per il webmaster

API rivenditori CityShirt

Con la chiave che ti diamo leggi dal nostro magazzino prodotti, foto, prezzi rivenditore e disponibilità, sempre aggiornati. Formato JSON, versione 1. Non hai ancora la chiave? Richiedila qui.

Indirizzo base e autenticazione

Indirizzo base: https://www.cityshirt.it/api/rivenditori/v1. Tutte le risposte sono JSON UTF-8 (Content-Type: application/json; charset=utf-8, Cache-Control: no-store). Sono ammesse solo richieste GET (CORS aperto per le GET).

Ogni richiesta porta la tua chiave (inizia con csr_, seguita da 40 caratteri):

X-Api-Key: csr_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

In alternativa Authorization: Bearer <chiave>. Solo per il feed CSV (che si apre anche da un programma di importazione) è ammesso ?chiave=<chiave> nell'indirizzo. Tieni la chiave riservata: non scriverla nel codice pubblico del sito.

Regola dei prezzi

Tutti i prezzi sono in euro, IVA esclusa, con due decimali.

  • prezzo_rivenditore = il nostro costo +30%, e mai sopra il prezzo che paga il pubblico per la stessa quantità. Nelle API è il prezzo per 1 pezzo; ordinando oltre 500 pezzi dello stesso articolo il ricarico scende al +20%, come per il pubblico.
  • prezzo_consigliato = il nostro prezzo al pubblico per 1 pezzo, IVA esclusa. Puoi usarlo come riferimento per il tuo listino.
  • Il costo di acquisto da noi non viene mai mostrato.

GET/stato

Controlla che la chiave funzioni e quanti prodotti ci sono.

{"ok":true,"negozio":"cityshirt.it","versione_api":"1","rivenditore":"La Tua Azienda","prodotti":394,"aggiornato":"2026-10-17T10:00:00+02:00"}

GET/prodotti

ParametroSignificato
pagina, per_paginaPaginazione. Predefinito 1 e 100; massimo 250 prodotti per pagina.
catalogotutti (predefinito), ingrosso oppure gadget. Su cityshirt.it il catalogo è l'ingrosso (capi neutri); gadget restituisce una lista vuota.
categoriaCodice categoria (categoria_slug), per esempio tshirt, felpa, polo.
qCerca nel nome, codice, marca e categoria.
modificati_dalData ISO 8601: solo i prodotti aggiornati da quel momento (per sincronizzare solo le novità).

Risposta: {"pagina":1,"per_pagina":100,"totale":N,"pagine":P,"prodotti":[…]}. Un prodotto:

{
  "sku": "TSRA150",
  "nome": "T-shirt 150 Manica Corta",
  "catalogo": "ingrosso",
  "marca": "JHK",
  "categoria": "T-shirt",
  "categoria_slug": "tshirt",
  "descrizione": "<p>…</p>",
  "immagini": ["https://www.cityshirt.it/assets/uploads/dga/TSRA150.jpg"],
  "prezzo_rivenditore": 2.25,
  "prezzo_consigliato": 2.42,
  "iva": 22,
  "valuta": "EUR",
  "quantita_minima": 1,
  "disponibile": 5320,
  "varianti": [
    {"sku":"TSRA150MWH","colore":"Bianco","hex":"#ffffff","taglia":"M","ean":"8445481178398",
     "disponibile":500,"in_arrivo":0,"prezzo_rivenditore":2.25,"prezzo_consigliato":2.42,
     "immagine":"https://www.cityshirt.it/assets/uploads/dga/TSRA150.jpg"}
  ],
  "aggiornato": "2026-10-17T10:00:00+02:00"
}

Un solo prodotto: GET /prodotti/{sku} (codice del prodotto, maiuscole o minuscole). Se il fornitore indica "500+" pezzi, disponibile vale 500. Le immagini sono sempre indirizzi completi.

GET/disponibilita

Giacenze aggiornate. Con ?sku=TSRA150MWH,TSRA150LWH (fino a 500 codici, di prodotto o di variante); senza sku restituisce tutte le varianti, a pagine (pagina, per_pagina, massimo 1000).

{"aggiornato":"2026-10-17T10:00:00+02:00","articoli":[
  {"sku":"TSRA150MWH","sku_prodotto":"TSRA150","disponibile":500,"in_arrivo":0,"stato":"disponibile"}
]}

stato può essere disponibile, esaurito o su_ordinazione (non a magazzino ma ordinabile: arriva su prenotazione).

GET/feed.csv?chiave=…

Un file CSV con una riga per variante, separatore ;, UTF-8 con BOM, prezzi con il punto decimale. Colonne:

sku_prodotto;sku;nome;marca;categoria;colore;taglia;ean;prezzo_rivenditore;prezzo_consigliato;iva;disponibile;in_arrivo;immagine;immagini_extra

immagini_extra contiene gli altri indirizzi foto separati da |.

Esempi

curl

curl -H "X-Api-Key: LA_TUA_CHIAVE" "https://www.cityshirt.it/api/rivenditori/v1/stato"
curl -H "X-Api-Key: LA_TUA_CHIAVE" "https://www.cityshirt.it/api/rivenditori/v1/prodotti?categoria=tshirt&per_pagina=50"
curl -H "X-Api-Key: LA_TUA_CHIAVE" "https://www.cityshirt.it/api/rivenditori/v1/disponibilita?sku=TSRA150MWH,TSRA150LWH"
curl -o feed.csv "https://www.cityshirt.it/api/rivenditori/v1/feed.csv?chiave=LA_TUA_CHIAVE"

PHP

<?php
$chiave = "LA_TUA_CHIAVE";   // meglio nel file di configurazione, fuori dal webroot
$ch = curl_init("https://www.cityshirt.it/api/rivenditori/v1/prodotti?per_pagina=100");
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTPHEADER => ["X-Api-Key: $chiave"]]);
$risposta = curl_exec($ch);
$codice = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);
$dati = json_decode($risposta, true);
if ($codice !== 200) { exit("Errore: " . ($dati["messaggio"] ?? $codice)); }
foreach ($dati["prodotti"] as $p) {
    echo $p["sku"], " ", $p["nome"], " ", $p["prezzo_rivenditore"], " EUR + IVA\n";
}

Limiti e codici di errore

Massimo 120 richieste al minuto per chiave. Meglio sincronizzare il catalogo una volta al giorno (usa modificati_dal) e le disponibilità ogni ora o a ogni carrello, con l'elenco degli sku che servono.

Gli errori hanno questa forma: {"errore":"chiave_non_valida","messaggio":"La chiave API non è valida."}

HTTPerroreQuando
401chiave_mancanteNessuna chiave nella richiesta.
401chiave_non_validaLa chiave non esiste o è scritta male.
403chiave_sospesaLa chiave è stata sospesa: contattaci.
404non_trovatoIndirizzo o prodotto inesistente.
400richiesta_non_validaParametro non corretto (per esempio una data sbagliata).
429troppe_richiesteSuperato il limite di 120 richieste al minuto: aspetta 60 secondi.
500errore_internoProblema nostro: riprova tra poco o scrivici.

Connettore per WooCommerce

Il plugin importa i prodotti nel tuo WooCommerce, aggiorna prezzi e disponibilità ogni ora e usa la chiave che ti abbiamo dato. Si installa da Plugin › Aggiungi nuovo › Carica plugin.

Scarica cgfa-connettore-rivenditori.zip

Condizioni d'uso di foto e dati

  • Foto, descrizioni e prezzi si usano solo per vendere i prodotti CityShirt e solo finché il programma rivenditori è attivo.
  • È vietato rivendere, cedere o pubblicare i dati del catalogo a terzi, e usare la chiave su siti diversi da quello concordato.
  • Se il programma termina, o la chiave viene sospesa, vanno tolti dal tuo sito prodotti e foto.
  • Programma riservato a chi ha partita IVA. Prezzi IVA esclusa.

Dubbi? Scrivici su WhatsApp o a info@cityshirt.it.

Spedizione in tutta Italia5,90 €, gratis sopra 69,90 € · isole comprese
Stampati in 5/10 giorni lavorativiNeutri e T-shirt bianche/nere 2/3 giorni, dal pagamento visibile sul conto. Ti serve prima? Contattaci
Da 1 solo pezzoNessun minimo per la stampa DTF