From de9f0720f9a9c9f4e03551e4cfa19e2c370a43b6 Mon Sep 17 00:00:00 2001 From: Uryvskiy Dima Date: Mon, 24 Apr 2023 11:35:37 +0300 Subject: [PATCH] The 'isFromCart' parameter was added when creating an order --- CHANGELOG.md | 3 +++ VERSION | 2 +- retailcrm/lib/RetailcrmExport.php | 26 ++++++++++++++++++- retailcrm/lib/RetailcrmExportOrdersHelper.php | 3 +-- .../lib/events/RetailcrmMissingEvent.php | 6 ++--- retailcrm/retailcrm.php | 11 +++----- retailcrm/upgrade/upgrade-3.4.0.php | 3 +-- 7 files changed, 37 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 95b9044..d5c3eb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## v3.5.2 +* Добавлен признак корзины при создании заказа + ## v3.5.1 * Обновление формата даты в корзинах diff --git a/VERSION b/VERSION index d5c0c99..87ce492 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.5.1 +3.5.2 diff --git a/retailcrm/lib/RetailcrmExport.php b/retailcrm/lib/RetailcrmExport.php index 44c4b6b..1a6cc11 100644 --- a/retailcrm/lib/RetailcrmExport.php +++ b/retailcrm/lib/RetailcrmExport.php @@ -396,7 +396,8 @@ class RetailcrmExport throw new RetailcrmNotFoundException('Order not found'); } - $customer = new Customer($object->id_customer); + $customerId = $object->id_customer; + $customer = new Customer($customerId); $apiResponse = static::$api->ordersGet($object->id); $existingOrder = []; @@ -418,6 +419,29 @@ class RetailcrmExport } if (empty($existingOrder)) { + try { + $reference = new RetailcrmReferences(static::$api); + $site = $reference->getSite()['code']; + $crmCart = static::$api->cartGet($customerId, $site); + + if (!empty($crmCart['cart'])) { + // If the order is from a corporate customer, need to clear the cart for the contact person + if (!empty($crmOrder['contragent']['legalName']) && !empty($crmOrder['contact'])) { + static::$api->cartClear( + [ + 'clearedAt' => date('Y-m-d H:i:sP'), + 'customer' => ['externalId' => $customerId], + ], + $site + ); + } else { + $crmOrder['isFromCart'] = true; + } + } + } catch (Throwable $exception) { + self::handleError($customerId, $exception); + } + $response = static::$api->ordersCreate($crmOrder); } else { $response = static::$api->ordersEdit($crmOrder); diff --git a/retailcrm/lib/RetailcrmExportOrdersHelper.php b/retailcrm/lib/RetailcrmExportOrdersHelper.php index 3973c82..7e9efed 100644 --- a/retailcrm/lib/RetailcrmExportOrdersHelper.php +++ b/retailcrm/lib/RetailcrmExportOrdersHelper.php @@ -100,8 +100,7 @@ class RetailcrmExportOrdersHelper $sqlOrdersInfo = 'FROM `' . _DB_PREFIX_ . 'retailcrm_exported_orders` eo LEFT JOIN `' . _DB_PREFIX_ . 'orders` o on o.`id_order` = eo.`id_order` - WHERE ( eo.`id_order` IS NULL OR ( 1 ' . Shop::addSqlRestriction(false, 'o') . ' ) )' - ; + WHERE ( eo.`id_order` IS NULL OR ( 1 ' . Shop::addSqlRestriction(false, 'o') . ' ) )'; if (0 < count($ordersIds)) { $sqlOrdersInfo .= ' AND (eo.`id_order` IN ( ' . pSQL(implode(', ', $ordersIds)) . ') diff --git a/retailcrm/lib/events/RetailcrmMissingEvent.php b/retailcrm/lib/events/RetailcrmMissingEvent.php index fdb203f..47558a7 100644 --- a/retailcrm/lib/events/RetailcrmMissingEvent.php +++ b/retailcrm/lib/events/RetailcrmMissingEvent.php @@ -120,8 +120,7 @@ class RetailcrmMissingEvent extends RetailcrmAbstractEvent implements RetailcrmE } else { $order['status'] = array_key_exists($orderInstance->current_state, $status) ? $status[$orderInstance->current_state] - : 'completed' - ; + : 'completed'; } /** @@ -134,8 +133,7 @@ class RetailcrmMissingEvent extends RetailcrmAbstractEvent implements RetailcrmE if ($address instanceof Address) { $phone = null === $address->phone ? null === $address->phone_mobile ? '' : $address->phone_mobile - : $address->phone - ; + : $address->phone; $postcode = $address->postcode; $city = $address->city; diff --git a/retailcrm/retailcrm.php b/retailcrm/retailcrm.php index 7b8dd81..1f6e73c 100644 --- a/retailcrm/retailcrm.php +++ b/retailcrm/retailcrm.php @@ -48,7 +48,7 @@ require_once dirname(__FILE__) . '/bootstrap.php'; class RetailCRM extends Module { - const VERSION = '3.5.1'; + const VERSION = '3.5.2'; const API_URL = 'RETAILCRM_ADDRESS'; const API_KEY = 'RETAILCRM_API_TOKEN'; @@ -203,8 +203,7 @@ class RetailCRM extends Module && ($this->use_new_hooks ? $this->registerHook('actionCustomerAccountUpdate') : true) && ($this->use_new_hooks ? $this->registerHook('actionValidateCustomerAddressForm') : true) && $this->installDB() - && $this->installTab() - ; + && $this->installTab(); } /** @@ -358,8 +357,7 @@ class RetailCRM extends Module && Configuration::deleteByName(RetailcrmJobManager::CURRENT_TASK) && Configuration::deleteByName(RetailcrmCli::CURRENT_TASK_CLI) && $this->uninstallDB() - && $this->uninstallTab() - ; + && $this->uninstallTab(); } public function enable($force_all = false) @@ -369,8 +367,7 @@ class RetailCRM extends Module self::updateCrmModuleState($context->shop->id); return parent::enable($force_all) - && $this->installTab() - ; + && $this->installTab(); } public function disable($force_all = false) diff --git a/retailcrm/upgrade/upgrade-3.4.0.php b/retailcrm/upgrade/upgrade-3.4.0.php index 8174b7b..68a6d54 100644 --- a/retailcrm/upgrade/upgrade-3.4.0.php +++ b/retailcrm/upgrade/upgrade-3.4.0.php @@ -146,8 +146,7 @@ function upgrade_module_3_4_0($module) 'retailcrm/views/templates/admin/settings.tpl', ]) && $module->uninstallOldTabs() - && $module->installTab() - ; + && $module->installTab(); } function retailcrm_convert_old_default_values_format()