Diagramma di Flusso Integrazione Pagamenti Divisi Paystack

I seguenti diagrammi di flusso rappresentano il flusso di base necessario per far funzionare i pagamenti divisi Paystack per WC Vendors. Questo può anche essere adattato per supportare qualsiasi gateway di pagamento che supporti i pagamenti divisi.

Guardando il plugin del gateway di pagamento Paystack per WooCommerce, sembra che i pagamenti divisi siano già supportati ma sono per un sub-account fisso/predefinito, e non supportano sub-account dinamici basati sull'elenco dei fornitori recuperato dall'ordine attualmente in elaborazione. Affinché WC Vendors Marketplace supporti i pagamenti divisi con Paystack, è necessario che la divisione venga generata dinamicamente in base al numero di fornitori i cui prodotti sono nell'ordine attualmente in elaborazione.

Per supportare i pagamenti multi-divisi, l'amministratore del Marketplace deve disporre di un account Paystack e configurare il plugin con le chiavi API in modo che i sub-account possano essere creati tramite l'API Paystack. Durante l'onboarding dei fornitori, questi forniranno i dettagli del loro conto di liquidazione che verranno utilizzati per configurare i sub-account e facilitare i pagamenti divisi.

Scarica il diagramma di flusso come documento PDF

Onboarding del fornitore

Consigliamo un semplice sistema di onboarding che permetta ai fornitori di creare un account dalle impostazioni del Marketplace compilando un semplice modulo con i dettagli richiesti da Paystack per creare un account, oppure possono compilare manualmente i dettagli del conto se hanno già un account con Paystack

Ecco un diagramma di flusso che mostra il processo di onboarding. Questo inizia dalla Dashboard Fornitore nella pagina Impostazioni di pagamento.

Dopo che il sub-account è stato creato, il codice del sub-account per il fornitore deve essere salvato nell'account del fornitore corrente sul marketplace in modo che possa essere utilizzato per i pagamenti divisi. Vedere la guida all'integrazione del gateway di pagamento per i dettagli.

Esempio

<?php update_user_meta( $user->ID, '_paystack_sub_account_code', 'ACCT_xxxxxxxxxxxxx' ); ?>

Flusso di checkout del cliente

Nella pagina Negozio del marketplace, un cliente può acquistare qualsiasi numero di prodotti da qualsiasi numero di Fornitori. Al momento del checkout, l'integrazione del gateway di pagamento deve recuperare l'elenco dei fornitori dall'ordine creato e utilizzare questo elenco per creare i pagamenti divisi in base al totale per ciascun fornitore nel carrello e alla commissione impostata dall'amministratore del marketplace.

Elaborazione del pagamento

L'elaborazione di un pagamento comporta il calcolo delle divisioni in base agli importi dovuti ai fornitori dall'ordine, vedere il documento sull'integrazione del gateway di pagamento per i dettagli. Di seguito è riportato un diagramma di flusso per l'elaborazione del pagamento.

Gli importi divisi devono essere calcolati dinamicamente in base agli articoli dell'ordine, alle impostazioni di commissione e alle commissioni aggiuntive del carrello come tasse o costi di spedizione. È inoltre necessario verificare quanto segue per determinare chi riceve la commissione per tasse e spedizione.

<?php
if ( wc_string_to_bool( get_option( 'wcvendors_vendor_give_taxes' ) ) ) {
	// Addd tax fees to vendor total
} else {
	// Add tax total to marketplace split
}
?>
if ( wc_string_to_bool( get_option( 'wcvendors_vendor_give_shipping' ) ) ) {
	// Addd shipping fees to vendor total
} else {
	// Add shipping total to marketplace split
}

Per creare la ripartizione per ciascun venditore in base all'ordine, è possibile ottenere i contributi del venditore dall'ordine, quindi recuperare il codice del sotto-conto per ciascun venditore dal database locale utilizzando l'ID del venditore, vedere il documento di integrazione del gateway di pagamento come riferimento. Il codice del sotto-conto verrà salvato sull'account del venditore durante l'onboarding.

Esempio:

public function process_split_payment( $order ) {
	$vendors_due  = WCV_Vendors::get_vendor_dues_from_order( $order, false );
	$sub_accounts = array();

	foreach ( $vendors_due as $vendor_id => $products ) {

		$_vendor_account = get_user_meta( $vendor_id, '_paystack_sub_account_code', true );

		$sub_accounts[] = array(
			'subaccount' => $_vendor_account,
			'share'      => $calculated_share,
		);

		// Other processing.

	}

	$split_payments = array(
		'name'              => 'Percentage Split for order #' . $order->get_id(),
		'type'              => 'percentage',
		'currency'          => woocommerce_get_currency(),
		'subaccounts'       => $sub_accounts,
		'bearer_type'       => 'subaccount',
		'bearer_subaccount' => 'ACCT_hdl8abxl8drhrl3',
	);

	$this->send_split_to_paystack( $split_payments );

	// Other processing.
}

Impostazioni aggiuntive

Quando si creano i pagamenti divisi, è necessario controllare le impostazioni dell'amministratore e le impostazioni di commissione per eventuali commissioni che potrebbero essere detratte dall'amministratore o dai sotto-conti. Queste includono costi di spedizione, commissioni Paystack, tasse e altri oneri. Questi oneri devono essere assegnati e detratti o pagati correttamente a ciascun venditore, se necessario.

Queste possono anche essere configurate su base per transazione e possono utilizzare le impostazioni di configurazione impostate dal proprietario della piattaforma nella pagina di configurazione del plugin. Inoltre, dovremmo anche visualizzare queste informazioni ai venditori durante l'onboarding in modo che sappiano in cosa si stanno imbarcando e le commissioni relative. Inoltre, queste impostazioni dovrebbero essere disponibili solo quando sono stati installati i plugin WooCommerce + Paystack per WooCommerce.

Questo articolo è stato utile?

Articoli Correlati

Completa il tuo acquisto