Abholwald macht den gewählten Abholpunkt zur Lieferadresse der Bestellung. Viele Label-Plugins funktionieren damit ohne Anpassung. Zusätzlich speichern wir den Punkt in festen Feldern an der Bestellung:
// WooCommerce: am einfachsten über die Hilfsfunktion
$point = abholwald_get_order_point( $order ); // null ohne Abholpunkt
// oder direkt aus den Metafeldern der Bestellung
$order->get_meta( '_abholwald_carrier' ); // Paketdienst, Kürzel kleingeschrieben
$order->get_meta( '_abholwald_point_id' ); // ID beim Paketdienst, immer mit Präfix: Partner-Land_ID
$order->get_meta( '_abholwald_<kürzel>_shop_id' ); // dieselbe ID noch einmal, je Paketdienst ein Feld
$order->get_meta( '_abholwald_point_type' ); // 'locker' oder 'parcel_shop'
$order->get_meta( '_abholwald_station_number' ); // Stationsnummer, falls vorhanden
$order->get_meta( '_abholwald_station_keyword' ); // Begriff dazu fürs Label, falls vorhanden
$order->get_meta( '_abholwald_customer_number' ); // Kundennummer beim Paketdienst, falls nötig
$order->get_meta( '_abholwald_point' ); // alles als Array: Name, Adresse, Typ, IDs
// sobald ein Punkt an einer Bestellung gespeichert wurde
add_action( 'abholwald_pickup_point_saved', function ( $order, $point, $customer_number ) {
// …
}, 10, 3 );
// Shopware 6: dieselben Namen als Zusatzfelder der Bestellung
$order->getCustomFields()['_abholwald_point_id'];
// PrestaShop und Magento 2
Abholwald::getOrderPoint( $idOrder )['_abholwald_point_id'];
$order->getData( 'abholwald_point_id' );
Alle Felder stehen zusätzlich ohne Unterstrich an der Bestellung (z. B. abholwald_point_id). So erscheinen sie in WooCommerce unter „Benutzerdefinierte Felder“ in Shopware als Zusatzfelder (Set „abholwald“), in PrestaShop und Magento in eigenen Spalten und lassen sich in Label-Plugins direkt auswählen. Die Feldnamen bleiben stabil, Plugins für weitere Shopsysteme nutzen dieselben Namen.
Euer Plugin erwartet den Abholpunkt in einem bestimmten Feld? Schreibt uns an jens@abholwald.de, dann füllen wir es gezielt mit.