Realizza un carrello virtuale per un e-shop in PHP e scarica i file originali (parte 2)

La seconda ed ultima parte della mini serie dedicata alla realizzazione din un carrello elettronico per un ecommerce utilizando php come linguaggio di programmazione.

In questo articolo che Emanuele Calì ha realizato per blographik come guest poster, entra nel vivo, con esempi pratici del codice da  utilizzare.

inoltre al termine del post troverai il link diretto da cui potrai scaricare gratuitamente il file della classe “cart”, utilizzata in questo tutorial.

Progettare e realizzare un carrello virtuale per un e-shop in PHP
(parte 2)

di Emanuele Calì di EmaWebDesign.com

come creare un carrello per un ecommerce in php

Nella prima parte dell’articolo abbiamo iniziato a scrivere la classe “cart”, vediamo adesso le funzionalità da includere.
La funzione add, che nel nostro e-shop, verrà richiamata dal pulsante “aggiungi al carrello”:

function add($id,$qt,$vt) {

//Ottengo la lunghezza dell'array
$position=count($this->id);
$trovato=0;

for ($i=0;$i<count($this->id);$i++) {
//Verifico se il prodotto è presente nel carrello
if ($this->id[$i]==$id) $trovato=1;
}

//Se il prodotto è già presente aggiorno quantità e variante
if ($trovato==1) $this->update($id,$qt,$vt);
else {//altrimenti aggiungo il prodotto al carrello
$this->id[$position]=$id;
$this->qt[$position]=$qt;
$this->vt[$position]=$vt;
}

}

La funzione update che ci permetterà di modificare la quantità dei prodotti o, eventualmente, delle varianti:

function update($id,$qt,$vt) {

$position = -1;

for ($i=0;$i<count($this->id);$i++) {
//Prelevo la posizione del prodotto nell'array
if ($this->id[$i]==$id) $position=$i;
}

//Aggiorno le informazioni del prodotto
$this->qt[$position]=$qt;
$this->vt[$position]=$vt;

if ($position==-1) echo "Impossibile aggiornare il prodotto,
prodotto non trovato!<br><br>";

}

La funzione delete che ci permetterà di eliminare prodotti dal carrello:

function delete($id) {

$position = -1;

for ($i=0;$i<count($this->id);$i++) {
if ($this->id[$i]==$id) $position=$i;
}

if ($position!=-1) {

$cont=0;

for ($i=0;$i<count($this->id);$i++) {

if ($this->id[$i]!=$id) {
$app_id[$cont]=$this->id[$i];
$app_qt[$cont]=$this->qt[$i];
$app_vt[$cont]=$this->vt[$i];
$cont++;
}

}

unset($this->id);
unset($this->qt);
unset($this->vt);

for ($i=0;$i<count($app_id);$i++) {
$this->id[$i]=$app_id[$i];
$this->qt[$i]=$app_qt[$i];
$this->vt[$i]=$app_vt[$i];
}

}
else echo "Impossibile cancellare il prodotto,
prodotto non trovato!<br><br>";

}

Ed aggiungiamo, infine, una funzione che stampa il contenuto del carrello. Questa funzione ci permetterà di testare la classe ed avere un output a video:

function printcart() {

for ($i=0;$i<count($this->id);$i++) {

echo "<b>ID:</b> " .$this->id[$i] ."<br>";
echo "<b>QT:</b> " .$this->qt[$i] ."<br>";
echo "<b>VT:</b> " .$this->vt[$i] ."<br><br>";

}

}

Vediamo come includere la classe in un nostro progetto ed effettuiamo un test:

<? php

include("cart.php");

//Inizializziamo la classe
$cart = new cart();

//Aggiungo l'elemento con id 1
$cart->add(1,1,0);

//Aggiorno la quantità dell'elemento 1
$cart->update(1,2,1);

//Aggiungo l'elemento con id 2
$cart->add(2,1,0);

//Aggiungo l'elemento con id 3
$cart->add(3,1,0);

//Elimino l'elemento con id 2
$cart->delete(2);

