• Moderatore

    Insieme a Nobody stiamo verificando se riusciamo a creare un modulo, se ci riusciamo postiamo qui il codice dell'estensione. :smile5:


  • User Newbie

    Scusate se mi intrometto.
    Sono nuovo del forum, anche io utilizzo il modulo di Nobody.1990.
    Se siete riusciti a creare il modulo posso capire come avete fatto?
    Grazie


  • Moderatore

    Ciao Gino_giorgetti e benvenuto sul ForumGT.

    Ho controllato il database su Joomla 3 e verificato che il componente crea una tabella prefix__purchaserecordppexpress che contiene i dati relativi alle transazioni, cioè proprio quelli che interessano a noi.
    Per popolare il db mi occorrono due account PayPal per simulare gli acquisti. Se c'è qualcuno che ha un account PayPal e si vuole immolare alla causa acquistando un documento vuoto alla ragguardevole cifra di 1 centesimo, si faccia avanti e velocizziamo la pratica... poi il centesimo glielo restituisco, eh!! 😄

    Chi ha PP e vuole contribuire al test mi invii un pvt.

    La procedura per creare il modulo è un po' lunga da spiegare, ma una volta che abbiamo il modulo funzionante mi prendo un'ora di tempo e spiego tutto riportando il codice. :smile5:


  • Moderatore

    PayPal risolto. 😉


  • User

    Ciao FDA.

    Se ti serve un qualcosa fammi sapere in cosa posso esserti utile 😉


  • Moderatore

    Ciao Nobody,
    grazie, appena sono pronto ti avverto. Per il test di acquisto con PP ho risolto. 😉


  • User

    Grazie per l'aiuto 😉


  • Moderatore

    Funziona. Un po' di dettagli di stile e opzioni, qualche test e condividiamo. :smile5:

    image


  • User

    Mitico !! Se hai bisogno di aiuto per i test chiedi senza problemi


  • Moderatore

    @Nobody: ti faccio qualche domanda per capire se riesco a migliorare l'estensione.

    Qual è la differenza tra *Price *e PayPal Transaction Fee per ogni prodotto?
    Nonostante abbia venduto due prodotti mi segna Net Profit pari a zero, è normale?
    La "contabilità" tra il proprietario del sito e il proprietario del contenuto digitale è manuale?
    Non sarebbe meglio che ciascun utente avesse accesso soltanto alle statistiche di vendita dei propri contenuti?
    Ci sono altre informazioni che pensi sarebbe utile includere?


  • User

    Ciao FDA.
    Allora price rappresenta il prezzo del prodotto mentre PayPal Transaction Fee rappresenta la somma trattenuta da PayPal.
    Per quanto riguarda Net profit non dovrebbe essere pari a zero.
    Nel tuo caso, tuttavia, dalla foto che hai postato in precedenza vedo che il prezzo corrisponde alla quota trattenuta da PayPal (mi sembra strano) e dunque è per quello che il profitto netto è nullo.
    Per quanto riguarda la contabilità (non so se ho capito bene cosa intendi) comunque è manuale, nel senso che a fine mese ci regoliamo manualmente sulle vendite poichè al prodotto è possibile associare un solo account PayPal.
    Infine effettivamente se fosse possibile sarebbe meglio che ogni utente potesse vedere solo le vendite dei propri contenuti.
    Per quanto riguarda le informazioni l'unica cosa magari sarebbe preferibile riportare il Name del prodotto oltre che/al posto del codice in quanto magari sarebbe di più facile comprensione per l'utente (se però un utente può vedere solo le sue vendite allora può andar bene anche solo il codice).

    Fammi sapere se hai altre domande 🙂


  • Moderatore

    Per il Name del prodotto si può fare, dobbiamo fare la query incrociando i dati delle due tabelle.
    Ok per il fee: quando inserisci importi moto bassi PP trattiene tutto; ho fatto la prova con 2.30$ e ne ha trattenuti 0.38$.

    Questione proprietari dei contenuti: per mostrare a ciascuno i propri contenuti dobbiamo associare l'utente al prodotto, cosa che possiamo fare in due modi:

    • modificando l'estensione: sconsigliato perché è meglio dividere le responsabilità e prendere per buoni tutti gli aggiornamenti che ci darà lo sviluppatore dell'estensione di checkout;
    • creando un secondo modulo, questa volta solo per il backend, che permette di associare a un utente i suoi prodotti.

    Ok per il secondo modulo, stasera creo e poi vi aggiorno. :wink3:
    Se vi vengono in mente altre features facili siamo aperti ai suggerimenti.


  • User

    Ciao FDA.
    Hai novità sul componente ? 🙂


  • Moderatore

    Ciao Nobody,
    non ho avuto il tempo di apportare quelle modifiche, ma il modulo "puro" già c'è.
    In giornata posto il codice qui e ti invio un primo file zip da testare, poi insieme vediamo di migliorarlo.
    Stay tuned! :figo2:


  • User

    Tranquillo non c'è fretta.
    Grazie di tutto 😉


  • Moderatore

    Beta del modulo inviata a Marco.
    Chi vuole partecipare allo sviluppo del modulo è più che benvenuto. :smile5:

    Aggiornamento delle 17:20.
    Questa è la versione v. 0.2.0: http:// goo.gl/ p0Fi41
    Attendo consigli di sicurezza, stile, usabilità e chi più ne ha più ne metta.


  • Moderatore

    Aggiornamento alla release modulo v. 0.3.0 : http:// goo.gl/ 2Zbncc
    Rispetto alla precedete:

    • tabletype con due valori: adesso si può scegliere se stampare la tabella "con i div e il Bootstrap" oppure "con i div senza Bootstrap";
    • tableheader_class: si può specificare una classe da assegnare al div "riga delle intestazioni".
    • layout: permette la selezione di un layout con procedura simile a quella dell'override.

    Sul Bootstrap: è chiaro che si tratta di un plus di Joomla! 3, da usare quando serve perché già inserito nel core (cioè non è una cosa in più da caricare). La scelta più logica è "con Boostrap" ma anche quella "senza" ha il suo perché: chi ha detto che i dati devono essere organizzati in una tabella? In linea di principio potrei desiderare qualcosa di diverso, ad esempio delle schede raggruppate in stile Metro. Per la massima flessibilità serve una struttura in div con opportune classi (qui ne sono state utilizzate in tutto 5, rispettivamente sui div: contenitore, riga di intestazione, cella di intestazione, riga, cella).

    Il codice della vista della v. 0.3.0:

    
    <?php
    /**
     * @package    Joomla.Module
     * @subpackage    mod_pectable
     * @copyright    Copyright (C) 2015 Francesco D'Agostino. All rights reserved.
     * @license    GNU General Public License version 2 or later.
     */
    
    
    // no direct access
    
    
    defined('_JEXEC') or die;
    ?>
    <div class="<?php echo $moduleclass_sfx ?>">
        <?php if ($tabletype == 'div_bootstrap') { ?>
            <div class="row-striped">
                <?php if ($tableheader == '1') { ?>
                    <div class="row-fluid <?php if($tableheaderclass != '') echo $tableheaderclass; ?>">
                        <div class="span2">
                            <?php echo 'Id'; ?>
                        </div>
                        <div class="span3">
                            <?php echo 'Item id'; ?>
                        </div>
                        <div class="span3">
                            <?php echo 'Purchase date'; ?>
                        </div>
                        <div class="span2">
                            <?php echo 'Total amount'; ?>
                        </div>
                        <div class="span2">
                            <?php echo 'Fee amount'; ?>
                        </div>
                    </div>        
                <?php } ?>
                <?php foreach ($list as $item) : ?>
                    <div class="row-fluid">
                        <div class="span2">
                            <?php echo $item->id; ?>
                        </div>
                        <div class="span3">
                            <?php echo $item->itemid; ?>
                        </div>
                        <div class="span3">
                            <?php echo $item->purchaseDate; ?>
                        </div>
                        <div class="span2">
                            <?php echo $item->totalamount; ?>
                        </div>
                        <div class="span2">
                            <?php echo $item->feeamount; ?>
                        </div>
                    </div>
                <?php endforeach; ?>
            </div>
        <?php } elseif ($tabletype == 'div_no_bootstrap') { ?>
            <div class="pec_table">
                <?php if ($tableheader == '1') { ?>
                    <div class="pec_header_row">
                        <div class="pec_header_cell">
                            <?php echo 'Id'; ?>
                        </div>
                        <div class="pec_header_cell">
                            <?php echo 'Item id'; ?>
                        </div>
                        <div class="pec_header_cell">
                            <?php echo 'Purchase date'; ?>
                        </div>
                        <div class="pec_header_cell">
                            <?php echo 'Total amount'; ?>
                        </div>
                        <div class="pec_header_cell">
                            <?php echo 'Fee amount'; ?>
                        </div>
                    </div>       
                <?php } ?>
                <?php foreach ($list as $item) : ?>
                    <div class="pec_row">
                        <div class="pec_cell">
                            <?php echo $item->id; ?>
                        </div>
                        <div class="pec_cell">
                            <?php echo $item->itemid; ?>
                        </div>
                        <div class="pec_cell">
                            <?php echo $item->purchaseDate; ?>
                        </div>
                        <div class="pec_cell">
                            <?php echo $item->totalamount; ?>
                        </div>
                        <div class="pec_cell">
                            <?php echo $item->feeamount; ?>
                        </div>
                    </div>
                <?php endforeach; ?>
            </div>
        <?php } ?>
    </div>
    
    

    Nota 1: se avessi sviluppato questo modulo per un sito in produzione di un cliente non avrei realizzato così la vista, perché più istruzioni php vi inseriamo e più lento sarà il sito. Un'alternativa consiste nel ricorrere ai layout: avrei potuto realizzare un layout di default con Bootstrap (come nella precedente release) e un secondo layout senza Bootstrap. La soluzione dei layout separati va bene per chi smanetta ma non aiuta l'utente inesperto, che vuole installare un'estensione e potere controllare tutto facilmente da back end. Inoltre non esiste l'utente tipo, ma ci sono tanti utenti con esigenze diverse.

    Nota 2: le tabelle si fanno con le table e non con i div, quindi in una prossima release aggiungiamo anche questa possibilità.


  • User

    Ho provato adesso il modulo e funziona perfettamente.
    Complimenti per il modulo 😉


  • Moderatore

    @Nobody: grazie a te per il gioco di squadra. :wink3:

    Chi è interessato ad un sistema pratico e veloce per la vendita di prodotti digitali passi ogni tanto da queste parti.


  • User Newbie

    Come posso fare per provare anche io il suo modulo FDA?
    Ero fuori per lavoro in questa settimana e sono rimasto un pò indietro con la discussione.
    Nel modulo originale sono state apportate le modifiche proposte da Nobody.1990 sulla presenza del Name e su una tabella dedicata ad ogni venditore?