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ą.