• Laravel 7

    Shopping : les pays

    On va continuer dans cet article à coder l’administration de la boutique. On va gérer les pays avec leur TVA. Vous pouvez télécharger un ZIP du projet ici. Les données Pour les pays on a créé un table countries toute simple avec juste le nom du pays et la TVA : Avec le seeder on a créé 4 pays dont deux sans TVA. Le tableau des pays Datatables Pour l’administration on va gérer tous les tableaux avec le package laravel-datatables : composer require yajra/laravel-datatables Une fois le package installé on peut utiliser cette commande pour créer une datatable : php artisan datatables:make Countries Complétez ainsi le code : <?php namespace…

  • Laravel 7

    Shopping : paramétrer la boutique

    Nous avons dans le précédent article mis en place la structure de l’administration. Nous allons à présent coder le paramétrage de la boutique pour préciser nom, adresse, téléphone, compte bancaire… Vous pouvez télécharger un ZIP du projet ici. Les données Toutes les informations de la boutique sont rassemblées dans la table shops : Avec la population on a renseigné les champs de façon aléatoire : Ces données sont utilisées à plusieurs endroits de la boutique. On a un seul enregistrement parce qu’une seule boutique. Dans l’administration il faut pouvoir modifier toutes ces valeurs. Contrôleur et route On crée un contrôleur : php artisan make:controller Back\ShopController On prévoit une méthode edit…

  • Laravel 7

    Shopping : l’administration

    Nous voici arrivés dans la partie cachée de la boutique, celle de l’administration. Il y a des tas de façons de mettre en place une administration avec même des systèmes tout prêts. Mais quel que soit le système existant bien souvent on a plus de travail pour l’adapter à ses besoins que si on codait tout nous-même. C’est donc ce que je vous propose. Pour la structure de base j’ai opté pour AdminLTE. J’ai d’ailleurs écrit récemment un article pour montrer comment l’intégrer dans Laravel 7. Mais pour être complet je vais reprendre les différentes étapes de l’intégration, d’autant que je vais procéder différemment, et ajouter quelques helpers et un…

  • Laravel 7

    Shopping : notifications, pages et statut

    On va terminer dans cet article la partie frontend de la boutique avec des notifications, des pages d’information et une mémorisation des connexions des clients. Vous pouvez télécharger un ZIP du projet ici. Les notifications On va prévoir deux notifications pour les administrateurs : inscription d’un nouvel utilisateur nouvelle commande (même si on a déjà mis en place l’envoi d’un email) On va utiliser le système de notification avec la base de données. On avait anticipé la création de la table. Nouveau client On crée la notification pour un nouveau client : php artisan make:notification NewUser <?php namespace App\Notifications; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Notifications\Notification; class NewUser extends Notification {…

  • Laravel 7

    Shopping : les emails

    Dans cet article on va mettre en œuvre la création et l’envoi des emails. Pour une boutique en ligne c’est fondamental parce qu’il y a un certain nombre d’étapes qui nécessitent l’envoi d’un email. Mais il serait contre-productif et vraiment pas écologique d’en utiliser trop. Il faut savoir se limiter à l’essentiel. On peut prévoir un email de bienvenue lorsqu’un client s’inscrit. On doit aussi prévoir un email lorsqu’une commande est validée. Par contre il n’est pas nécessaire d’en prévoir un lorsqu’on prépare la commande si l’envoi est rapide, d’autre part il serait dommage d’envoyer un email pour indiquer que la commande est partie si on passe par le service…

  • Laravel 7

    Shopping : le compte client 3/3

    Dans cet article on va terminer le codage du compte du client en lui permettant de consulter la liste de ses commandes et le détail pour chacune d’elles. Dans le cas d’un paiement par carte non abouti on va lui donner aussi la possibilité d’effectuer ce paiement avec Stripe. Vous pouvez télécharger un ZIP du projet ici. La liste des commandes Pour gérer la liste des commandes on va ajouter une méthode index au contrôleur OrdersController : public function index(Request $request) { $orders = $request->user()->orders()->with('state')->get(); return view('account.orders.index', compact('orders')); } On récupère dans la base toutes les commandes du client connecté accompagnées de leur état. On ajoute la route et on…

  • Laravel 7

    Shopping : le compte client 2/3

    Dans cet article on va continuer à créer le compte client pour notre boutique. Après lui avoir permis de modifier ses données personnelles et nous êtres mis en conformité avec le RGPD nous allons à présent lui permettre de créer et modifier des adresses. Le code présent dans cet article est un excellent exemple de gestion complète d’une ressource. Vous pouvez télécharger un ZIP du projet ici. Contrôleur et routes Pour gérer les adresses on crée un contrôleur de ressource : php artisan make:controller AddressController --resource --model=Models\Address On va conserver toutes les méthodes sauf show. On prévoit les routes : Route::middleware('auth')->group(function () { // Gestion du compte Route::prefix('compte')->group(function () {…

  • Laravel 7

    Shopping : le compte client 1/3

    Après avoir codé la boutique, les commandes le paiement et la facturation il nous reste encore le compte client à créer pour qu’il puisse mettre à jour ses informations personnelles, ses adresses, accéder au détail de ses commandes et à toutes ses données pour satisfaire les exigences du RGPD. Vous pouvez télécharger un ZIP du projet ici. Un contrôleur et sa route On va créer un contrôleur pour l’accès au compte client : php artisan make:controller AccountController <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class AccountController extends Controller { public function __invoke(Request $request) {        $orders = $request->user()->orders()->count(); return view('account.index', compact('orders')); } } On a une seule méthode. On regarde si le client…

  • Laravel 7

    Shopping : la facture

    Dans cet article nous allons aborder la partie création de facture. C’est un chapitre important pour une boutique en ligne. Il faut se poser une question de base : est-ce qu’on génère et mémorise la facture directement dans la boutique ou est-ce qu’on utilise un service tiers ? La réglementation anti fraude à la TVA est devenue très contraignante. On peut concevoir que ces fraudes sont sans doutes fréquentes et répandues  mais comme toujours ce sont les agissements d’un petit nombre qui complique la vie de la majorité, c’est vrai dans tous les domaines. Toujours est-il qu’il faut respecter la réglementation en vigueur et on doit pouvoir fournir une attestation…