name('home'); Route::get('/mentions-legales', [IndexController::class, 'legalNotice'])->name('legal-notice'); Route::get('/cgv', [IndexController::class, 'terms'])->name('terms'); Route::get('/politique-de-confidentialite', [IndexController::class, 'privacy'])->name('privacy'); Route::get('/faq', [IndexController::class, 'faq'])->name('faq'); //Route::get('/mon-panier', [BasketController::class, 'index'])->name('basket'); //Catalogue Route::get('/gammes-de-produits', [ProductsController::class, 'ranges'])->name('ranges'); Route::get('/gamme-de-produits/{rangeSlug}', [ProductsController::class, 'range'])->name('range')->middleware('redirect-slugs'); Route::get('/produits', [ProductsController::class, 'allProducts'])->name('products'); Route::get('/produits/{tagSlug}', [ProductsController::class, 'tagFiltered'])->name('products.tagfilter'); Route::get('/recherche', [ProductsController::class, 'allProducts'])->name('search'); Route::get('/produit/{productSlug}', [ProductsController::class, 'product'])->name('product')->middleware('redirect-slugs'); // Route ajax pour Single Optin Route::post('/optin', [HomeController::class, 'addOptIn'])->name('add-single-optin'); //Contact Route::get('/contactez-nous', [ContactController::class, 'contact'])->name('contact'); Route::post('/contactez-nous', [ContactController::class, 'contactSubmit'])->name('contact-us.submit'); Route::prefix('ajax') ->name('ajx.') ->group(function () { Route::post('/add-to-cart', [BasketController::class, 'addToCart'])->name('cart.add'); Route::post('/get-cart', [BasketController::class, 'getCart'])->name('cart.get'); Route::post('/remove-from-cart', [BasketController::class, 'removeFromCart'])->name('cart.remove'); Route::post('/empty-cart', [BasketController::class, 'emptyCart'])->name('cart.empty'); }); Route::namespace('App\Http\Controllers\Bo') ->prefix('bo') ->name('bo.') ->middleware(['auth', 'is-admin']) ->group(function () { Route::get('/', [DashboardController::class, 'index'])->name('dashboard'); Route::match(['get', 'put'], '/content/{key}', [ContentController::class, 'manage'])->name('content'); Route::match(['get', 'put'], '/settings', [SettingsController::class, 'manage'])->name('settings'); // FAQ Route::get('/faq', [FaqController::class, 'index'])->name('faq'); Route::post('/ajax/save-faq', [FaqController::class, 'saveDatas']); Route::post('/ajax/delete-faq', [FaqController::class, 'destroy']); // Produits //route ajoutée avant la déclaration de route resource sinon la forme /products/{product} l'emporte lors du routage Route::get('/products/starred', [\App\Http\Controllers\Bo\ProductsController::class, 'starred']) ->name('products.starred'); Route::resource('products', '\App\Http\Controllers\Bo\ProductsController')->except([ 'create' ]); Route::get('/products/create/{product_type}', [\App\Http\Controllers\Bo\ProductsController::class, 'create']) ->name('products.create'); Route::resource('ranges', RangesController::class); Route::resource('promotions', PromotionsController::class); Route::get('/customer-info/{id}', [OrdersController::class, 'getCustomerInfo'])->name('get-customer-info'); // Commandes Route::get('/orders', [OrdersController::class, 'index'])->name('orders'); Route::get('/orders/{reference}', [OrdersController::class, 'orderDetail'])->name('order-detail'); Route::get('/orders/{reference}/advance', [OrdersController::class, 'changeStatus'])->name('change-order-status'); Route::get('/orders/{reference}/cancel', [OrdersController::class, 'cancelOrder'])->name('cancel-order'); Route::post('/orders/add', [OrdersController::class, 'addProduct'])->name('order-add-product'); }); //actions sur les comptes utilisateurs Route::name('auth.') ->group(function () { //bo connect Route::get('/bo/login', [LoginController::class, 'index'])->name('login')->middleware('guest'); Route::post('/bo/login', [LoginController::class, 'login'])->name('login.post')->middleware('guest'); Route::get('/bo/logout', [LoginController::class, 'logout'])->name('logout')->middleware('auth:web'); //customer connect Route::get('/connexion', [CustomerController::class, 'authenticateForm'])->name('connexion')->middleware('guest'); Route::post('/connexion', [CustomerController::class, 'authenticate'])->name('connexion.post')->middleware('guest'); Route::get('/deconnexion', [CustomerController::class, 'logout'])->name('deconnexion')->middleware('auth:customer'); //customer inscription Route::get('/inscription', [CustomerController::class, 'registerForm'])->name('register')->middleware('guest'); Route::post('/inscription', [CustomerController::class, 'register'])->name('register.post')->middleware('guest'); Route::get('/activer/{hashcode}', [CustomerController::class, 'activate'])->name('activer'); //formulaire de demande de réinit Route::get('/mot-de-passe-oublie', [CustomerController::class, 'forgotPasswordForm'])->name('forgot-password'); //réinit et envoi mail Route::post('/reinitialiser-mdp', [CustomerController::class, 'passwordReset'])->name('reinit-mdp'); //formulaire reinit Route::get('/reinitialiser-mdp/{token}', [CustomerController::class, 'viewChangePassword'])->name('form-change-mdp'); //changement en crm Route::post('/reinitialiser-mdp/{token}', [CustomerController::class, 'changePassword'])->name('change-password'); }); Route::name('account.') ->prefix('compte') ->middleware('auth:customer') ->group(function () { Route::get('/profil', [CustomerController::class, 'dashboard'])->name('dashboard'); Route::post('/profil', [CustomerController::class, 'updateInfos'])->name('update-infos'); Route::post('/profil/change-mdp', [CustomerController::class, 'changePasswordWhenAuthenticated'])->name('change-password'); Route::get('/commandes', [CustomerController::class, 'myOrders'])->name('my-orders'); Route::get('/commandes/{reference}', [CustomerController::class, 'orderDetail'])->name('order-detail'); }); //tunnel de commande Route::prefix('commande') ->name('sales.') ->middleware('auth:customer') ->group(function () { //puisqu'on a le middleware on s'épargne une étape //recap Route::get('/recap', [OrdersController::class, 'recapOrder' ])->name('recap'); Route::post('/recap', [OrdersController::class, 'store' ])->name('order-init'); //choice timeslot Route::get('/collect/{reference}', [OrdersController::class, 'timeSlotPick' ])->name('pick-slot'); Route::post('/collect', [OrdersController::class, 'setTimeSlot' ])->name('order-save-slot'); //confirm Route::get('/confirm/{reference}', [OrdersController::class, 'confirmOrder' ])->name('confirm'); });