# Tutoriel d'accès au catalogue

### Introduzione

Questa documentazione ha lo scopo di guidare gli sviluppatori nell'integrazione del catalogo di vendita e nell'inserimento degli ordini, con o senza pagamento, utilizzando l'API di Yoplanning.pro. L'obiettivo è quello di consentire la vendita delle attività Yoplanning all'interno del vostro sistema. Presupponiamo che abbiate già consultato la documentazione dell'API e che siate in possesso del vostro token API.

## Fasi del flusso di lavoro di integrazione

### 1. Recupero dei dati del tuo team

* **Endpoint**: `/api/v3.1/teams/`
* **Informazioni essenziali**: `team_id` e `vendor_id`
* **Utilizzo**: Il `team_id` è richiesto per quasi tutte le richieste API. Il `vendor_id` è richiesto se si desidera utilizzare il Gestore pagamenti.

### 2. Ottenere l'elenco dei prodotti

* **Endpoint**: `/api/v3.1/teams/[teamId]/online-products/`
* **Funzione**: Recupera l'elenco dei prodotti che possono essere venduti online.
* **Parametri aggiuntivi**:
  * **lang**: (stringa) Indica la lingua dei campi traducibili (come titolo, descrizione, ecc.). Utilizzare un codice ISO2. Predefinito: `en` (inglese). Possibili opzioni: `fr` (francese), `de` (tedesco).
  * **start\_date**: (data) Filtra i risultati per mostrare solo quelli con disponibilità dopo questa data. Formato data: `AAAA-MM-GG`.
  * **end\_date**: (data) Filtra i risultati per mostrare solo quelli con disponibilità prima di questa data. Formato data: `AAAA-MM-GG`.
  * **category**: (string) Filtra i prodotti in base a una categoria specifica.

### 3. Recupero della disponibilità del prodotto

* **Endpoint**: `/api/v3.1/teams/[teamId]/online-products/[productId]/availabilities/`
* **Funzione**: Visualizza le sessioni disponibili per un prodotto specifico.
* **Filtri**: Data, prezzo, numero di biglietti, personale (istruttore), ecc.

### 4. (Facoltativo) Recupero delle opzioni disponibili (Attrezzatura)

* **Endpoint**: `/api/v3.1/teams/[teamId]/availability-details/[pk]/`
* **Funzione**: Recupera i dettagli delle opzioni disponibili per una sessione specifica.

### 5. (Facoltativo) Verifica disponibilità

* **Endpoint**: `/api/v3.1/teams/[teamId]/order-validation`
* **Funzione**: Consente di verificare la disponibilità degli articoli nel carrello prima di finalizzare l'ordine.
* [Per maggiori dettagli, clicca qui](https://docs.yoplanning.support/it/developpeur/tutoriel-dacces-au-catalogue/verification-de-la-disponibilite-via-lapi-yoplanning)

### 6. (Facoltativo) Creazione di un pagamento tramite il Gestore pagamenti

* **Endpoint**: `https://payment.yoplanning.pro/api/create-payment`
* **Funzione**: Crea un pagamento e recupera il link di pagamento.
* **Gestione IPN**: Gestione delle notifiche di pagamento istantaneo sull'URL di callback fornito.

{% content-ref url="tutoriel-dacces-au-catalogue/yoplanning-payment-manager-api-documentation" %}
[yoplanning-payment-manager-api-documentation](https://docs.yoplanning.support/it/developpeur/tutoriel-dacces-au-catalogue/yoplanning-payment-manager-api-documentation)
{% endcontent-ref %}

### 7. Effettuare l'ordine

* **Endpoint**: `/api/v3.1/teams/[teamId]/orders/`
* **Funzione**: Registra l'ordine in Yoplanning, aggiorna il programma, visualizza l'ordine e i partecipanti in Yoplanning, notifica il personale e aggiorna la disponibilità.
* **Opzione**: Puoi chiedere al sistema YoPlanning di non inviare la conferma via email se preferisci gestirla autonomamente:

  ```
  /api/v3.1/teams/{teamId}/orders/?send_email=0
  ```

## Esempio di utilizzo con cURL

* **Recupero del prodotto**:

  <pre data-full-width="false"><code>
  </code></pre>

```bash
curl https://yoplanning.pro/api/v3.1/teams/5a90332e-568f-4980-9859-88a984844a4d/online-products -H 'Authorization: Token 4504c2cb0d87a93106d4de029f407c86149f2ada'
```

\\\* \*\*Recupero della disponibilità del prodotto\*\*: \`\`\`bash curl <https://yoplanning.pro/api/v3.1/teams/5a90332e-568f-4980-9859-88a984844a4d/online-products/f16ed6c6-e972-4232-b452-ecd393e61642/availabilities> -H 'Authorization: Token 4504c2cb0d87a93106d4de029f407c86149f2ada' \`\`\` \* \*\*Effettua l'ordine\*\*: \`\`\`bash curl -H "Content-Type: application/json" -X POST -d '{"external\_reference" : "956", "items" : \[{"session\_group" : "4f655815-58d9-4c7c-b1c9-2ea152073371", "price" : {"amount" : 51.25}, "client" : {"id" : "71ea849f-226c-4302-a433-528179634aa7", "first\_name" : "John", "last\_name" : "Doe", "email" : "<john.doe@gmail.com>"}}], "payments" : \[{"amount" : 51.25, "client" : {"first\_name" : "Framold", "last\_name" : "Doe", "email" : "<john.doe@gmail.com>"}}]}' <https://yoplanning.pro/api/v3.1/teams/5a90332e-568f-4980-9859-88a984844a4d/orders> -H 'Authorization: Token 4504c2cb0d87a93106d4de029f407c86149f2ada' \`\`\`

Assicurati di sostituire gli ID e i token con quelli del tuo team per tutte le richieste.

***

**Nota:** Questa documentazione è un esempio di integrazione di base. Per dettagli più specifici e casi d'uso avanzati, si prega di fare riferimento alla documentazione ufficiale dell'API di Yoplanning.pro.
