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:
Kevin Adametz 2026-07-17 11:35:40 +00:00
parent a1f94ea427
commit 0eed974576
13 changed files with 611 additions and 25 deletions

View file

@ -0,0 +1,30 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* AP-32 Brückenlösung (17.07.2026): DHL-Label wird im WooCommerce-Shop erstellt
* (Plugin "DHL for WooCommerce") und bei der API-Übertragung mitgeliefert.
* wp_label_url = Original-URL im Shop (Fallback), wp_label_path = lokal
* gespeicherte Kopie (privater Storage, Auslieferung nur über Admin-Route).
* Die Sendungsnummer landet in der bestehenden Spalte `tracking`.
*/
public function up(): void
{
Schema::table('shopping_orders', function (Blueprint $table) {
$table->string('wp_label_url', 500)->nullable()->after('wp_invoice_path');
$table->string('wp_label_path', 255)->nullable()->after('wp_label_url');
});
}
public function down(): void
{
Schema::table('shopping_orders', function (Blueprint $table) {
$table->dropColumn(['wp_label_url', 'wp_label_path']);
});
}
};