Opcje dla zaawansowanych użytkowników
Poniżej prezentujemy możliwości modyfikacji wtyczki dla zaawansowanych użytkowników, którzy znają podstawy PHP, HTML i CSS.
Przesyłanie danych do zewnętrznych integracji wysyłkowych
Wtyczka umożliwia pobieranie danych związanych z utworzonymi przesyłkami i wysyłanie ich to zewnętrznych integracji wysyłkowych takich jak Baselinker czy ShipStation.
Pobieranie danych
Pobieranie danych z przesyłek możliwe jest przez REST API WooCommerce. Do danych zamówienia dołączane są dane przesyłek w polu fs_shiping_lines.
Pole fs_shipping_lines jest tablicą, która zawiera co najmniej jedną przesyłkę. Przy większej ilości przesyłek, będą one umieszczone w kolejności, w jakiej zostały utworzone.
Dane dostępne dla zewnętrznych integracji wysyłkowych
Wtyczka umożliwia pobieranie następujących danych:
- rodzaj integracji
- sposób utworzenia
- usługa
- ID paczkomatu do odbioru
- gabaryt przesyłki
- sposób wysyłki
- ubezpieczenie wysyłki
- kwota ubezpieczenia wysyłki
- przesyłka za pobraniem
- kwota pobrania
- waga przesyłki
- wymiary przesyłki
- sposób wysyłki
- ID paczkomatu do wysyłki
Przykładowe dane zwracane przez wtyczkę
"fs_shipping_lines": [ {
"_integration": "paczkomaty",
"_shipping_id": "54",
"created_via": "checkout",
"_paczkomaty_usluga": "paczkomaty",
"_paczkomat_id": "BEL085",
"_paczkomat_size": "A",
"_paczkomat_sending_method": "dispatch_order",
"_paczkomat_ubezpieczenie": "1",
"_paczkomat_cod": "1",
"_paczkomat_dropoff_parcel_machine": "BBI02A",
"_paczkomat_dropoff_pop": "",
"_paczkomat_dropoff_dispatch_point": "",
"_paczkomat_customer_ref": "Zamówienie 135",
"_paczkomat_ubezpieczenie_amount": "13.53",
"_paczkomat_cod_amount": "13.53",
"_paczkomat_weight": "1",
"_flexible_shipping_status": "created",
"_paczkomat_width": "",
"_paczkomat_height": "",
"_paczkomat_length": "",
"_paczkomat_shipment_id": "218436",
} ],
Zamiana nadawcy z odbiorcą
Istnieje możliwość zamiany domyślnego nadawcy z odbiorcą za pomocą filtra woocommerce_paczkomaty_inpost_shipment_data. Filtr ten otrzymuje na wejściu dane przesyłki, które wtyczka wysyła do API oraz obiekt przesyłki WPDesk_Flexible_Shipping_Shipment_Paczkomaty, z którego oprócz danych ustawionych w metaboxie można pobrać także dane zamówienia.
Klient może wtedy zostać nadawcą, a sklep odbiorcą przesyłki. Rozwiązanie to znajduje zastosowanie np. w sytuacji gdy sklep funkcjonuje jako skup i to klienci nadają do niego przesyłki z przedmiotami.
Użycie filtra:
/** * @param stdClass $shipment_data . * @param WPDesk_Flexible_Shipping_Shipment_Paczkomaty $order . * * @return stdClass */ function modify_paczkomaty_inpost_shipment_data( $shipment_data, $shipment ) $order = $shipment->get_order(); return $shipment_data; } add_filter( 'woocommerce_paczkomaty_inpost_shipment_data', 'modify_paczkomaty_inpost_shipment_data', 10, 2 );
Przykładowe zastosowanie:
/**
*@param stdClass $shipment_data .
*@param WPDesk_Flexible_Shipping_Shipment_Paczkomaty $order .
*
* @return stdClass
*/
function replace_sender_and_receiver_in_inpost_shipment_data( $shipment_data, $shipment ) {
$shipment_data->sender = $shipment_data->receiver;
$receiver = new stdClass();
$receiver->address = new stdClass();
$receiver->address->street = 'ul. Przykladowa';
$receiver->address->building_number = '23/1';
$receiver->address->city = 'Warszawa';
$receiver->address->post_code = '01-231';
$receiver->address->country_code = 'PL';
$receiver->company_name = 'Nazwa firmy';
$receiver->first_name = 'Jan';
$receiver->last_name = 'Kowalski';
$receiver->email = 'example@domain.pl';
$receiver->phone = '123456789';
$shipment_data->receiver = $receiver;
return $shipment_data;
}
add_filter( 'woocommerce_paczkomaty_inpost_shipment_data', 'replace_sender_and_receiver_in_inpost_shipment_data', 10, 2 );
Zmiana treści notatek do zamówienia / wysyłanych wiadomości SMS
Za pomocą hook'a woocommerce_new_order_note_data istnieje możliwość modyfikacji dodawanej do zamówienia notatki po nadaniu przesyłki i wygenerowaniu etykiety, zawierającej link trackingowy. Informacja ta jest również wysyłana do klienta, a możliwość jej zmiany ma szczególne znaczenie w przypadku korzystania z dodatkowych systemów powiadomień drogą SMSową.