Warenwirtschaft: AP-32-Brückenlösung — DHL-Label aus WooCommerce übernehmen
Bestell-Übertragung (wp/order) akzeptiert wp_label_url + wp_tracking_number: Label-PDF wird als lokale Kopie im privaten Storage gespeichert (Shop-URL ist öffentlich erratbar; Kopie überlebt Löschung im Shop), Sendungsnummer landet in shopping_orders.tracking. Neuer Endpoint wp/label zum Nachreichen (Connector-Hook pr_save_dhl_label_tracking), wp/status liefert die Sendungsnummer an den Shop zurück. Abwicklungs-Board + Bestell-Details zeigen Label-Download (copyreader-Dokumentroute type=label, Fallback Shop-Link) und Sendungsnummer. Download-Fehler blockieren die Übertragung nie. Doku: Connector-Update-Anleitung (dev/product management), Hinweise, Testleitfaden §11, Plan-Protokoll. pint.json schließt dev/ (Fremdcode) aus. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
a1f94ea427
commit
0eed974576
13 changed files with 611 additions and 25 deletions
|
|
@ -124,10 +124,22 @@
|
|||
im Tabellenkopf = alle sichtbaren) und mit **„Lieferscheine drucken"** bzw.
|
||||
**„+ Rechnungen"** ein einziges PDF für den Stapeldruck erzeugen — fehlende
|
||||
Dokumente werden dabei automatisch miterstellt (ohne E-Mail).
|
||||
- **DHL-Label aus dem Shop (Brückenlösung, neu 17.07.2026):** Wird das
|
||||
Versandetikett im WooCommerce-Shop erstellt (Plugin „DHL for WooCommerce")
|
||||
und die Bestellung danach übertragen, kommen **Label und Sendungsnummer
|
||||
mit**: Das System lädt eine **eigene Kopie der Label-PDF** herunter (bleibt
|
||||
verfügbar, auch wenn das Label im Shop gelöscht wird) und zeigt in der
|
||||
Abwicklung und den Bestell-Details einen **„Label"-Download** plus die
|
||||
Sendungsnummer. Wird das Label im Shop erst später (neu) erstellt, reicht
|
||||
der Shop es automatisch nach. Die Sendungsnummer wird über die
|
||||
Status-Abfrage auch an den Shop zurückgemeldet (Tracking-Link für den
|
||||
Endkunden). Die vollständige DHL-Anbindung im Partnercenter (Labels direkt
|
||||
hier erzeugen, AP-32) bleibt geplant.
|
||||
|
||||
### In Vorbereitung / geplant
|
||||
|
||||
- **Versand im System** (DHL-Etiketten per API, AP-32), **Audit-Trail**,
|
||||
- **Versand im System** (DHL-Etiketten per API, AP-32 — bis dahin gilt die
|
||||
Brückenlösung „DHL-Label aus dem Shop", s. o.), **Audit-Trail**,
|
||||
**blockbasierte Rechte**, **2FA für Admins**,
|
||||
**WaWi-Einstellungsseite** (Schwellwerte/Defaults zentral).
|
||||
- **Produktentwicklung:** Menüpunkt ist als Platzhalter angelegt – das genaue
|
||||
|
|
|
|||
|
|
@ -157,6 +157,20 @@
|
|||
|
||||
---
|
||||
|
||||
## 11. DHL-Label aus dem Shop (Brückenlösung, neu 17.07.2026)
|
||||
|
||||
**Wo:** Menü **[Bestellungen → Abwicklung](/admin/inventory/orders)** und Bestell-Details unter **Verkäufe**
|
||||
|
||||
**Neu:**
|
||||
- Wird das DHL-Etikett **im WooCommerce-Shop** erstellt und die Bestellung danach übertragen, speichert das System eine **eigene Kopie der Label-PDF** und die **Sendungsnummer** an der Bestellung.
|
||||
- In der Abwicklung erscheint bei der Bestellung ein **„Label"-Download** (neben dem externen Rechnungslink) samt Sendungsnummer; ebenso in den Bestell-Details.
|
||||
- Wird das Label im Shop erst **nach** der Übertragung erstellt (oder neu erstellt), reicht der Shop es automatisch nach — es taucht dann ohne weiteres Zutun in der Abwicklung auf.
|
||||
- Voraussetzung: das kleine Update des Verbindungs-Plugins im WooCommerce-Shop ist eingespielt.
|
||||
|
||||
**So testen:** Im Shop eine Testbestellung mit DHL-Label versehen → Bestellung ins Partnercenter übertragen → in der **Abwicklung** bei der Bestellung auf **„Label"** klicken (PDF öffnet sich) und die Sendungsnummer prüfen. Danach einmal andersherum: Bestellung zuerst übertragen, Label im Shop erst danach erstellen → Seite neu laden, der Label-Download muss nachträglich erscheinen.
|
||||
|
||||
---
|
||||
|
||||
## Hinweis am Rande
|
||||
|
||||
Die Listen **Einkauf & Wareneingang** und **Produktionen** zeigen aus Performance-Gründen die neuesten 500 Einträge; darüber erscheint ein Link **„Alle anzeigen"**. Offene Bestellungen sind immer vollständig gelistet.
|
||||
|
|
|
|||
|
|
@ -185,6 +185,19 @@
|
|||
@else
|
||||
<span class="text-muted small">{{ __('extern') }}</span>
|
||||
@endif
|
||||
{{-- AP-32 Brückenlösung: DHL-Label aus dem Shop (lokale Kopie, sonst Shop-Link) --}}
|
||||
@if ($order->wp_label_path)
|
||||
<a href="{{ route('admin.inventory.orders.document', [$order->id, 'label']) }}" target="_blank" title="{{ __('DHL-Label') }}" class="ml-1">
|
||||
<span class="fas fa-tag"></span> {{ __('Label') }}
|
||||
</a>
|
||||
@elseif ($order->wp_label_url)
|
||||
<a href="{{ $order->wp_label_url }}" target="_blank" rel="noopener" title="{{ __('DHL-Label (extern im Shop)') }}" class="ml-1">
|
||||
<span class="fas fa-tag"></span> {{ __('Label') }}
|
||||
</a>
|
||||
@endif
|
||||
@if ($order->tracking)
|
||||
<div class="small text-muted" title="{{ __('Sendungsnummer') }}">{{ $order->tracking }}</div>
|
||||
@endif
|
||||
@elseif (\App\Services\Invoice::isInvoice($order))
|
||||
<a href="{{ route('admin.inventory.orders.document', [$order->id, 'invoice']) }}" target="_blank" title="{{ __('Rechnung') }}" class="mr-1"><span class="far fa-file-alt"></span> {{ __('Re.') }}</a>
|
||||
<a href="{{ route('admin.inventory.orders.document', [$order->id, 'delivery']) }}" target="_blank" title="{{ __('Lieferschein') }}" class="mr-1"><span class="fas fa-dolly"></span> {{ __('LS') }}</a>
|
||||
|
|
|
|||
|
|
@ -618,11 +618,24 @@
|
|||
|
||||
@if ($shopping_order->txaction === 'extern')
|
||||
<div class="card-body">
|
||||
@if ($shopping_order->wp_invoice_path)
|
||||
@if ($shopping_order->wp_invoice_path || $shopping_order->wp_label_path || $shopping_order->wp_label_url)
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<a href="{{ $shopping_order->wp_invoice_path }}" target="_blank"
|
||||
class="btn btn-secondary btn-sm">Link zur Rechnung</a>
|
||||
@if ($shopping_order->wp_invoice_path)
|
||||
<a href="{{ $shopping_order->wp_invoice_path }}" target="_blank"
|
||||
class="btn btn-secondary btn-sm">Link zur Rechnung</a>
|
||||
@endif
|
||||
{{-- AP-32 Brückenlösung: DHL-Label aus dem WooCommerce-Shop --}}
|
||||
@if ($shopping_order->wp_label_path)
|
||||
<a href="{{ route('admin.inventory.orders.document', [$shopping_order->id, 'label']) }}" target="_blank"
|
||||
class="btn btn-secondary btn-sm"><span class="fas fa-tag"></span> DHL-Label</a>
|
||||
@elseif ($shopping_order->wp_label_url)
|
||||
<a href="{{ $shopping_order->wp_label_url }}" target="_blank" rel="noopener"
|
||||
class="btn btn-secondary btn-sm"><span class="fas fa-tag"></span> DHL-Label (Shop)</a>
|
||||
@endif
|
||||
@if ($shopping_order->tracking)
|
||||
<span class="text-muted small ml-2">Sendungsnummer: {{ $shopping_order->tracking }}</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue