@php $nf0 = fn ($v) => number_format((float) $v, 0, ',', '.'); // Fehlende Stammdaten einmal zusammenziehen: Hersteller und Warengruppen // kann die JTL-API nur lesen, nicht anlegen. $ohneGruppe = 0; $fehlMarken = []; foreach ($zeilen as $v) { foreach ($v['hinweise'] ?? [] as $h) { if (str_starts_with($h, 'keine Warengruppe')) { $ohneGruppe++; } elseif (str_starts_with($h, 'Hersteller')) { $fehlMarken[$v['hersteller']] = ($fehlMarken[$v['hersteller']] ?? 0) + 1; } } } arsort($fehlMarken); $titel = ['anlegen' => 'Artikel anlegen', 'anreichern' => 'Felder ergänzen', 'bilder' => 'Bilder übernehmen']; @endphp
Katalog @foreach($titel as $schluessel => $text) @if($was === $schluessel) {{ $text }} @else {{ $text }} @endif @endforeach
{{-- Was in welcher Warenwirtschaft ansteht --}}
@foreach($ziele as $schluessel => $z)

{{ $z['name'] }}

{{ $nf0($summen[$schluessel] ?? 0) }} {{ $was === 'bilder' ? 'Artikel mit Bildern' : ($was === 'anreichern' ? 'Artikel zu ergänzen' : 'Artikel anzulegen') }}

@endforeach

Nur eine Rechnung: es wird nichts geschrieben und keine Artikelnummer verbraucht. Die Nummern unten sind die, die vergeben würden – in beiden Warenwirtschaften dieselbe. Der Lauf selbst startet täglich um 03:20.

@if($was === 'anlegen' && ($ohneGruppe > 0 || $fehlMarken))

Vorher in JTL anlegen

Hersteller und Warengruppen kann die API nur lesen. Fehlen sie, entsteht der Artikel trotzdem – nur eben ohne Marke; nachtragen geht später über „Felder ergänzen“.

@if($ohneGruppe > 0) ohne Warengruppe {{ $nf0($ohneGruppe) }} @endif @foreach($fehlMarken as $marke => $anzahl) {{ $marke }} {{ $nf0($anzahl) }} @endforeach
@endif {{-- Eine Liste für beide Instanzen: die Abzeichen sagen, wo es ansteht. --}}
@if($was === 'anlegen') @endif @forelse($zeilen as $v) @if($was === 'anlegen') @endif @empty @endforelse
Artikelnummer ArtikelKategorie Warengruppe Herstellersteht an in
{{ $v['nummer'] ?? $v['sku'] }} {{ $v['name'] }} @if($was === 'anlegen' && ($v['ean'] ?? null)) EAN {{ $v['ean'] }} · {{ $v['liefnr'] }} @endif {{ config('extrade.kategorie_ast') }} @if($v['kategorie'] ?? null)› {{ $v['kategorie'] }}@endif {{ $v['warengruppe'] ?: 'keine' }} {{ $v['hersteller'] ?: '–' }}
@foreach($ziele as $schluessel => $z) @php $wert = $v['ziele'][$schluessel] ?? null; @endphp {{ $schluessel === 'online' ? 'online:' : 'offline:' }} @if($wert === null) nichts zu tun @elseif($was === 'anreichern') {{ $wert }} @elseif($was === 'bilder') {{ $wert }} Bilder @else wird angelegt @endif @endforeach
Nichts zu tun – in beiden Warenwirtschaften ist alles vorhanden.
@foreach($meldungen as $ziel => $liste) @if($liste)

Hinweise – {{ $ziele[$ziel]['name'] ?? $ziel }}

@endif @endforeach