Ho installato sul mio sito il plugin per la gestione degli affiliati per Ecwid.
Due sono i plugin da scaricare “Affiliates” o “Affiliates Pro” se volte qualche feature in più, e Affiliate Ecwid Light.
Da notare che i plugin per la gestione delle affiliazioni funzionano solo su account Ecwid a pagamento perché fanno uso delle Order Api e della notifica in tempo reale degli eventi di Ecwid “Instant Order Notification” citato anche come ION, quindi se avete una versione free non potete gestire i vostri affiliati.
Dopo aver installato e configurato i plugin su WordPress e aver impostato correttamente lo ION Endpoint Url su Ecwid (sotto impostazioni di sistema -> API) ho generato attraverso il pulsante a disposizione sul Plugin la pagina per la registrazione ed il Login dell’Affiliato.
Ho quindi registrato un affiliato e ho fatto accesso alla pagina “Area Affiliato” dove ho prelevato il link generato dal sistema da inserire sul sito web del nostro utente affiliato.
Faccio una prova e nulla !! Panico.. Il plugin registrava correttamente le visite ma nessun ordine veniva inserito nella sezione “referenze” ne a carico dell’affiliato, tantomeno a carico dell’utente di default che il sistema prevede quando l’affiliato non è riconosciuto.
Da buon programmatore vado a vedere se il codice del plugin prevede un debug e non lo trovo. Esploro un po’ il codice sorgente e noto una chiamata ad una funzione su Affiliate Ecwid Light che avevo rivisto ma che ho usato pochissimo. Vado a vedere i log di errore forniti dal server ed il mio sospetto diviene certezza. Il plugin crasha quando tenta di eseguire la funzione bcsub() alla riga 319 del mio file sorgente “affiliate-ecwid-light.php”.
Indago un po’ e noto che il PHP del mio server (un Centos guidato da Plesk) non ha la libreria BCmath inserita e quindi la funzione bcsub() è indefinita.
Nel mio caso è bastato lanciare il comando yum install php-bcmath e riavviare il server, ma se la libreria è inclusa controllate che sia anche attivata nel file PHP.INI.
Forse a qualcuno può essere utile.