//Stampo il contenuto del carrello
$cart->printcart();

?>

Puoi scaricare gratuitamente i files della classe “cart” e dell’esempio.

Articolo pubblicato per blographik da Emanuele Calì di EmaWebDesign.com.

Ti è piaciuto questo articolo?

Ricevi continui aggiornamenti su come migliorare il tuo blog:

Scegli di seguire i post e le chicche di blographik (esclusiva ai soli iscritti), direttamente nella tua casella email.

Abbonati ora alla newsletter compilando questo form.

Nome:
Email:
 
 

Articoli correlati:

Se di tuo interesse, puoi consultare anche i seguenti post correlati:

6 Commenti

  1. gaetanz
    8 luglio 2009 alle 17:07 | Permalink

    ciao,
    sto provando a utilizzare la classe e devo dire che è davvero fatta molto bene.
    non ho capito una cosa, come faccio a passare il carrello da una pagina ad un’altra senza perdere gli inserimenti fatti in precedenza?

  2. 9 luglio 2009 alle 10:36 | Permalink

    Ciao Gaetanz,

    la classe illustra a livello teorico come lavora un carrello virtuale. Nell’esempio agisce su un array in quanto è solo un esempio del comportamento delle varie funzioni del carrello.

    In un progetto concreto, per tenere traccia dei prodotti e quindi “mantenerli nel carrello” di un utente ti consiglio di salvare le informazioni in un database.

    Al momento dell’autenticazione dell’utente, i prodotti verranno caricati nel carrello virtuale.

  3. Francesco
    2 febbraio 2010 alle 22:30 | Permalink

    Scusa ma come fa questo script a funzionare????
    Cioè una volta inviata la pagina al client il codice php ha terminato la sua esecuzione e quindi alla successiva chiamata della pagina gli array che contengono le info del carrello verrebbero di nuovo inizializzati e automaticamente perderebbero i valori precedenti.

    Io conosco solo 3 metodi per gestire un carrello:
    1- Tramite un cookie
    2- Tramite le sessioni
    3- Salvando i valori in tabelle del DB temporanee

    Questo script secondo me non ha assolutamente senso di esistere in via pratica

  4. 3 febbraio 2010 alle 09:53 | Permalink

    Speriamo che Emanuele abbia un secondo per rispondere alle tue domande.
    A presto

  5. 13 febbraio 2010 alle 18:33 | Permalink

    Ciao Francesco,

    l'articolo spiega come funziona "logicamente" un carrello, parlo di progettazione e uso un array per una questione di praticità.

    Come ho detto in un commento precedente e come hai giustamente ricordato tu, senza Cookie o Database non si può tenere traccia degli acquisti ecc.

    Non si tratta di uno script completo che permette di implementare un e-commerce, è un articolo nato dalla richiesta di un utente che voleva capire il funzionamento logico di un carrello virtuale.

  6. 14 febbraio 2010 alle 10:55 | Permalink

    Grazie Emanuele per la tua precisazione, sei stato chiarissimo.

    Buon blogging ;)

6 Trackbacks

  1. [...] Ecco il link all’articolo: Realizza un carrello virtuale per un e-shop in PHP e scarica i file originali (parte 2) [...]

  2. [...] come progettare e realizzare un carrello virtuale per un e-shop in PHP (parte 1) Realizza un carrello virtuale per un e-shop in PHP e scarica i file originali (parte [...]

  3. [...] Realizza un carrello virtuale per un e-shop in PHP e scarica i file originali (parte 2); [...]

  4. [...] Realizza un carrello virtuale per un e-shop in PHP e scarica i file originali (parte 2); [...]

  5. [...] Realizza un carrello virtuale per un e-shop in PHP e scarica i file originali (parte 2); [...]

  6. [...] Realizza un carrello virtuale per un e-shop in PHP e scarica i file originali (parte 2); [...]

Commenta il post

La tua e-mail non sará mai resa di pubblico dominio.
I campi contrassegnati sono obbigatori *

*
*
blog comments powered by Disqus