name('home'); // Produkte Route::get('/produkte', [Shop\ProductController::class, 'index'])->name('shop.products.index'); Route::get('/kategorie/{slug}', [Shop\ProductController::class, 'category'])->name('shop.category'); Route::get('/produkt/{slug}', [Shop\ProductController::class, 'show'])->name('shop.product.show'); // Warenkorb Route::get('/warenkorb', [Shop\CartController::class, 'index'])->name('cart.index'); Route::post('/warenkorb/hinzufuegen', [Shop\CartController::class, 'add'])->name('cart.add'); Route::post('/warenkorb/aktualisieren', [Shop\CartController::class, 'update'])->name('cart.update'); Route::post('/warenkorb/entfernen/{key}', [Shop\CartController::class, 'remove'])->name('cart.remove'); // Checkout Route::get('/kasse', [Shop\CheckoutController::class, 'index'])->name('checkout.index'); Route::post('/kasse/adresse', [Shop\CheckoutController::class, 'storeAddress'])->name('checkout.address'); Route::get('/kasse/zahlung', [Shop\CheckoutController::class, 'payment'])->name('checkout.payment'); Route::match(['GET','POST'], '/kasse/bestaetigen', [Shop\CheckoutController::class, 'confirm'])->name('checkout.confirm'); Route::get('/kasse/danke/{order}', [Shop\CheckoutController::class, 'thankyou'])->name('checkout.thankyou'); // CMS-Seiten Route::get('/seite/{slug}', [Shop\PageController::class, 'show'])->name('page'); Route::get('/blog', [Shop\PageController::class, 'blog'])->name('blog'); Route::get('/blog/{slug}', [Shop\PageController::class, 'blogPost'])->name('blog.post'); Route::get('/faq', [Shop\FaqController::class, 'index'])->name('faq'); Route::get('/widerruf', [Shop\WiderrufsController::class, 'index'])->name('widerruf'); Route::post('/widerruf', [Shop\WiderrufsController::class, 'submit'])->name('widerruf.submit'); // Kundenkonto (eingeloggt) Route::middleware(['auth', 'verified'])->prefix('konto')->name('account.')->group(function () { Route::get('/', [Shop\AccountController::class, 'index'])->name('index'); Route::get('/bestellungen', [Shop\AccountController::class, 'orders'])->name('orders'); Route::get('/bestellung/{order}', [Shop\AccountController::class, 'orderDetail'])->name('order'); Route::get('/adressen', [Shop\AccountController::class, 'addresses'])->name('addresses'); Route::post('/adressen', [Shop\AccountController::class, 'storeAddress'])->name('addresses.store'); Route::delete('/adressen/{address}', [Shop\AccountController::class, 'destroyAddress'])->name('addresses.destroy'); Route::get('/einstellungen', [Shop\AccountController::class, 'settings'])->name('settings'); Route::put('/einstellungen', [Shop\AccountController::class, 'updateSettings'])->name('settings.update'); }); // Bestellverfolgung (Gast) Route::get('/bestellung/verfolgen', [Shop\OrderTrackingController::class, 'index'])->name('order.track'); Route::post('/bestellung/verfolgen', [Shop\OrderTrackingController::class, 'show'])->name('order.track.show'); // Auth (Breeze) require __DIR__.'/auth.php'; // ─── Admin ─────────────────────────────────────────────────────── Route::middleware(['auth', 'admin'])->prefix('admin')->name('admin.')->group(function () { Route::get('/', [Admin\DashboardController::class, 'index'])->name('dashboard'); // Kategorien Route::resource('categories', Admin\CategoryController::class); // Artikel Route::resource('products', Admin\ProductController::class); // Attribute Route::get('attributes', [Admin\AttributeController::class, 'index'])->name('attributes.index'); Route::post('attributes', [Admin\AttributeController::class, 'store'])->name('attributes.store'); Route::delete('attributes/{attribute}', [Admin\AttributeController::class, 'destroy'])->name('attributes.destroy'); Route::post('attributes/{attribute}/values', [Admin\AttributeController::class, 'storeValue'])->name('attributes.values.store'); Route::delete('attribute-values/{value}', [Admin\AttributeController::class, 'destroyValue'])->name('attribute-values.destroy'); // Kunden Route::get('customers', [Admin\CustomerController::class, 'index'])->name('customers.index'); Route::get('customers/{customer}', [Admin\CustomerController::class, 'show'])->name('customers.show'); Route::post('customers/{customer}/toggle-approval', [Admin\CustomerController::class, 'toggleApproval'])->name('customers.toggle-approval'); Route::delete('customers/{customer}', [Admin\CustomerController::class, 'destroy'])->name('customers.destroy'); // Bestellungen Route::get('orders', [Admin\OrderController::class, 'index'])->name('orders.index'); Route::get('orders/{order}', [Admin\OrderController::class, 'show'])->name('orders.show'); Route::put('orders/{order}/status', [Admin\OrderController::class, 'updateStatus'])->name('orders.status'); Route::post('orders/{order}/invoice', [Admin\OrderController::class, 'sendInvoice'])->name('orders.invoice'); Route::get('orders/{order}/pdf', [Admin\OrderController::class, 'downloadInvoice'])->name('orders.pdf'); // CMS: Seiten Route::resource('pages', Admin\PageController::class); // CMS: Banner Route::resource('banners', Admin\BannerController::class); // CMS: FAQ Route::get('faqs', [Admin\FaqController::class, 'index'])->name('faqs.index'); Route::post('faqs/groups', [Admin\FaqController::class, 'storeGroup'])->name('faqs.groups.store'); Route::post('faqs', [Admin\FaqController::class, 'store'])->name('faqs.store'); Route::put('faqs/{faq}', [Admin\FaqController::class, 'update'])->name('faqs.update'); Route::delete('faqs/{faq}', [Admin\FaqController::class, 'destroy'])->name('faqs.destroy'); // Admin-Benutzer Route::get('admins', [Admin\AdminUserController::class, 'index'])->name('admins.index'); Route::get('admins/create', [Admin\AdminUserController::class, 'create'])->name('admins.create'); Route::post('admins', [Admin\AdminUserController::class, 'store'])->name('admins.store'); Route::get('admins/{admin}/edit', [Admin\AdminUserController::class, 'edit'])->name('admins.edit'); Route::put('admins/{admin}', [Admin\AdminUserController::class, 'update'])->name('admins.update'); Route::delete('admins/{admin}', [Admin\AdminUserController::class, 'destroy'])->name('admins.destroy'); // Einstellungen Route::get('settings', [Admin\SettingsController::class, 'index'])->name('settings.index'); Route::put('settings', [Admin\SettingsController::class, 'update'])->name('settings.update'); // Versandkosten Route::get('shipping', [Admin\ShippingController::class, 'index'])->name('shipping.index'); Route::post('shipping', [Admin\ShippingController::class, 'store'])->name('shipping.store'); Route::put('shipping/{rate}', [Admin\ShippingController::class, 'update'])->name('shipping.update'); Route::delete('shipping/{rate}', [Admin\ShippingController::class, 'destroy'])->name('shipping.destroy'); });