Initial commit: WitShop Laravel Online-Shop

- Laravel 11, Blade, Alpine.js, Tailwind CSS
- Produkt- & Kategorieverwaltung mit Varianten
- Checkout (Vorkasse + Rechnung), Session-Warenkorb
- Admin-Backend (Dashboard, Bestellungen, Kunden, CMS)
- DSGVO-konform: Cookie-Consent, Impressum, Widerruf, AGB
- PDF-Rechnung via dompdf, SMTP-Mailversand
- Kundenverwaltung mit manueller Freischaltung

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-20 00:34:09 +02:00
co-authored by Claude Sonnet 4.6
commit 41078fdc08
208 changed files with 21725 additions and 0 deletions
@@ -0,0 +1,27 @@
@extends('layouts.admin')
@section('title', 'Banner')
@section('content')
<div class="flex justify-between items-center mb-6">
<h2 class="text-lg font-semibold">Startseiten-Banner</h2>
<a href="{{ route('admin.banners.create') }}" class="bg-blue-600 text-white px-4 py-2 rounded hover:bg-blue-700 text-sm">+ Neuer Banner</a>
</div>
<div class="grid grid-cols-3 gap-4">
@forelse($banners as $banner)
<div class="bg-white rounded shadow overflow-hidden">
@if($banner->image)<img src="{{ asset('storage/'.$banner->image) }}" class="w-full h-32 object-cover">@endif
<div class="p-4">
<p class="font-medium text-sm">{{ $banner->headline ?: '(kein Titel)' }}</p>
<p class="text-xs text-gray-400">Reihenfolge: {{ $banner->sort_order }}</p>
<div class="flex gap-2 mt-3">
<a href="{{ route('admin.banners.edit', $banner) }}" class="text-blue-600 text-sm hover:underline">Bearbeiten</a>
<form method="POST" action="{{ route('admin.banners.destroy', $banner) }}" onsubmit="return confirm('Löschen?')">
@csrf @method('DELETE')<button class="text-red-600 text-sm hover:underline">Löschen</button>
</form>
</div>
</div>
</div>
@empty
<p class="col-span-3 text-gray-400">Keine Banner.</p>
@endforelse
</div>
@endsection