Tempo di lettura: 6 minuti
Laravel è uno dei framework PHP più popolari e potenti, e quando lo combiniamo con Stripe, uno dei leader nei pagamenti online, possiamo creare applicazioni di e-commerce moderne e sicure. In questo tutorial, ti mostrerò come costruire un’applicazione di e-commerce semplice che permetta agli utenti di acquistare prodotti, aggiungerli al carrello e completare il pagamento tramite Stripe.
Cosa ti servirà:
-
Laravel 11 installato.
-
Un account su Stripe per ottenere le chiavi API.
-
Un editor di codice (come VS Code o PHPStorm).
-
Composer per gestire le dipendenze in Laravel.
-
Un ambiente di sviluppo configurato (XAMPP, Homestead, Docker, o simili).
Passo 1: Installazione di Laravel 11
Il primo passo è installare Laravel 11. Se non hai già una versione di Laravel 11, puoi installarla facilmente utilizzando Composer. Esegui questo comando nel terminale per creare un nuovo progetto Laravel:
composer create-project --prefer-dist laravel/laravel ecommerce-stripe "11.*"
Questa operazione creerà una nuova cartella chiamata ecommerce-stripe
con l’installazione di Laravel 11.
Passo 2: Configurazione dell’ambiente di sviluppo
-
File .env: Dopo aver installato Laravel, configura il tuo ambiente. Apri il file
.env
e configura il database e altre variabili come il nome dell’app e la chiave Stripe. Ad esempio:APP_NAME=EcommerceApp APP_ENV=local APP_KEY=base64:your_app_key APP_DEBUG=true APP_URL=http://localhost DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=ecommerce DB_USERNAME=root DB_PASSWORD= STRIPE_KEY=your_publishable_key STRIPE_SECRET=your_secret_key
- Migrations:Laravel è dotato di un sistema di migrations per la gestione del database. Per ora, creeremo una semplice tabella
products
che conterrà i dati dei prodotti che venderai nel tuo negozio.
Esegui il comando per creare una migration:php artisan make:migration create_products_table --create=products
Apri la migration appena creata in
database/migrations/
e aggiungi il codice per la tabella dei prodotti:public function up() { Schema::create('products', function (Blueprint $table) { $table->id(); $table->string('name'); $table->text('description'); $table->decimal('price', 8, 2); $table->timestamps(); }); }
Esegui la migration:
php artisan migrate
Passo 3: Creazione del modello e del controller dei prodotti
-
Modello: Crea un modello
Product
che interagisce con la tabellaproducts
:
Passo 6: Creazione della vista del carrello
Crea una vista
resources/views/cart.blade.php
per visualizzare gli articoli nel carrello:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Shopping Cart</title> </head> <body> <h1>Your Cart</h1> <div> @foreach(session('cart') as $id => $details) <div> <h3>{{ $details['name'] }}</h3> <p>Quantity: {{ $details['quantity'] }}</p> <p>Total: ${{ $details['quantity'] * $details['price'] }}</p> </div> @endforeach </div> <a href="/checkout">Proceed to Checkout</a> </body> </html>
Passo 7: Implementare il pagamento con Stripe
-
Checkout: Crea una route per il checkout e una vista per inserire i dettagli di pagamento.
Aggiungi questa route al file
web.php
:Route::get('/checkout', [CheckoutController::class, 'index']); Route::post('/checkout', [CheckoutController::class, 'processPayment']);
2.Controller di Checkout: Crea il controller
CheckoutController
con i metodi per visualizzare il modulo di pagamento e gestire il pagamento con Stripe:php artisan make:controller CheckoutController
Nel controller
CheckoutController
, implementa la logica per il pagamento tramite Stripe:namespace App\Http\Controllers; use Stripe\Stripe; use Stripe\Charge; use Illuminate\Http\Request; class CheckoutController extends Controller { public function index() { return view('checkout'); } public function processPayment(Request $request) { Stripe::setApiKey(env('STRIPE_SECRET')); $amount = array_sum(array_column(session('cart'), 'price')); // Calcola l'importo totale try { $charge = Charge::create([ 'amount' => $amount * 100, // Stripe accetta i pagamenti in centesimi 'currency' => 'usd', 'description' => 'Order Payment', 'source' => $request->stripeToken, ]); // Paga con successo, processa l'ordine session()->forget('cart'); return redirect()->route('home')->with('success', 'Payment successful!'); } catch (\Exception $e) { return back()->withErrors(['error' => $e->getMessage()]); } } }
3.Vista del Checkout: Crea la vista
resources/views/checkout.blade.php
per visualizzare il modulo di pagamento con Stripe.<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Checkout</title> </head> <body> <h1>Checkout</h1> <form action="/checkout" method="POST"> @csrf <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="{{ env('STRIPE_KEY') }}" data-amount="{{ $totalAmount * 100 }}" data-name="Ecommerce Store" data-description="Complete your purchase" data-currency="usd"></script> </form> </body> </html>
Conclusioni
Ora hai tra le mani un’applicazione di e-commerce funzionante che ti consente di visualizzare i prodotti, aggiungerli al carrello e completare l’acquisto in modo sicuro tramite Stripe. Hai visto come strutturare l’intero flusso, dalla gestione dei prodotti fino all’integrazione del pagamento online, usando le potenzialità di Laravel 11.
Questa è solo la base di partenza: puoi espandere questa applicazione introducendo nuove funzionalità come la registrazione e autenticazione degli utenti, uno storico degli ordini, sistemi di tracking per le spedizioni, codici sconto, gestione dell’inventario, notifiche via email, dashboard di amministrazione, e molto altro. Laravel offre tutti gli strumenti per farlo in modo scalabile, elegante e professionale.
Stripe, da parte sua, continua ad essere una delle piattaforme di pagamento più sicure e flessibili del mercato, con supporto per carte di credito, Apple Pay, Google Pay, bonifici e molto altro ancora. È una scelta solida sia per progetti personali che per startup e attività commerciali di ogni dimensione.
Se ti è piaciuto questo tutorial e vuoi approfondire tutto ciò che Laravel 11 può offrirti — dai fondamenti alla costruzione di applicazioni complete, passando per buone pratiche, tips avanzati e concetti architetturali — ti consiglio il mio libro:
👉 Laravel 11: dall’idea al codice
Una guida pratica, aggiornata e ricca di esempi reali per imparare a padroneggiare il framework PHP più popolare.Buono studio, e buon codice!
-