Passa al contenuto principale

Variant


title: Variant

Variant

Se il Product è il template generale di un'unità vendibile, la Variant è una categorizzazione specifica di questo template. È importante notare che una Variant non è ancora lo SKU (l'unità minima di magazzino), ma agisce come un raggruppamento logico di SKU che condividono caratteristiche comuni (es. lo stesso modello di scarpa in un colore specifico, che poi si declinerà in varie taglie/SKU).

Definizione Variant

ProprietàTipoDescrizione
idstring (UUID)Identificativo univoco della variante.
namestringNome della variante.
slugstringURL specifico per la variante.
isFavouritebooleanIndica se è la variante predefinita o suggerita per il prodotto.
productIdstring (UUID)Riferimento al Product padre.
availabilitystringStato di disponibilità (es. available, low_availability, not_available).
inheritAssetsbooleanSe true, utilizza gli asset del prodotto padre se non sovrascritti.
inheritAttributesbooleanSe true, utilizza gli attributi del prodotto padre.
inheritTagValuesbooleanSe true, eredita i tag dal prodotto padre.
tagsTag[]Tag specifici per la variante (es. Colore).
assetsAsset[]Risorse multimediali specifiche per questa variante.
priceRangesPriceRange[]Intervalli di prezzo (min/max) calcolati sugli SKU della variante.
skusSku[]Elenco degli SKU effettivi (taglie, pesi, ecc.) legati a questa variante.

Esempio di oggetto

{
"id": "08d2a27f-19b4-41aa-b380-ddebb01ac6d4",
"name": "Nike Pegasus",
"slug": "nike-pegasus-704a84-eedb47",
"metadata": {},
"isFavourite": false,
"productId": "6cd8ad36-21eb-4c1c-b554-58315b70fed3",
"availability": "available",
"inheritAssets": true,
"inheritAttributes": true,
"inheritTagValues": true,
"tags": [
{
"id": "54cd9e5f-7b22-4a69-a623-b37e62751bfb",
"name": "Taglia Scarpe (EU)",
"relevant": false,
"sortable": false,
"filterable": true,
"type": "number",
"format": null,
"icon": "",
"values": [
{
"alias": "",
"id": "23198742-55f6-454d-bfad-ddb50caef452",
"value": "40"
},
{
"alias": "",
"id": "ed768bf7-1e9c-4203-92bf-92d22a704ba0",
"value": "40.5"
},
{
"alias": "",
"id": "e05abd72-46e0-4d61-8a54-1ab0a9d630fb",
"value": "41"
},
{
"alias": "",
"id": "6bb35d28-b17d-43a2-a25e-3e7939c0c38e",
"value": "41.5"
},
{
"alias": "",
"id": "76faad43-cf87-4801-9a52-f7d890213934",
"value": "42"
},
{
"alias": "",
"id": "5b0ff2a9-17e7-4180-9721-7b238f0fafc7",
"value": "42.5"
},
{
"alias": "",
"id": "e2492896-dcb8-4d2b-a9a4-3f57e6909d2d",
"value": "43"
},
{
"alias": "",
"id": "c17dee86-4a6d-4574-9222-1c454e1d0b94",
"value": "43.5"
},
{
"alias": "",
"id": "5bf79572-cb28-4104-9ace-9c453f37bbce",
"value": "44"
},
{
"alias": "",
"id": "4bf366e2-1678-4784-a11f-d53c786104a3",
"value": "44.5"
}
]
},
{
"id": "1c0edb9e-c2fd-41eb-960a-f17723beeb52",
"name": "Colore",
"relevant": true,
"sortable": false,
"filterable": true,
"type": "string",
"format": null,
"icon": "",
"values": [
{
"alias": "",
"id": "9538621f-c258-4793-87d5-7a112e20a3e1",
"value": "Verde"
},
{
"alias": "",
"id": "01f6db41-6454-4be9-9c76-2e45ae0b6db6",
"value": "Nero"
}
]
}
],
"assets": [
{
"id": "96228bd5-5dd5-417c-9c74-4f4df3f53efe",
"url": "https://webrounddev.b-cdn.net/rMa8bmEA2Yg9aYk5PgZPejecmIB2/a7734977-c5b1-49a4-911c-0b0bf745bd4f/commerce/images/1764668133827-Immagine_incollata.png",
"type": "image",
"position": 0,
"thumbnail": "",
"inherited": false
}
],
"attributes": [],
"priceRanges": [
{
"currencyCode": "EUR",
"cadence": "once",
"netMin": 139,
"netMax": 139,
"grossMin": 169.57999999999998,
"grossMax": 169.57999999999998,
"compareNetMin": 0,
"compareNetMax": 0,
"compareGrossMin": 0,
"compareGrossMax": 0,
"rate": 22
}
],
"skus": [
{
"allowFreeShipping": false,
"backorderDays": 0,
"quantity": 9,
"allowBackorder": false,
"mpn": "",
"ean": "",
"forceFreeShipping": false,
"options": {
"2d395c94-552a-4dbf-95de-230f94e0844c": "eccd7e69-2aa2-4bbc-92ef-75a07f0a01e6"
},
"purchaseRestock": false,
"sku": "NIK-A6B512-283BBA",
"prices": [
{
"amount": 139,
"isDefault": true,
"comparePrice": 0,
"quantityTable": null,
"externalId": "",
"id": "3ec67ca3-1563-4161-b90e-e144d5a8f206",
"currencyCode": "EUR",
"cadence": "once",
"netAmount": 139,
"grossAmount": 169.57999999999998,
"rate": 22,
"netCompare": 0,
"grossCompare": 0
}
],
"isFavourite": false,
"maxOrderQuantity": 30,
"id": "cc026e04-9eb0-4d6f-aa72-a782eb9550db"
},
{
"allowFreeShipping": false,
"backorderDays": 0,
"quantity": 10,
"allowBackorder": false,
"mpn": "",
"ean": "",
"forceFreeShipping": false,
"options": {
"2d395c94-552a-4dbf-95de-230f94e0844c": "c0a8d6b1-3c4b-4086-b7f3-d9bf9e3ee667"
},
"purchaseRestock": false,
"sku": "NIK-EE3B92-DA29A6",
"prices": [
{
"amount": 139,
"isDefault": true,
"comparePrice": 0,
"quantityTable": null,
"externalId": "",
"id": "d355d868-07ae-4a87-8711-621934f84e7e",
"currencyCode": "EUR",
"cadence": "once",
"netAmount": 139,
"grossAmount": 169.57999999999998,
"rate": 22,
"netCompare": 0,
"grossCompare": 0
}
],
"isFavourite": false,
"maxOrderQuantity": 30,
"id": "2e2aa871-c1b5-4323-bded-7f22947fe605"
},
{
"allowFreeShipping": false,
"backorderDays": 0,
"quantity": 10,
"allowBackorder": false,
"mpn": "",
"ean": "",
"forceFreeShipping": false,
"options": {
"2d395c94-552a-4dbf-95de-230f94e0844c": "f5037d14-b7f4-4995-a806-33cf87a67d53"
},
"purchaseRestock": false,
"sku": "NIK-EAF7EE-C2179F",
"prices": [
{
"amount": 139,
"isDefault": true,
"comparePrice": 0,
"quantityTable": null,
"externalId": "",
"id": "03bee824-bdcc-4c64-be4b-2efa8482f2f1",
"currencyCode": "EUR",
"cadence": "once",
"netAmount": 139,
"grossAmount": 169.57999999999998,
"rate": 22,
"netCompare": 0,
"grossCompare": 0
}
],
"isFavourite": false,
"maxOrderQuantity": 30,
"id": "25abe8fb-91bc-40e0-a7a8-59cfaeabf200"
}
]
}
Gestione UI

