-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathNostoOrderBuyer.php
More file actions
77 lines (72 loc) · 2.9 KB
/
Copy pathNostoOrderBuyer.php
File metadata and controls
77 lines (72 loc) · 2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
/**
* 2013-2022 Nosto Solutions Ltd
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to contact@nosto.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author Nosto Solutions Ltd <contact@nosto.com>
* @copyright 2013-2022 Nosto Solutions Ltd
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*/
use Nosto\Model\Order\Buyer as NostoSDKOrderBuyer;
class NostoOrderBuyer extends NostoSDKOrderBuyer
{
/**
* Loads the buyer data from the customer object.
*
* @param Customer $customer the customer model to process
* @param Order $order the order object
* @return NostoOrderBuyer|null the buyer object
* @throws PrestaShopException
*/
public static function loadData(Customer $customer, Order $order)
{
if (!NostoHelperConfig::isCustomerTaggingEnabled()) {
return null;
}
$nostoBuyer = new NostoOrderBuyer();
$nostoBuyer->setFirstName($customer->firstname);
$nostoBuyer->setLastName($customer->lastname);
$nostoBuyer->setMarketingPermission($customer->newsletter);
$billingAddressId = $order->id_address_invoice;
$addresses = $customer->getAddresses($order->id_lang);
if ($addresses) {
foreach ($addresses as $address) {
if (array_key_exists('id_address', $address)
&& $address['id_address'] === $billingAddressId
) {
$addressObject = new Address($address['id_address'], $order->id_lang);
if ($addressObject->phone_mobile) {
$nostoBuyer->setPhone($addressObject->phone_mobile);
} elseif ($addressObject->phone) {
$nostoBuyer->setPhone($addressObject->phone);
}
$nostoBuyer->setPostcode($addressObject->postcode);
if (array_key_exists('id_country', $address)) {
$nostoBuyer->setCountry(Country::getIsoById($address['id_country']));
}
break;
}
}
}
NostoHelperHook::dispatchHookActionLoadAfter(get_class($nostoBuyer), array(
'customer' => $customer,
'nosto_order_buyer' => $nostoBuyer
));
return $nostoBuyer;
}
}