Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555

    Script che permetta ad un utente acquisti nel sito

    Salve ragazzi,
    so che il problema che sto per porre non è semplice. O meglio forse non lo è per me perchè ancora non ho trovato lo spunto per una soluzione efficace. Ecco il problema. Ho implementato un sito dinamico, con area utenti (registrazione, gestione dati personali, ecc) ed un'area di amministrazione per gli amministratori. DA quest'area vengono inseriti degli eventi (faccio un esempio, concerti, film, ecc) che poi vengono mostrati in home page. Dall'area di amministrazione si sceglie quali pubblicare, in che posizione dell'home page, quale priorità assegnargli. L'impianto grafico è fatto.

    Ora, il problema è questo. Come posso fare in modo che gli utenti registrati, una volta loggati, possano acquistare un evento? E come utilizzare le forme di pagamento on line (tipo GestPay, Paypal, ecc.). Non ho nemmeno lontanamente preso in considerazione script già pronti perchè mi toccherebbe buttare via tutto quel che ho fatto. E non voglio neppure stare la a perder tempo per cercare di integrarli in qualche modo.

    Mi potete fornire qualche idea? Intesa come php e sql, magari qualche esempio che avete già realizzato. Ve ne sarei infinitamente grato!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Nessuno che può darmi un'idea, uno spunto e fornirmi un esempio concreto?

  3. #3
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Posso dirti che PayPal dà la possibilità di inserire un semplice pulsante che al click invia una form con l'importo dovuto. Ovviamente la form puoi compilarla tu dinamicamente, inserendo importo e causale.

    Per quanto riguarda altri metodi di pagamento non posso aiutarti, mi spiace
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Grazie,
    questa è comunque un'informazione importante. La cosa che vorrei realizzare è un semplice carrello per ogni utente registrato nel sito, in modo che abbia la possibilità di acquistare un determinato evento tra quelli in home page. Quindi spuntare una checkbox per l'acquisto, un'altra che dia il numero di biglietti desiderati (con uno script che poi azzeri il numero biglietti nel caso che terminino e che quindi non possano più essere acquistati), quindi aggiunta al carrello virtuale, importo totale e quindi scelta del metodo di pagamento.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Riflettevo seguendo una certa logica, che spero sia corretta. Il discorso è creare, oltre alla tabella utenti e quella relativa agli eventi, anche una tabella che si potrebbe chiamare carrello. In questo modo si potrebbe fare un join tra le tre tabelle, in modo da relazionare l'utente ad un evento e permettergli di inserirlo nel carrello.

    Solo che ho qualche problema a stabilire quello che potrebbe essere un campo comune tra le tre tabelle, in modo da effettuare il join...

    E' sbagliato come ragionamento? Se è corretto poi realizzo la tabella e posto il codice delle tre tabelle. Da li poi si dovrebbe implementare il php.

  6. #6
    Guarda.... di solito la gestione di un carrello della spesa viene demandata sempre alle sessioni.

    Sostanzialmente, quando un utente si logga, a rigor di logica, apri una sessione per riconoscerlo ogni volta che cambia pagina all'interno del tuo sito.

    Se vuoi che questo utente selezioni un qualsiasi evento del tuo sito per poi comprarlo, non devi fare altro che salvare nella medesima sessione tutte le variabili che ti interessano (esempio: nome/id evento - quantità - altre info).

    Completata la selezione degli item da comprare, non devi fare altro che prevedere due tasti: ACQUISTA e CANCELLA.
    Nel secondo caso, non fai altro che cancellare il contenuto della sessione per vuotare il carrello.
    Nel primo caso, invece, prelevi le variabili dalla sessione (quindi anche l'identificativo del tuo utente) e le vai a salvare in una tabella del DB chiamata - esempio - acquisti.
    Ricordati di prevedere in questa tabella anche un identificativo univoco della transazione, per evitare problemi successivi.
    Le stesse variabili le spedisci quindi anche a paypal (compreso l'iudentificativo univoco della transazione di cui sopra), o a qualsiasi altro gateway di pagamento da te scelto.

    Inutile dire che il pannello di amministrazione deve potersi interfacciare a questa tabella per controllare lo stato dei lavori e per gestire tutte le opzioni di spedizione o che so io.

    Due cose.

    1 - Ricordati che non tutti i provider permettono di creare un sito di commercio elettronico nei propri server, se questi non sono di tipo SICURO (https, insomma). Leggi bene il contratto che hai ricevuto quando hai sottoscritto lo spazio web
    2 - Informati alla camera di commercio della tua città se il tuo sito/società può vendere materiale (di qualsiasi genere) online. Se non ricordo male ci vuole una licenza un po' particolare.

    Cos'altro? :master:
    Ah si. Nel sito di Paypal è spiegato piuttosto bene come ricevere pagamenti con questo metodo... fatti un giretto lì per tutte le informazioni del caso.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Grazie delle dritte Alcio.
    Le tabelle che ho realizzato sono queste tre:

    CREATE TABLE `utenti` (
    `utente_id` int(3) NOT NULL auto_increment,
    `username` varchar(30) NOT NULL default '',
    `password` varchar(34) NOT NULL,
    `confermapassword` varchar(34) NOT NULL,
    `nome` varchar(30) NOT NULL default '',
    `cognome` varchar(30) NOT NULL default '',
    `mail` char(255) NOT NULL default '',
    `data` char(255) NOT NULL default '',
    `ip` char(15) NOT NULL default '',
    PRIMARY KEY (`id`),
    UNIQUE KEY `id` (`id`),
    KEY `id_2` (`id`)
    )

    CREATE TABLE `eventi` (
    `evento_id` int(5) NOT NULL auto_increment,
    `utente_id` int(5) NOT NULL auto_increment,
    `ordine_id` int(5) NOT NULL auto_increment,
    `quantità` int(3),
    `prezzo` decimal (5,2),
    PRIMARY KEY (`utente_id,ordine_id,evento_id`),
    )

    CREATE TABLE `ordini` (
    `utente_id` int(5) NOT NULL auto_increment,
    `ordine_id` int(5) NOT NULL auto_increment,
    `date` timestamp (12),
    PRIMARY KEY (`utente_id,ordine_id`),
    )


    Possono andar bene? Oppure ho inserito troppe PRIMARY KEY? Avendo queste tre tabelle potresti farmi un piccolo esempio di relazione in php tra le varie variabili come dicevi nellatua risposta?

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Rettifico,
    ho corretto le tabelle. Ecco quelle che utilizzo.

    CREATE TABLE `utenti` (
    `utente_id` int(3) NOT NULL auto_increment,
    `username` varchar(30) NOT NULL default '',
    `password` varchar(34) NOT NULL,
    `confermapassword` varchar(34) NOT NULL,
    `nome` varchar(30) NOT NULL default '',
    `cognome` varchar(30) NOT NULL default '',
    `giorno` int(2) NOT NULL default '',
    `mese` int(2) NOT NULL default '',
    `anno` int(4) NOT NULL default '',
    `cap` int(10) NOT NULL default '',
    `provincia` varchar(30) NOT NULL default '',
    `indirizzo` varchar(30) NOT NULL default '',
    `civico` int(5) NOT NULL default '',
    `mail` char(255) NOT NULL default '',
    `data` char(255) NOT NULL default '',
    `ip` char(15) NOT NULL default '',
    PRIMARY KEY (`utente_id`),
    UNIQUE KEY `id` (`utente_id`),
    KEY `id_2` (`utente_id`)
    )

    CREATE TABLE `eventi` (
    `evento_id` int(5) NOT NULL auto_increment,
    `titolo` text NOT NULL,
    `descrizione` text NOT NULL,
    `quantità` int(3),
    `prezzo` decimal (5,2),
    `data` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
    `nome` varchar(50) NOT NULL default '',
    `size` varchar(25) NOT NULL default '',
    `type` varchar(25) NOT NULL default '',
    `immagine` longblob NOT NULL,
    `pub` int(1) NOT NULL default '0',
    PRIMARY KEY (`evento_id`)
    )

    CREATE TABLE `ordini` (
    `ordine_id` int(5) NOT NULL auto_increment,
    `date` timestamp (12),
    PRIMARY KEY (`ordine_id`)
    )


    Le ho semplificate. Ora mi chiedo, per poter effettuare un ordine la tabella "ordini" dovrebbe essere relazionata a quella degli utenti, che a sua volta dovrebbe essere relazionata a quella degli eventi. Ora, se io sono un utente registrato, seleziono l'evento che voglio acquistare in home page. Come posso aggiungerlo ad un carrello? Il carrello dovrebbe essere rappresentato appunto dalla tabella ordini. Suppongo che in questa tabella manchi qualcosa, un campo che permetta di relazionare questa tabella con quella dell'utente che acquista.

    Magari dico un'eresia, ma nella tabella ordini potrei aggiungere il campo utente_id e poi inserirlo insieme alla chiave primaria 'ordine_id'? Come posso effettuare l'aggiunta dell'evento alla tabella ordini e quindi al carrello?

    Spero di essere stato chiaro....

  9. #9
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    La tabella ordini dovrebbe essere un po' più ricca, come hai intuito.
    Ad esempio: ordini (id_ordine, id_utente, data)
    In questo modo metti in relazione 1 ordine con 1 utente

    Ti serve anche un'altra tabella che metta in relazione 1 ordine con molti eventi, ad esempio:
    ordini_eventi (id_ordine, id_evento)

    In questo modo, quando un utente conferma il contenuto del carrello, crei anzitutto un record nella tabella ordini del tipo (3, 5, '2008-02-16') [i numeri sono a casaccio ] e dopo, per ogni evento che l'utente ha selezionato crei un record nella tabella ordini_eventi tipo (3, 14) (3, 21) (3, 28) etc...

    In questo modo con qualche join fra le tabelle riesci a reperire tutte le informazioni necessarie.

    Questa ovviamente è solo una delle soluzioni possibili
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Nei numeri che hai scritto tra parantesi il 3 si riferisce all'utente e l'altro numero all'evento? Oppure il 3 si riferisce all'ordine?

    Ti scoccia se ti chiedo un esempio dell'altra tabella che mi hai suggerito, ossia quella tu mi pare abbia chiamato ordini_eventi?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.