Warenwirtschaft: AP-38 — ERP-/Connector-Status-Mapping vervollständigt

Die orange Ampel bei abgeschlossenen Bestellungen ist KEIN ERP-Fehler: der
Endpoint /api/wp/status liefert für versendete Bestellungen bereits sent/close
(Live-DB: 111× shipped=2, 1× shipped=3). Ursache liegt shopseitig (Cron/Auth) —
wird per SSH geprüft. Unabhängig davon die latenten Mapping-Lücken geschlossen:

ERP (ShoppingOrder::$apiShippedTypes):
- Status 5 (Wartestellung) fehlte und lieferte den Default 'free' (im Shop gar
  kein Licht). Jetzt 5 => 'process' (Shop-Ampel orange = in Bearbeitung).

Connector (partnercenter-api, Teil von v1.6.0 — noch nicht ausgerollt):
- admin/post-list.php: Ampel-Switch deckt jetzt 'pick_up' (Abholung ⇒ grün) und
  'cancel' (storniert ⇒ neue rote Kugel) ab; vorher fielen beide auf ⚠️.
- woocommerce/order-status.php: 'pick_up' und 'cancel' gelten jetzt als
  Endzustände und fallen aus der stündlichen Nachfrage-Liste
  (_partnercenter_api_unclear_order_ids) — vorher wurden 12 stornierte
  Bestellungen dauerhaft weiter gepollt.

Test: AP-38-Mapping prüft alle shipped-Werte (kein stiller 'free'-Fallback mehr).
Suite 338 grün.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-08-28 11:01:25 +00:00
parent d2b14b24a3
commit 0c8d321f66
4 changed files with 42 additions and 2 deletions

View file

@ -81,7 +81,9 @@ class PARTNERCENTER_API_Order_Post_List_Class
case 'free':
break;
case 'sent':
case 'close': ?>
case 'close':
case 'pick_up': // AP-38: Abholung = erfüllt ⇒ grün
?>
<div class="partnercenter-status-circle green"></div>
<?php
break;
@ -90,6 +92,11 @@ class PARTNERCENTER_API_Order_Post_List_Class
<div class="partnercenter-status-circle orange"></div>
<?php
break;
case 'cancel': // AP-38: storniert ⇒ rot
?>
<div class="partnercenter-status-circle red"></div>
<?php
break;
default: ?>
<span style="font-size: 200%">
<?php _e('⚠️', 'partnercenter-api'); ?>
@ -127,6 +134,10 @@ class PARTNERCENTER_API_Order_Post_List_Class
background: limegreen;
}
.partnercenter-status-circle.red {
background: crimson;
}
</style>
<?php }

View file

@ -261,7 +261,9 @@ class PARTNERCENTER_API_WooCommerce_Order_Status_Class
// Store new status
update_post_meta($order_key, '_partnercenter_api_order_status', sanitize_title($order_status));
if (! in_array($order_status, ['close', 'sent'])) {
// AP-38: Endzustände aus der Nachfrage-Liste nehmen — sonst werden
// abgeholte/stornierte Bestellungen stündlich weiter abgefragt.
if (! in_array($order_status, ['close', 'sent', 'pick_up', 'cancel'])) {
continue;
}