Fixed resetting customer's fields in Prestashop in case of it deleting in RetailCRM

This commit is contained in:
opheugene 2020-11-19 12:29:30 +03:00 committed by GitHub
parent 114ae5efd1
commit 54959b7a15
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 20 deletions

View File

@ -87,7 +87,10 @@ class RetailcrmHistory
$customerBuilder->setDataCrm($customerHistory);
if (isset($customerHistory['externalId'])) {
$customerData = self::$api->customersGet($customerHistory['externalId'], 'externalId');
if (isset($customerData['customer']) && $customerData['customer']) {
$foundCustomer = new Customer($customerHistory['externalId']);
$customerAddress = new Address(RetailcrmTools::searchIndividualAddress($foundCustomer));
$addressBuilder = new RetailcrmCustomerAddressBuilder();
@ -115,6 +118,8 @@ class RetailcrmHistory
continue;
}
}
}
} else {
$customerBuilder->build();

View File

@ -171,7 +171,6 @@ class RetailcrmHistoryHelper {
if (isset($change['deleted'])
&& $change['deleted']
&& isset($customers[$change['customer']['id']])
) {
$customers[$change['customer']['id']]['deleted'] = true;
continue;

View File

@ -47,6 +47,19 @@ class RetailcrmHistoryTest extends RetailcrmTestCase
)
);
$this->apiMock->expects($this->any())
->method('customersGet')
->willReturn(
new RetailcrmApiResponse(
'200',
json_encode(
array(
'customer' => $this->getApiCustomer()
)
)
)
);
RetailcrmHistory::$default_lang = (int)Configuration::get('PS_LANG_DEFAULT');
RetailcrmHistory::$api = $this->apiMock;