Il seguente articolo fornirà una panoramica di ciò che è necessario per costruire un gateway di pagamento compatibile con WC Vendors e che supporterà i pagamenti delle commissioni dei fornitori. Ci sono requisiti che la tua piattaforma di pagamento dovrà soddisfare per creare un'integrazione compatibile. Una volta che sei soddisfatto che la tua piattaforma abbia le funzionalità richieste, ci sono due parti per costruire un gateway compatibile con WC Vendors.
- Requisiti della piattaforma
- Pagamenti dei clienti
- Pagamenti ai venditori
È possibile creare un'integrazione solo per i pagamenti, tuttavia questa non sarà trattata.
Requisiti della piattaforma
Per implementare un gateway di pagamento compatibile con WC Vendors per pagamenti e accrediti, la tua piattaforma dovrà essere in grado di supportare le seguenti funzionalità:
- Elaborare pagamenti (inclusi rimborsi e contestazioni)
- Suddivisione dei pagamenti o gestione degli accrediti
Altre funzionalità utili, anche se non richieste, includono
- Onboarding del fornitore
- KYC
- Report
- Gestione delle tasse
- Documentazione chiara per il supporto del marketplace
Pagamenti dei clienti
Quando costruisci il tuo gateway, il primo passo sarà assicurarti di aver costruito un gateway di pagamento WooCommerce completamente compatibile. Questo garantirà che i pagamenti dei clienti vengano acquisiti correttamente. Poiché questo è già trattato in dettaglio nella documentazione ufficiale di WooCommerce, ti consigliamo di leggerla.
Assicurati di leggere il documento per sviluppatori disponibile da WooCommerce per questa sezione.
Pagamenti ai fornitori
I pagamenti ai fornitori dipendono dai tipi di pagamenti che supporti. Tutti questi aspetti di come e quando pagare i fornitori sono determinati dalla tua API di pagamento. I due scenari comuni per pagare i fornitori:
- Pagamento diviso
- Pagamento programmato
A seconda della tua piattaforma, sceglierai una o entrambe queste opzioni per l'integrazione. Per capire come gestire i pagamenti ai fornitori, dovresti iniziare comprendendo come funziona internamente il nostro sistema di commissioni.
Interno delle commissioni
Il sistema di commissioni di WC Vendors è attualmente basato sul prodotto. Ciò significa che ogni prodotto in un ordine avrà la propria commissione calcolata e registrata. Questo può includere spedizione e tasse.
Le commissioni di WC Vendors vengono registrate solo quando il pagamento è stato elaborato. Una volta elaborato il pagamento, WC Vendors registrerà la commissione nella tabella delle commissioni. Affinché una commissione venga registrata, l'ordine WooCommerce deve avere uno dei seguenti due stati:
- In elaborazione
- Completato
Se il gateway di pagamento non è compatibile con WC Vendors, lo stato della commissione viene impostato su 'dovuto'. Se il gateway è compatibile con WC Vendors e anche il pagamento al fornitore è completato, la commissione viene impostata su 'pagato'.
Schema della tabella delle commissioni
La tabella delle commissioni è dove vengono registrate tutte le commissioni dei fornitori. I guadagni del marketplace attualmente non vengono registrati in questa tabella.
| Nome colonna | Descrizione |
|---|---|
| id | L'ID univoco della commissione interna |
| id_prodotto | L'ID del prodotto per la commissione |
| id_ordine | L'ID dell'ordine per la commissione |
| id_venditore | La quantità del prodotto |
| totale_dovuto | Questa è la commissione totale per il prodotto, non include tasse o spedizione |
| quantità | La spedizione totale per il prodotto, deve essere fornita da un plugin di spedizione compatibile |
| spedizione_totale | La tassa per il prodotto, deve essere fornita da una soluzione fiscale compatibile |
| tassa | La tassa per il prodotto, questa deve essere fornita da una soluzione fiscale compatibile |
| stato | Questo è lo stato della commissione (Pagato, Dovuto, Annullato, Rimborsato) |
| ora | La data e l'ora in cui la commissione viene registrata |
Classi WC Vendors
Quando sviluppi la tua integrazione, dovrai accedere alla tabella delle commissioni ed interrogare le informazioni pertinenti sui venditori, i prodotti e gli ordini. Le seguenti classi sono le classi più comunemente utilizzate nei gateway di pagamento che supportano WC Vendors.
| Nome classe | Descrizione |
|---|---|
| WCV_Commission | Questa classe gestisce tutte le interazioni con la tabella delle commissioni sopra descritta. Metodi da utilizzare nel tuo gateway: WCV_Commission::set_vendor_product_commission_paid(); per registrare quando una commissione è stata pagata. |
| WCV_Vendors | Questa classe gestisce i metodi relativi ai venditori e ai loro prodotti. I metodi che verranno utilizzati nel tuo gateway di pagamento includono: WCV_Vendors::is_vendor( $user_id ); Determina se l'ID utente fornito è un venditore o meno. WCV_Vendors::get_vendor_dues_from_order( $order ); ottiene le commissioni dovute dal venditore per l'ordine. |
Pagamenti divisi
Se la tua piattaforma supporta pagamenti divisi al punto vendita, implementerai la divisione durante l'elaborazione del pagamento. Ciò richiederà il calcolo della commissione prima dell'elaborazione del pagamento.
La divisione dei pagamenti tra i fornitori e il marketplace è spiegata in pseudo-codice come segue:
- Acquisisci il pagamento dal cliente
- Ottieni l'ordine
- Ottieni gli importi dovuti dal fornitore dall'ordine
- Itera sugli importi dovuti dal fornitore
- Dividi gli importi dovuti tra ciascun fornitore e il marketplace
- Genera un pagamento da inviare alla piattaforma
- Se l'operazione ha successo, imposta lo stato della commissione su pagato, altrimenti genera un errore e lascia la commissione come dovuta
Il seguente codice può essere utilizzato come guida per l'integrazione del tuo gateway di pagamento. Non è completo né inteso per l'uso in produzione. È solo una guida al codice dello pseudo-codice sopra.
Pagamenti
La differenza principale tra un pagamento e un pagamento diviso è che la commissione è già stata calcolata e registrata. Ciò significa che dovrai solo interrogare la tabella delle commissioni e quindi aggiornare la tabella delle commissioni secondo necessità.
I pagamenti ai fornitori, come supportato dalla maggior parte delle piattaforme di pagamento, sono gestiti tramite una pianificazione. Tale pianificazione potrebbe essere sul lato WordPress o sul lato della piattaforma di pagamento. Se gestisci la pianificazione sulla piattaforma e questa se ne occupa, dovrai solo inviare gli importi dovuti dal fornitore alla piattaforma.
Come costruisci la tua interfaccia di pagamenti all'interno di WordPress e WC Vendors spetta a te come sviluppatore e piattaforma. Suggeriamo di creare impostazioni per quanto segue:
- Pianificazione (giornaliera, settimanale, mensile)
- Importi minimi di pagamento
- Numero minimo di giorni prima che un pagamento possa essere elaborato (questo può aiutare per quanto riguarda rimborsi o contestazioni).
Un pagamento al fornitore è spiegato nello pseudo-codice seguente
- Ottieni i fornitori da pagare
- Interroga la tabella delle commissioni per tutte le commissioni dovute per i fornitori sopra
- Somma i pagamenti per ciascun fornitore
- Elabora il pagamento
Il processo sopra sarebbe gestito secondo la tua pianificazione designata tramite WordPress. Suggeriamo di utilizzare l'action scheduler che viene fornito con WooCommerce.
Classi WC Vendors
| Classe | Descrizione |
|---|---|
| WCV_Vendors | Questa classe gestisce i metodi relativi ai fornitori e ai loro prodotti. Metodi che verranno utilizzati nel tuo gateway di pagamento includono: WCV_Vendors::is_vendor( $user_id ); Determina se l'ID utente fornito è un fornitore o meno. WCV_Vendors::get_due_orders_by_vendor( $vendor_id); Ottieni tutte le commissioni dovute per un particolare fornitore. |
| WCV_Commission | Questa classe gestisce tutte le interazioni con la tabella delle commissioni sopra descritta. Metodi da utilizzare nel tuo gateway: WCV_Commission::set_vendor_product_commission_paid(); per registrare quando una commissione è stata pagata. |