INDICE CONTENUTI
- Introduzione
- Prodotti
- Creare Prodotto tramite API Pubblica
- Conclusione
Introduzione
Questo articolo ha lo scopo di guidare gli utenti su come creare un prodotto utilizzando l'API pubblica fornita da Squadd. Illustra inoltre i casi d'uso e i vari tipi di cui gli utenti possono approfittare durante la creazione di un prodotto
Prodotti
I prodotti sono una delle entità principali in Squadd attraverso le quali gli utenti possono vendere i prodotti che desiderano vendere attraverso molte forme di canali di vendita, utilizzando Negozi di E-commerce, Fatture, Preventivi e altro ancora
Tipi di Prodotti
In Squadd, i prodotti sono principalmente di due tipi:
- Prodotti con prezzo
- Prodotti con Varianti
Prodotti con Prezzo
Questi tipi di prodotti sono semplici prodotti che non hanno varianti. Qualsiasi prodotto che non richiede varianti (oppure) ha solo 1 classificazione di variante può essere creato in questo formato. L'esempio migliore sarebbe un Manifesto con possibili dimensioni
Prodotti con Varianti
Questo tipo di prodotti sono prodotti che hanno multiple variazioni per un singolo prodotto. L'esempio migliore sarebbe una T-shirt dove potrebbero esserci multiple colori e taglie
Creare Prodotto tramite API Pubblica
Autorizzazione
Per eseguire operazioni CRUD (Crea, Leggi, Aggiorna ed Elimina) relative a entità di GoHighLevel utilizzando l'API pubblica, è necessario un token di accesso. Il processo di autorizzazione è spiegato nel link sottostante:
https://marketplace.gohighlevel.com/docs/Authorization/authorization_doc
Creazione del Prodotto
Per creare un prodotto utilizzeremo le seguenti API Pubbliche
- Creare un Prodotto - https://marketplace.gohighlevel.com/docs/ghl/products/create-product
- Creare un Prezzo per Prodotto - https://marketplace.gohighlevel.com/docs/ghl/products/create-price-for-product
Si consiglia di seguire l'ordine dei contenuti per creare un Prodotto
Creare Prodotto
Per prima cosa è necessario creare un prodotto utilizzando l'API Crea Prodotto. Vediamo le proprietà di base richieste per la Creazione di un Prodotto
- name - nome del prodotto
- locationId - per quale Location questo prodotto è creato
- description - breve descrizione del prodotto che sarà utile nei canali di vendita per mostrare il prodotto
- productType - manteniamo come
DIGITAL - image - Immagine in primo piano che sarà visualizzata per impostazione predefinita al cliente finale
- availableInStore - se un prodotto deve essere reso disponibile per i Negozi di E-commerce o meno
- medias - array
- id - identificatore univoco per media
- title - titolo per il media
- url - URL di origine del media
- type - attualmente è supportato solo image
- isFeatured - impostare a
truese deve essere visualizzato al cliente finale
- variants - richiesto solo se si sta cercando di creare un prodotto con varianti
- id - ID univoco per variante
- name - Nome della variante
- options - array
- id - ID univoco per opzione variante (sarà richiesto per la creazione del Prezzo)
- name - nome dell'opzione
Esempio Payload per Prodotto con Prezzo:
{
"name": "Unità di Memoria ad Alta Velocità",
"description": "Un'unità di memoria ad alta velocità con le più recenti funzioni di sicurezza e un design affascinante",
"locationId": "<sub-account_ID>",
"availableInStore": true,
"productType": "PHYSICAL",
"image": "https://via.placeholder.com/150",
"medias": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Unità di Memoria ad Alta Velocità",
"url": "https://via.placeholder.com/150",
"type": "image",
"isFeatured": true
}
]
}Esempio Payload per Prodotto con Varianti:
{
"name": "T-shirt",
"description": "T-shirt più recente con il design e la qualità più recenti",
"locationId": "<sub_account_id>",
"availableInStore": true,
"productType": "PHYSICAL",
"image": "https://via.placeholder.com/150",
"medias": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"title": "T-shirt",
"url": "https://via.placeholder.com/150",
"type": "image",
"isFeatured": true
}
],
"variants": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Colore",
"options": [
{
"id": "550e8400-e29b-41d4-a716-446655440002",
"name": "Rosso"
},
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Blu"
},
{
"id": "550e8400-e29b-41d4-a716-446655440003",
"name": "Verde"
}
]
},
{
"id": "550e8400-e29b-41d4-a716-446655440111",
"name": "Taglia",
"options": [
{
"id": "550e8400-e29b-41d4-a716-446655440112",
"name": "Piccolo"
},
{
"id": "550e8400-e29b-41d4-a716-446655440113",
"name": "Medio"
},
{
"id": "550e8400-e29b-41d4-a716-446655440114",
"name": "Grande"
}
]
}
]
}Nota: Per Prodotto con Varianti, tieni traccia degli ID delle opzioni poiché svolgeranno un ruolo importante durante la creazione del prezzo
Dopo aver creato un prodotto, riceveremo una risposta che avrà la proprietà _id che è l'ID prodotto creato. Questo sarà utilizzato per creare il prezzo per un prodotto
Creare Prezzo per un Prodotto
Utilizzeremo l'API Crea Prezzo per Prodotto per creare un prezzo per il prodotto. Ecco le proprietà di base richieste per creare un prezzo per un prodotto
- product - ID del prodotto per il quale è creato
- locationId - ID della Location
- name - Nome del Prezzo
- type - Poiché supportiamo anche prodotti ricorrenti, i valori disponibili sono
one_timeerecurring - currency - Valuta del Prezzo
- amount - Importo relativo alla valuta
- description - Descrizione del Prezzo
- variantOptionIds - richiesto per un prodotto con varianti
- Per esempio se la combinazione di variante è
Rosso/Piccolo, i valori di variantOptionIds dovrebbero essere i seguenti -
- Per esempio se la combinazione di variante è
["550e8400-e29b-41d4-a716-446655440002","550e8400-e29b-41d4-a716-446655440112"]- dove
550e8400-e29b-41d4-a716-446655440002è perRossoe550e8400-e29b-41d4-a716-446655440112è perPiccolo - Per Prodotto con Varianti, variantOptionIds sono richiesti per rendere correttamente il prodotto, l'assenza di questa proprietà renderà le combinazioni di varianti in modo errato
- trackInventory - Se l'inventario deve essere tracciato, impostare a
true - availableQuantity - Quantità Disponibile, applicabile se trackInventory è
true - allowOutOfStockPurchases - Consenti acquisti del prodotto anche se è esaurito, applicabile solo se trackInventory è
true - sku - SKU del prezzo (o) variante
- isDigitalProduct -
truese è un Prodotto Digitale - shippingOptions - proprietà di spedizione per prodotto
PHYSICAL( sarà utile per integrazioni di spedizione )- weight - opzioni di peso
- value - valore del peso
- unit - unità metrica. Valori supportati -
kg, g, lb, oz
- dimensions - dimensioni del Prodotto Fisico
- height - numero
- width - numero
- length - numero
- unit - unità supportate per le dimensioni - Valori supportati -
cm, in, m
- weight - opzioni di peso
Esempio Payload per Prezzo Semplice (Senza Varianti):
{
"product": "66b6021be68f7a98102ba272",
"locationId": "<sub_account_id>",
"name": "256 GB",
"type": "one_time",
"currency": "USD",
"amount": 100,
"description": "256 GB di archiviazione",
"sku": "PS-256GB",
"isDigitalProduct": false,
"shippingOptions": {
"weight": {
"value": 100,
"unit": "g"
},
"dimensions": {
"length": 10,
"width": 10,
"height": 10,
"unit": "cm"
}
}
}Esempio Payload per Prezzo Prodotto con Varianti
{
"product": "66b6021be68f7a98102ba272",
"locationId": "<sub_account_id>",
"name": "Rosso / Piccolo",
"type": "one_time",
"currency": "USD",
"amount": 100,
"description": "Rosso / Piccolo",
"sku": "PS-RED-SMALL",
"isDigitalProduct": false,
"variantOptionIds": ["550e8400-e29b-41d4-a716-446655440002","550e8400-e29b-41d4-a716-446655440112"],
"shippingOptions": {
"weight": {
"value": 100,
"unit": "g"
},
"dimensions": {
"length": 10,
"width": 10,
"height": 10,
"unit": "cm"
}
}
}Nota: Gli ID delle Opzioni di Variante sono richiesti per il corretto rendering delle variazioni del prodotto
Aggiungere Immagine a una variante tramite API Pubblica
Esempio Payload Aggiornamento Medias Prodotto con PriceIds
{
"name": "T-shirt",
"description": "T-shirt più recente con il design e la qualità più recenti",
"locationId": "<sub_account_id>",
"availableInStore": true,
"productType": "PHYSICAL",
"image": "https://via.placeholder.com/150",
"medias": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"title": "T-shirt",
"url": "https://via.placeholder.com/150",
"type": "image",
"priceIds": ["<created_price_Id>"],
"isFeatured": true
}
],
"variants": [
{...dati varianti esistenti}
]
}Per il momento, supportiamo solo un'immagine mappata a un priceId, il mapping di più priceIds a una singola immagine causerà problemi nel rendering dei prodotti
Conclusione
Utilizzando le API di cui sopra siamo stati in grado di creare un prodotto fisico UNICA TANTUM di base con prezzo semplice e anche con varianti. La flessibilità non si ferma qui, poiché Squadd supporta anche Prodotti Ricorrenti, è possibile fare riferimento alla documentazione dettagliata dell'API Prezzo e utilizzare le proprietà fornite specificamente per i prodotti ricorrenti