@@ -27,10 +27,16 @@ public function execute(Observer $observer)
27
27
if ($ transportObject === null ) {
28
28
return ;
29
29
}
30
+
30
31
$ this ->order = $ transportObject ->getOrder ();
32
+ if ($ this ->order === null ) {
33
+ return ;
34
+ }
31
35
32
- if ($ this ->order !== null && $ this -> order ->getSendcloudServicePointId ()) {
36
+ if ($ this ->order ->getSendcloudServicePointId ()) {
33
37
$ this ->getServicePointVariables ($ transportObject );
38
+ } else if ($ this ->order ->getSendcloudCheckoutData ()) {
39
+ $ this ->getCheckoutData ($ transportObject );
34
40
}
35
41
}
36
42
@@ -48,4 +54,34 @@ private function getServicePointVariables($transportObject)
48
54
$ transportObject ['sc_servicepoint_city ' ] = $ order ->getSendcloudServicePointCity ();
49
55
$ transportObject ['sc_servicepoint_post_no ' ] = $ order ->getSendcloudServicePointPostnumber ();
50
56
}
57
+
58
+ private function getCheckoutData ($ transportObject )
59
+ {
60
+ /** @var OrderInterface $order */
61
+ $ order = $ this ->order ;
62
+
63
+ $ checkoutData = $ this ->serializer ->unserialize ($ order ->getSendcloudData ());
64
+
65
+ if (empty ($ checkoutData )) {
66
+ return ;
67
+ }
68
+
69
+ if ($ checkoutData ['delivery_method_type ' ] === 'nominated_day_delivery ' ||
70
+ $ checkoutData ['delivery_method_type ' ] === 'same_day_delivery '
71
+ ) {
72
+ $ transportObject ['sc_carrier ' ] = $ checkoutData ['carrier ' ] ? $ checkoutData ['carrier ' ]['name ' ] : null ;
73
+ $ transportObject ['sc_expected_delivery_date ' ] =
74
+ $ checkoutData ['delivery_method_data ' ] ?
75
+ $ checkoutData ['delivery_method_data ' ]['formatted_delivery_date ' ] :
76
+ null ;
77
+ } else if ($ checkoutData ['delivery_method_type ' ] === 'service_point_delivery ' ) {
78
+ $ transportObject ['sc_servicepoint_id ' ] = $ checkoutData ['delivery_method_data ' ]['service_point ' ]['id ' ];
79
+ $ transportObject ['sc_servicepoint_name ' ] = $ checkoutData ['delivery_method_data ' ]['service_point ' ]['name ' ];
80
+ $ transportObject ['sc_servicepoint_street ' ] = $ checkoutData ['delivery_method_data ' ]['service_point ' ]['street ' ];
81
+ $ transportObject ['sc_servicepoint_house_no ' ] = $ checkoutData ['delivery_method_data ' ]['service_point ' ]['house_number ' ];
82
+ $ transportObject ['sc_servicepoint_zipcode ' ] = $ checkoutData ['delivery_method_data ' ]['service_point ' ]['postal_code ' ];
83
+ $ transportObject ['sc_servicepoint_city ' ] = $ checkoutData ['delivery_method_data ' ]['service_point ' ]['city ' ];
84
+ $ transportObject ['sc_servicepoint_post_no ' ] = $ checkoutData ['delivery_method_data ' ]['post_number ' ];
85
+ }
86
+ }
51
87
}
0 commit comments