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à | Tipo | Descrizione |
|---|---|---|
| id | string (UUID) | Identificativo univoco della variante. |
| name | string | Nome della variante. |
| slug | string | URL specifico per la variante. |
| isFavourite | boolean | Indica se è la variante predefinita o suggerita per il prodotto. |
| productId | string (UUID) | Riferimento al Product padre. |
| availability | string | Stato di disponibilità (es. available, low_availability, not_available). |
| inheritAssets | boolean | Se true, utilizza gli asset del prodotto padre se non sovrascritti. |
| inheritAttributes | boolean | Se true, utilizza gli attributi del prodotto padre. |
| inheritTagValues | boolean | Se true, eredita i tag dal prodotto padre. |
| tags | Tag[] | Tag specifici per la variante (es. Colore). |
| assets | Asset[] | Risorse multimediali specifiche per questa variante. |
| priceRanges | PriceRange[] | Intervalli di prezzo (min/max) calcolati sugli SKU della variante. |
| skus | Sku[] | 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"
}
]
}
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à | Tipo | Descrizione |
|---|---|---|
| currencyCode | string | Codice valuta ISO (es. EUR). |
| cadence | string | Frequenza di pagamento (es. once per acquisto singolo). |
| netMin | number | Prezzo minimo netto (senza tasse). |
| netMax | number | Prezzo massimo netto. |
| grossMin | number | Prezzo minimo lordo (inclusa IVA). |
| grossMax | number | Prezzo massimo lordo. |
| compareNetMin | number | Prezzo di confronto minimo netto (prezzo originale non scontato). |
| compareNetMax | number | Prezzo di confronto massimo netto. |
| compareGrossMin | number | Prezzo di confronto minimo lordo. |
| compareGrossMax | number | Prezzo di confronto massimo lordo. |
| rate | number | Aliquota 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
}
Per mostrare un badge "Promo" o il prezzo barrato, confronta sempre grossMin con compareGrossMin. Se compareGrossMin > grossMin, il prodotto è in offerta.