From 96f62b5e7e87f35b87f1f877d392f3c22fb3fd21 Mon Sep 17 00:00:00 2001 From: Dima Uryvskiy Date: Wed, 23 Nov 2022 11:36:21 +0300 Subject: [PATCH] Fix response status check for abandoned carts --- CHANGELOG.md | 3 ++ VERSION | 2 +- retailcrm/lib/RetailcrmCartUploader.php | 46 ++++++++++++------------- retailcrm/retailcrm.php | 2 +- 4 files changed, 27 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b94335..eefdbfb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## v3.4.14 +* Исправлен баг при передаче брошенных корзин. + ## v3.4.13 * Добавлена передача информации о модуле в CRM при его установке diff --git a/VERSION b/VERSION index 618659f..2a6849c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.4.13 +3.4.14 diff --git a/retailcrm/lib/RetailcrmCartUploader.php b/retailcrm/lib/RetailcrmCartUploader.php index 940eff7..dd53508 100644 --- a/retailcrm/lib/RetailcrmCartUploader.php +++ b/retailcrm/lib/RetailcrmCartUploader.php @@ -149,35 +149,33 @@ class RetailcrmCartUploader $response = static::$api->ordersGet($cartExternalId); - if (!($response instanceof RetailcrmApiResponse)) { - // TODO - // Extract address from cart (if exists) and append to customer? - // Or maybe this customer will not order anything, so we don't need it's address... - static::$api->customersCreate(RetailcrmOrderBuilder::buildCrmCustomer(new Customer($cart->id_customer))); + if ($response instanceof RetailcrmApiResponse) { + if (empty($response['order'])) { + // TODO + // Extract address from cart (if exists) and append to customer? + // Or maybe this customer will not order anything, so we don't need it's address... + static::$api->customersCreate(RetailcrmOrderBuilder::buildCrmCustomer(new Customer($cart->id_customer))); - $order = static::buildCartOrder($cart, $cartExternalId); + $order = static::buildCartOrder($cart, $cartExternalId); - if (empty($order)) { - continue; - } + if (empty($order)) { + continue; + } - if (false !== static::$api->ordersCreate($order)) { - $cart->date_upd = date('Y-m-d H:i:s'); - $cart->save(); - } + if (false !== static::$api->ordersCreate($order)) { + $cart->date_upd = date('Y-m-d H:i:s'); + $cart->save(); + } + } elseif (!empty($response['order']['externalId'])) { + $order = static::buildCartOrder($cart, $response['order']['externalId']); - continue; - } + if (empty($order)) { + continue; + } - if (isset($response['order']) && !empty($response['order'])) { - $order = static::buildCartOrder($cart, $response['order']['externalId']); - - if (empty($order)) { - continue; - } - - if (false !== static::$api->ordersEdit($order)) { - static::registerAbandonedCartSync($cart->id); + if (false !== static::$api->ordersEdit($order)) { + static::registerAbandonedCartSync($cart->id); + } } } } diff --git a/retailcrm/retailcrm.php b/retailcrm/retailcrm.php index 351a861..19d1c5f 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.4.13'; + const VERSION = '3.4.14'; const API_URL = 'RETAILCRM_ADDRESS'; const API_KEY = 'RETAILCRM_API_TOKEN';