Nelle card di prodotto, solitamente si utilizzano le proprietà di Variant per mostrare l'immagine corretta (tramite assets) e il prezzo (tramite priceRanges) in base alla selezione dell'utente.


PriceRange

Descrive l'escursione di prezzo all'interno della variante. Include i valori minimi e massimi sia netti che lordi, oltre ai prezzi di confronto per gestire la visualizzazione di sconti e promozioni.

ProprietàTipoDescrizione
currencyCodestringCodice valuta ISO (es. EUR).
cadencestringFrequenza di pagamento (es. once per acquisto singolo).
netMinnumberPrezzo minimo netto (senza tasse).
netMaxnumberPrezzo massimo netto.
grossMinnumberPrezzo minimo lordo (inclusa IVA).
grossMaxnumberPrezzo massimo lordo.
compareNetMinnumberPrezzo di confronto minimo netto (prezzo originale non scontato).
compareNetMaxnumberPrezzo di confronto massimo netto.
compareGrossMinnumberPrezzo di confronto minimo lordo.
compareGrossMaxnumberPrezzo di confronto massimo lordo.
ratenumberAliquota IVA applicata (es. 22).

Esempio di oggetto

{
"currencyCode": "EUR",
"cadence": "once",
"netMin": 139,
"netMax": 139,
"grossMin": 169.57999999999998,
"grossMax": 169.57999999999998,
"compareNetMin": 0,
"compareNetMax": 0,
"compareGrossMin": 0,
"compareGrossMax": 0,
"rate": 22
}

Visualizzazione Sconti

Per mostrare un badge "Promo" o il prezzo barrato, confronta sempre grossMin con compareGrossMin. Se compareGrossMin > grossMin, il prodotto è in offerta.