From a3a79ee9c5ecb0db9d80830902d865e60c40a8d5 Mon Sep 17 00:00:00 2001 From: Dima Uryvskiy Date: Wed, 26 Jan 2022 12:59:20 +0300 Subject: [PATCH] Add documentation for registering client functionality --- doc/2. Workflow/ Client Registration.md | 17 +++++++++++++++++ doc/2. Workflow/Address.md | 2 +- src/include/class-wc-retailcrm-customers.php | 4 ++-- src/include/class-wc-retailcrm-history.php | 1 - 4 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 doc/2. Workflow/ Client Registration.md diff --git a/doc/2. Workflow/ Client Registration.md b/doc/2. Workflow/ Client Registration.md new file mode 100644 index 0000000..c1b7faf --- /dev/null +++ b/doc/2. Workflow/ Client Registration.md @@ -0,0 +1,17 @@ +#Регистрация клиентов + +Клиент может зарегистрироваться на сайте: +* Администратор может зарегистрировать клиента через административную панель WordPress. +* На странице wp-admin. +* При заполнении email в форме регистрации на сайте. +* Когда оформляет новый заказ, если клиент является "гостем" ему будет предложено зарегистрироваться. + +Модуль обрабатывает регистрацию клиентов через хук **user_register**. + +Модуль обрабатывает таких клиентов по следующей логике: +1. Производится поиск по email в CRM, если клиент найден, происходит обновление его данных в CRM и актуализируется его externalId. +2. Если клиент не найден в CRM, будет создан новый. + +Данная логика позволяет минимизировать количество дублей. +Возможно ситуация, когда клиент был удален в CMS, но в CRM такой клиент продолжает существовать, чтобы не потерять таких клиентов производится актуализация их данных. + diff --git a/doc/2. Workflow/Address.md b/doc/2. Workflow/Address.md index 9d5e6c4..c467274 100644 --- a/doc/2. Workflow/Address.md +++ b/doc/2. Workflow/Address.md @@ -1,4 +1,4 @@ -# Address processing +# Работа с адресами С версии `4.3.8` изменена логика работы с адресами. diff --git a/src/include/class-wc-retailcrm-customers.php b/src/include/class-wc-retailcrm-customers.php index ce9f229..844d7e1 100644 --- a/src/include/class-wc-retailcrm-customers.php +++ b/src/include/class-wc-retailcrm-customers.php @@ -115,7 +115,7 @@ if (!class_exists('WC_Retailcrm_Customers')) : if ($response->isSuccessful() && !empty($response['customers'])) { $customers = $response['customers']; - $customer = reset($customers); + $customer = reset($customers); if (isset($customer['id'])) { $this->updateCustomerById($customerId, $customer['id']); @@ -123,7 +123,7 @@ if (!class_exists('WC_Retailcrm_Customers')) : $builder = new WC_Retailcrm_WC_Customer_Builder(); $builder ->setWcCustomer($wcCustomer) - ->setPhones(isset($customer['phones']) ? $customer['phones'] : array()) + ->setPhones(isset($customer['phones']) ? $customer['phones'] : []) ->setAddress(isset($customer['address']) ? $customer['address'] : false) ->build() ->getResult() diff --git a/src/include/class-wc-retailcrm-history.php b/src/include/class-wc-retailcrm-history.php index 0199911..349999e 100644 --- a/src/include/class-wc-retailcrm-history.php +++ b/src/include/class-wc-retailcrm-history.php @@ -375,7 +375,6 @@ if (!class_exists('WC_Retailcrm_History')) : } if (isset($order['contact']['address'])) { - var_dump('test'); $billingAddress = $order['contact']['address']; // @codeCoverageIgnoreStart