0) { $time = intval($time); } else { $time = 0; } $now = new DateTime(); $sql = 'SELECT c.id_cart, c.date_upd FROM '._DB_PREFIX_.'cart AS c WHERE id_customer != 0 AND TIME_TO_SEC(TIMEDIFF(\''.pSQL($now->format('Y-m-d H:i:s')).'\', date_upd)) >= '.$time.' AND c.id_cart NOT IN(SELECT id_cart from '._DB_PREFIX_.'orders);'; $rows = Db::getInstance()->executeS($sql); $status = Configuration::get('RETAILCRM_API_SYNCHRONIZED_CART_STATUS'); $paymentTypes = array_keys(json_decode(Configuration::get('RETAILCRM_API_PAYMENT'), true)); if (empty($rows) || empty($status) || !$api || (count($paymentTypes) < 1) ) { return; } foreach ($rows as $cartId) { $cart = new Cart($cartId['id_cart']); $cartExternalId = RetailCRM::getCartOrderExternalId($cart); $response = $api->ordersGet($cartExternalId); if ($response === false) { $api->customersCreate(RetailCRM::buildCrmCustomer(new Customer($cart->id_customer))); $order = RetailCRM::buildCrmOrderFromCart($cart, $cartExternalId, $paymentTypes[0], $status); if (empty($order)) { continue; } if ($api->ordersCreate($order) !== false) { $cart->date_upd = date('Y-m-d H:i:s'); $cart->save(); } continue; } if (isset($response['order']) && !empty($response['order'])) { $order = RetailCRM::buildCrmOrderFromCart($cart, $response['order']['externalId'], $paymentTypes[0], $status); if (empty($order)) { continue; } if ($api->ordersEdit($order) !== false) { $cart->date_upd = date('Y-m-d H:i:s'); $cart->save(); } } }