mirror of
https://github.com/retailcrm/prestashop-module.git
synced 2025-03-01 19:03:14 +03:00
Added option for sending and receiving order number
This commit is contained in:
parent
9c22f2c855
commit
2cb8804137
@ -1,2 +0,0 @@
|
||||
# Configuration
|
||||
|
21
doc/1. Setup/Configuration/Connection.md
Normal file
21
doc/1. Setup/Configuration/Connection.md
Normal file
@ -0,0 +1,21 @@
|
||||
# Connection
|
||||
|
||||
## Order number
|
||||
|
||||
Данные опции позволяют передавать номер заказа при синхронизации заказов между PrestaShop и Simla.com.
|
||||
|
||||
### Опция "Send order number to Simla.com"
|
||||
|
||||
| Статус | Номер заказа в PrestaShop | Номер заказа в Simla.com |
|
||||
|-------------|-----------------------------|----------------------------------------------------------------|
|
||||
| Включена | `reference` | `reference` |
|
||||
| Выключена | `reference` | Cоответствует шаблону в CRM для заказа, созданного через API |
|
||||
|
||||
### Опция "Receive order number from Simla.com"
|
||||
|
||||
| Статус | Номер заказа в Simla.com | Номер заказа в PrestaShop |
|
||||
|-------------|-------------------------------|--------------------------------------------------------------|
|
||||
| Включена | Cоответствует шаблону в CRM | Cоответствует шаблону в CRM |
|
||||
| Выключена | Cоответствует шаблону в CRM | `reference` |
|
||||
|
||||
Вернуть логику передачи внешнего ID заказа в Simla.com можно путём указания в настройках CRM в поле "Шаблон генерации номера заказа из API" значения `{external_id}`.
|
3
doc/1. Setup/Configuration/README.md
Normal file
3
doc/1. Setup/Configuration/README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Configuration
|
||||
|
||||
1. [Connection](Connection.md)
|
@ -1,6 +1,6 @@
|
||||
# Setup
|
||||
|
||||
1. [Installation](Installation.md)
|
||||
2. [Configuration](Configuration.md)
|
||||
2. [Configuration](./Configuration/README.md)
|
||||
3. [Upgrade](Upgrade.md)
|
||||
|
||||
|
@ -187,6 +187,8 @@ class RetailcrmHistory
|
||||
$lastSync = Configuration::get('RETAILCRM_LAST_ORDERS_SYNC');
|
||||
$lastDate = Configuration::get('RETAILCRM_LAST_SYNC');
|
||||
$references = new RetailcrmReferences(self::$api);
|
||||
$receiveOrderNumber = (bool)(Configuration::get(RetailCRM::ENABLE_ORDER_NUMBER_RECEIVING));
|
||||
$sendOrderNumber = (bool)(Configuration::get(RetailCRM::ENABLE_ORDER_NUMBER_SENDING));
|
||||
|
||||
if ($lastSync === false && $lastDate === false) {
|
||||
$filter = array(
|
||||
@ -204,6 +206,7 @@ class RetailcrmHistory
|
||||
}
|
||||
|
||||
$orderFix = array();
|
||||
$updateOrderIds = array();
|
||||
$newItemsIdsByOrderId = array();
|
||||
$historyChanges = array();
|
||||
|
||||
@ -489,13 +492,14 @@ class RetailcrmHistory
|
||||
$newOrder = new Order();
|
||||
$newOrder->id_shop = Context::getContext()->shop->id;
|
||||
$newOrder->id_shop_group = intval(Context::getContext()->shop->id_shop_group);
|
||||
$newOrder->reference = $newOrder->generateReference();
|
||||
$newOrder->id_address_delivery = isset($addressDelivery->id) ? (int)$addressDelivery->id : 0;
|
||||
$newOrder->id_address_invoice = isset($addressInvoice->id) ? (int)$addressInvoice->id : 0;
|
||||
$newOrder->id_cart = (int)$cart->id;
|
||||
$newOrder->id_currency = $default_currency;
|
||||
$newOrder->id_lang = self::$default_lang;
|
||||
$newOrder->id_customer = (int)$customer->id;
|
||||
$orderNumber = $receiveOrderNumber ? $order['number'] : $newOrder->generateReference();
|
||||
$newOrder->reference = $orderNumber;
|
||||
|
||||
if (isset($deliveryType)) {
|
||||
$newOrder->id_carrier = (int)$deliveryType;
|
||||
@ -712,15 +716,13 @@ class RetailcrmHistory
|
||||
// update order items ids in crm
|
||||
$newItemsIdsByOrderId[$newOrder->id] = $newItemsIds;
|
||||
|
||||
//TODO
|
||||
// Also update orders numbers after creating them in PrestaShop.
|
||||
// Current logic will result in autogenerated order numbers in retailCRM if
|
||||
// order was placed via retailCRM interface.
|
||||
// $upOrder = array(
|
||||
// 'externalId' => $newOrder->id,
|
||||
// 'number' => $newOrder->reference
|
||||
// );
|
||||
// self::$api->ordersEdit($upOrder);
|
||||
// collect orders id and reference if option sendOrderNumber enabled
|
||||
if ($sendOrderNumber) {
|
||||
array_push($updateOrderIds, array(
|
||||
'externalId' => $newOrder->id,
|
||||
'number' => $newOrder->reference,
|
||||
));
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
@ -1103,6 +1105,20 @@ class RetailcrmHistory
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// update order number in PS if receiveOrderNumber option (CRM->PS) enabled
|
||||
if (isset($order['number']) && $receiveOrderNumber) {
|
||||
$orderToUpdate->reference = $order['number'];
|
||||
$orderToUpdate->update();
|
||||
}
|
||||
|
||||
// collect orders id and reference if option sendOrderNumber enabled
|
||||
if ($sendOrderNumber) {
|
||||
array_push($updateOrderIds, array(
|
||||
'externalId' => $orderToUpdate->id,
|
||||
'number' => $orderToUpdate->reference,
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1110,6 +1126,13 @@ class RetailcrmHistory
|
||||
if (!empty($orderFix)) {
|
||||
self::$api->ordersFixExternalIds($orderFix);
|
||||
}
|
||||
|
||||
// update orders number in CRM
|
||||
if (!empty($updateOrderIds)) {
|
||||
foreach ($updateOrderIds as $upOrder) {
|
||||
self::$api->ordersEdit($upOrder);
|
||||
}
|
||||
}
|
||||
|
||||
// update order items ids in crm
|
||||
if (!empty($newItemsIdsByOrderId)) {
|
||||
|
@ -828,6 +828,8 @@ class RetailcrmOrderBuilder
|
||||
$delivery = json_decode(Configuration::get(RetailCRM::DELIVERY), true);
|
||||
$payment = json_decode(Configuration::get(RetailCRM::PAYMENT), true);
|
||||
$status = json_decode(Configuration::get(RetailCRM::STATUS), true);
|
||||
$sendOrderNumber = (bool)(Configuration::get(RetailCRM::ENABLE_ORDER_NUMBER_SENDING));
|
||||
$orderNumber = $sendOrderNumber ? $order->reference : null;
|
||||
|
||||
if (Module::getInstanceByName('advancedcheckout') === false) {
|
||||
$paymentType = $order->module;
|
||||
@ -861,7 +863,7 @@ class RetailcrmOrderBuilder
|
||||
|
||||
$crmOrder = array_filter(array(
|
||||
'externalId' => $order->id,
|
||||
'number' => $order->id,
|
||||
'number' => $orderNumber,
|
||||
'createdAt' => RetailcrmTools::verifyDate($order->date_add, 'Y-m-d H:i:s')
|
||||
? $order->date_add : date('Y-m-d H:i:s'),
|
||||
'status' => $order_status,
|
||||
|
@ -54,6 +54,7 @@
|
||||
<field id="contragent.bank_account" group="customerContragent">bankAccount</field>
|
||||
|
||||
<field id="id" group="order">id</field>
|
||||
<field id="number" group="order">number</field>
|
||||
<field id="created_at" group="order">createdAt</field>
|
||||
<field id="order_type" group="order">orderType</field>
|
||||
<field id="order_method" group="order">orderMethod</field>
|
||||
|
@ -73,6 +73,8 @@ class RetailCRM extends Module
|
||||
const ENABLE_CORPORATE_CLIENTS = 'RETAILCRM_ENABLE_CORPORATE_CLIENTS';
|
||||
const ENABLE_HISTORY_UPLOADS = 'RETAILCRM_ENABLE_HISTORY_UPLOADS';
|
||||
const ENABLE_BALANCES_RECEIVING = 'RETAILCRM_ENABLE_BALANCES_RECEIVING';
|
||||
const ENABLE_ORDER_NUMBER_SENDING = 'RETAILCRM_ENABLE_ORDER_NUMBER_SENDING';
|
||||
const ENABLE_ORDER_NUMBER_RECEIVING = 'RETAILCRM_ENABLE_ORDER_NUMBER_RECEIVING';
|
||||
const ENABLE_DEBUG_MODE = 'RETAILCRM_ENABLE_DEBUG_MODE';
|
||||
|
||||
const LATEST_API_VERSION = '5';
|
||||
@ -241,6 +243,8 @@ class RetailCRM extends Module
|
||||
Configuration::deleteByName(static::ENABLE_CORPORATE_CLIENTS) &&
|
||||
Configuration::deleteByName(static::ENABLE_HISTORY_UPLOADS) &&
|
||||
Configuration::deleteByName(static::ENABLE_BALANCES_RECEIVING) &&
|
||||
Configuration::deleteByName(static::ENABLE_ORDER_NUMBER_SENDING) &&
|
||||
Configuration::deleteByName(static::ENABLE_ORDER_NUMBER_RECEIVING) &&
|
||||
Configuration::deleteByName(static::ENABLE_DEBUG_MODE) &&
|
||||
Configuration::deleteByName('RETAILCRM_LAST_SYNC') &&
|
||||
Configuration::deleteByName('RETAILCRM_LAST_ORDERS_SYNC') &&
|
||||
@ -334,6 +338,7 @@ class RetailCRM extends Module
|
||||
|
||||
$apiUrl = Configuration::get(static::API_URL);
|
||||
$apiKey = Configuration::get(static::API_KEY);
|
||||
$receiveOrderNumber = (bool)(Configuration::get(RetailCRM::ENABLE_ORDER_NUMBER_RECEIVING));
|
||||
$isSuccessful = true;
|
||||
|
||||
if (!empty($apiUrl) && !empty($apiKey)) {
|
||||
@ -376,6 +381,12 @@ class RetailCRM extends Module
|
||||
|
||||
if (empty($existingOrder)) {
|
||||
$response = $this->api->ordersCreate($crmOrder);
|
||||
|
||||
if ($response->isSuccessful() && $receiveOrderNumber) {
|
||||
$crmOrder = $response->order;
|
||||
$object->reference = $crmOrder['number'];
|
||||
$object->update();
|
||||
}
|
||||
} else {
|
||||
$response = $this->api->ordersEdit($crmOrder);
|
||||
}
|
||||
@ -781,6 +792,7 @@ class RetailCRM extends Module
|
||||
public function hookActionOrderStatusPostUpdate($params)
|
||||
{
|
||||
$status = json_decode(Configuration::get(static::STATUS), true);
|
||||
$receiveOrderNumber = (bool)(Configuration::get(RetailCRM::ENABLE_ORDER_NUMBER_RECEIVING));
|
||||
|
||||
if (isset($params['orderStatus'])) {
|
||||
$cmsOrder = $params['order'];
|
||||
@ -819,7 +831,13 @@ class RetailCRM extends Module
|
||||
$this->api->ordersPaymentCreate($payment);
|
||||
}
|
||||
} else {
|
||||
$this->api->ordersCreate($order);
|
||||
$response = $this->api->ordersCreate($order);
|
||||
|
||||
if ($response->isSuccessful() && $receiveOrderNumber) {
|
||||
$crmOrder = $response->order;
|
||||
$cmsOrder->reference = $crmOrder['number'];
|
||||
$cmsOrder->update();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -954,6 +972,8 @@ class RetailCRM extends Module
|
||||
'enableCorporate' => (Tools::getValue(static::ENABLE_CORPORATE_CLIENTS) !== false),
|
||||
'enableHistoryUploads' => (Tools::getValue(static::ENABLE_HISTORY_UPLOADS) !== false),
|
||||
'enableBalancesReceiving' => (Tools::getValue(static::ENABLE_BALANCES_RECEIVING) !== false),
|
||||
'enableOrderNumberSending' => (Tools::getValue(static::ENABLE_ORDER_NUMBER_SENDING) !== false),
|
||||
'enableOrderNumberReceiving' => (Tools::getValue(static::ENABLE_ORDER_NUMBER_RECEIVING) !== false),
|
||||
'debugMode' => (Tools::getValue(static::ENABLE_DEBUG_MODE) !== false),
|
||||
'collectorActive' => (Tools::getValue(static::COLLECTOR_ACTIVE) !== false),
|
||||
'collectorKey' => (string)(Tools::getValue(static::COLLECTOR_KEY)),
|
||||
@ -977,6 +997,8 @@ class RetailCRM extends Module
|
||||
Configuration::updateValue(static::ENABLE_CORPORATE_CLIENTS, $settings['enableCorporate']);
|
||||
Configuration::updateValue(static::ENABLE_HISTORY_UPLOADS, $settings['enableHistoryUploads']);
|
||||
Configuration::updateValue(static::ENABLE_BALANCES_RECEIVING, $settings['enableBalancesReceiving']);
|
||||
Configuration::updateValue(static::ENABLE_ORDER_NUMBER_SENDING, $settings['enableOrderNumberSending']);
|
||||
Configuration::updateValue(static::ENABLE_ORDER_NUMBER_RECEIVING, $settings['enableOrderNumberReceiving']);
|
||||
Configuration::updateValue(static::COLLECTOR_ACTIVE, $settings['collectorActive']);
|
||||
Configuration::updateValue(static::COLLECTOR_KEY, $settings['collectorKey']);
|
||||
Configuration::updateValue(static::SYNC_CARTS_ACTIVE, $settings['synchronizeCartsActive']);
|
||||
@ -1360,6 +1382,8 @@ class RetailCRM extends Module
|
||||
'enableCorporate' => (bool)(Configuration::get(static::ENABLE_CORPORATE_CLIENTS)),
|
||||
'enableHistoryUploads' => (bool)(Configuration::get(static::ENABLE_HISTORY_UPLOADS)),
|
||||
'enableBalancesReceiving' => (bool)(Configuration::get(static::ENABLE_BALANCES_RECEIVING)),
|
||||
'enableOrderNumberSending' => (bool)(Configuration::get(static::ENABLE_ORDER_NUMBER_SENDING)),
|
||||
'enableOrderNumberReceiving' => (bool)(Configuration::get(static::ENABLE_ORDER_NUMBER_RECEIVING)),
|
||||
'debugMode' => (bool)(Configuration::get(static::ENABLE_DEBUG_MODE)),
|
||||
);
|
||||
}
|
||||
@ -1392,6 +1416,8 @@ class RetailCRM extends Module
|
||||
'enableCorporateName' => static::ENABLE_CORPORATE_CLIENTS,
|
||||
'enableHistoryUploadsName' => static::ENABLE_HISTORY_UPLOADS,
|
||||
'enableBalancesReceivingName' => static::ENABLE_BALANCES_RECEIVING,
|
||||
'enableOrderNumberSendingName' => static::ENABLE_ORDER_NUMBER_SENDING,
|
||||
'enableOrderNumberReceivingName' => static::ENABLE_ORDER_NUMBER_RECEIVING,
|
||||
'debugModeName' => static::ENABLE_DEBUG_MODE,
|
||||
'jobsNames' => static::JOBS_NAMES
|
||||
);
|
||||
|
@ -152,3 +152,62 @@ $_MODULE['<{retailcrm}prestashop>index_95428f32e5c696cf71baccb776bc5c15'] = 'Tra
|
||||
$_MODULE['<{retailcrm}prestashop>index_e7f9e382dc50889098cbe56f2554c77b'] = 'Tarjeta bancaria';
|
||||
$_MODULE['<{retailcrm}prestashop>index_7088f1d1d9c91d8b75e9882ffd78540c'] = 'Datos de contacto';
|
||||
$_MODULE['<{retailcrm}prestashop>index_50f158e2507321f1a5b6f8fb9e350818'] = 'Escríbenos en caso de preguntas o dudas';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_c2cc7082a89c1ad6631a2f66af5f00c0'] = 'Conexión';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_065ab3a28ca4f16f55f103adc7d0226f'] = 'Los métodos del envío';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_33af8066d3c83110d4bd897f687cedd2'] = 'Los estados de pedidos';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_bab959acc06bb03897b294fbb892be6b'] = 'Los métodos de pago';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_7a1920d61156abc05a60135aefe8bc67'] = 'Por defecto';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_20cacc01d0de8bc6e9c9846f477e886b'] = 'Subir pedidos';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_6bcde6286f8d1b76063ee52104a240cf'] = 'Carritos abandonados';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_52a13123e134b8b72b6299bc14a36aad'] = 'Daemon Collector';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_71098155ccc0a0d6e0b501fbee37e7a9'] = 'LiveChat';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_9b6545e4cea9b4ad4979d41bb9170e2b'] = 'Avanzado';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_061b368c43f85d3fe2c7ccc842883a40'] = 'La configuración de la conexión';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_22a65bd0ef1919aa4e6dee849a7a2925'] = 'Simla.com URL';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_656a6828d7ef1bb791e42087c4b5ee6e'] = 'API key';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_8ffa3281a35a0d80fef2cac0fa680523'] = 'Habilitar la carga del historial';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_65dd9f6e8bf4eaf54c3dc96f011dade1'] = 'Recibir las existencias del Simla.com';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_4049d979b8e6b7d78194e96c3208a5a5'] = 'Número de orden';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_c95783013e3707fd4f0fd316133fdd1f'] = 'Envíe el número de pedido a Simla.com';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_4b60f9716ab3c3fb83260caafd46c55d'] = 'Reciba el número de pedido de Simla.com';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_6b49e7ceb026c3d16264e01b9b919ce3'] = 'Clientes corporativos';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_f8d7c52aa84f358caedb96fda86809da'] = 'Permitir el soporte a clientes corporativos';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_6c3c1845e109a9ef67378effea0c0503'] = 'Activar solo si está habilitada la opción \"Clientes corporativos\" en Simla.com';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_917afe348e09163269225a89a825e634'] = 'Sincronización de carritos de compradores';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_d8e002d770b6f98af7b7ae9a0e5acfe9'] = 'Crear pedidos para carritos abandonados de compradores';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_35b5a9139a54caeb925556ceb2c38086'] = 'Estado del pedido para carritos abandonados de compradores';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_9b9cf9f8778f69b4c6cf37e66f886be8'] = 'Elige el estado';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_a0d135501a738c3c98de385dc28cda61'] = 'Cargar carritos abandonados';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_27096e1243f98e1b3300f57ff1c76456'] = 'Elige la demora';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_4e537de8dd108eafec4c37603c8ab7fb'] = 'Administrar tipos de entrega';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_5b385947acf10ac0c5521161ce96aaa7'] = 'Elige la entrega';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_c0fd6d31d096a5845f1d1abb4c132b7d'] = 'Administrar estados de pedidos';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_dd53d9b3603b3279b25c74f6f3f189a4'] = 'Administrar tipos de pago';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_7dcc1208fa03381346955c6732d9ea85'] = 'Elige el tipo';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_6f1f9a3e435963417d08849fbef139c1'] = 'Ingrese los ID de los pedidos para cargar en Simla.com, divididos por una coma. También puede especificar rangos, como \"1-10\". Se permite subir hasta 10 pedidos a la vez.';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_acfa058ec9e6e4745eddc0cae3f0f881'] = 'Identificador del pedido';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_91412465ea9169dfd901dd5e7c96dd99'] = 'Subir';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_f4af7f6987dfee28741ce77ff2d09d46'] = 'Exportar pedidos y clientes';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_418faff1c9df0d297ff586ac3230be97'] = 'Puede exportar todos los pedidos y clientes de CMS a Simla.com presionando el botón \"Exportar\". Este proceso puede llevar mucho tiempo y es necesario que mantenga la pestaña abierta hasta que termine.';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_7442e29d7d53e549b78d93c46b8cdcfc'] = 'Pedidos';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_e6d0e1c8fc6a4fcf47869df87e04cd88'] = 'Clientes';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_f8f36c02fa6f370808135c66cfc788aa'] = 'Clientes sin pedidos';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_0095a9fa74d1713e43e370a7d7846224'] = 'Exportar';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_4d3d769b812b6faa6b76e1a8abaece2d'] = 'Active';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_f75d8fa5c89351544d372cf90528ccf2'] = 'Clave de la página web';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_c9cc8cce247e49bae79f15173ce97354'] = 'Guardar';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_4f18e3f1c9941a6ec5a38bc716c521b4'] = 'Código que necesita insertar en la web';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_ec3028a12402ab7f43962a6f3a667b6e'] = 'Modo de depuración';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_9082f68bc90113d8950e4ed7fe8fa0a4'] = 'Administrador de tareas';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_9194de58ce560c095f02cefc1c1c61e6'] = 'Nombre de la tarea';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_05a3a24340b7b9cc8d4e08f0ef4f4dd9'] = 'Última ejecución';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_ec53a8c4f07baed5d8825072c89799be'] = 'Estado';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_0be8406951cdfda82f00f79328cf4efc'] = 'Comentario';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_fe5b6cd4d7a31615bbec8d1505089d87'] = 'StackTrace';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_b2d37ae1cedf42ff874289b721860af2'] = 'Registros';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_34082694d21dbdcfc31e6e32d9fb2b9f'] = 'Nombre del archivo';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_a4b7f1864cfdb47cd05b54eb10337506'] = 'Fecha de modificación';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_6f6cb72d544962fa333e2e34ce64f719'] = 'Tamaño';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_06df33001c1d7187fdd81ea1f5b277aa'] = 'Comportamiento';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_801ab24683a4a8c433c6eb40c48bcd9d'] = 'Descargar';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_61b0ada67b7f40bf3d40dcc88ae4f3e6'] = 'Descargar todo';
|
||||
|
@ -152,3 +152,62 @@ $_MODULE['<{retailcrm}prestashop>index_95428f32e5c696cf71baccb776bc5c15'] = 'Б
|
||||
$_MODULE['<{retailcrm}prestashop>index_e7f9e382dc50889098cbe56f2554c77b'] = 'Кредитной картой';
|
||||
$_MODULE['<{retailcrm}prestashop>index_7088f1d1d9c91d8b75e9882ffd78540c'] = 'Наши контакты';
|
||||
$_MODULE['<{retailcrm}prestashop>index_50f158e2507321f1a5b6f8fb9e350818'] = 'Пишите нам если у Вас есть вопросы';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_c2cc7082a89c1ad6631a2f66af5f00c0'] = 'Соединение';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_065ab3a28ca4f16f55f103adc7d0226f'] = 'Способы доставки';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_33af8066d3c83110d4bd897f687cedd2'] = 'Статусы заказов';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_bab959acc06bb03897b294fbb892be6b'] = 'Способы оплаты';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_7a1920d61156abc05a60135aefe8bc67'] = 'По умолчанию';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_20cacc01d0de8bc6e9c9846f477e886b'] = 'Выгрузка заказов';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_6bcde6286f8d1b76063ee52104a240cf'] = 'Брошенные корзины';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_52a13123e134b8b72b6299bc14a36aad'] = 'Daemon Collector';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_71098155ccc0a0d6e0b501fbee37e7a9'] = 'Онлайн-консультант';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_9b6545e4cea9b4ad4979d41bb9170e2b'] = 'Дополнительно';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_061b368c43f85d3fe2c7ccc842883a40'] = 'Настройка соединения';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_22a65bd0ef1919aa4e6dee849a7a2925'] = 'URL адрес Simla.com';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_656a6828d7ef1bb791e42087c4b5ee6e'] = 'API-ключ';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_8ffa3281a35a0d80fef2cac0fa680523'] = 'Включить выгрузку истории';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_65dd9f6e8bf4eaf54c3dc96f011dade1'] = 'Получать остатки из Simla.com';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_4049d979b8e6b7d78194e96c3208a5a5'] = 'Номер заказа';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_c95783013e3707fd4f0fd316133fdd1f'] = 'Передавать номер заказа в Simla.com';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_4b60f9716ab3c3fb83260caafd46c55d'] = 'Получать номер заказа из Simla.com';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_6b49e7ceb026c3d16264e01b9b919ce3'] = 'Корпоративные клиенты';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_f8d7c52aa84f358caedb96fda86809da'] = 'Включить поддержку корпоративных клиентов';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_6c3c1845e109a9ef67378effea0c0503'] = 'Активировать только при включенной опции \"Корпоративные клиенты\" в Simla.com';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_917afe348e09163269225a89a825e634'] = 'Синхронизация корзин покупателей';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_d8e002d770b6f98af7b7ae9a0e5acfe9'] = 'Создавать заказы для брошенных корзин покупателей';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_35b5a9139a54caeb925556ceb2c38086'] = 'Статус заказа для брошенных корзин покупателей';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_9b9cf9f8778f69b4c6cf37e66f886be8'] = 'Выберите статус';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_a0d135501a738c3c98de385dc28cda61'] = 'Выгружать брошенные корзины';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_27096e1243f98e1b3300f57ff1c76456'] = 'Выберите задержку';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_4e537de8dd108eafec4c37603c8ab7fb'] = 'Управление типами доставки';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_5b385947acf10ac0c5521161ce96aaa7'] = 'Выберите доставку';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_c0fd6d31d096a5845f1d1abb4c132b7d'] = 'Управление статусами заказов';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_dd53d9b3603b3279b25c74f6f3f189a4'] = 'Управление типами оплаты';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_7dcc1208fa03381346955c6732d9ea85'] = 'Выберите тип';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_6f1f9a3e435963417d08849fbef139c1'] = 'Введите идентификаторы заказов для загрузки в Simla.com, разделив их запятыми. Вы также можете указать диапазоны, например \"1-10\". Одновременно можно загружать до 10 заказов.';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_acfa058ec9e6e4745eddc0cae3f0f881'] = 'ID заказов';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_91412465ea9169dfd901dd5e7c96dd99'] = 'Выгрузить';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_f4af7f6987dfee28741ce77ff2d09d46'] = 'Экспортировать заказы и клиентов';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_418faff1c9df0d297ff586ac3230be97'] = 'Вы можете экспортировать все заказы и клиентов из CMS в Simla.com, нажав кнопку «Экспорт». Этот процесс может занять много времени, и до его завершения необходимо держать вкладку открытой.';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_7442e29d7d53e549b78d93c46b8cdcfc'] = 'Заказы';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_e6d0e1c8fc6a4fcf47869df87e04cd88'] = 'Клиенты';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_f8f36c02fa6f370808135c66cfc788aa'] = 'Клиенты без заказов';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_0095a9fa74d1713e43e370a7d7846224'] = 'Экспортировать';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_4d3d769b812b6faa6b76e1a8abaece2d'] = 'Активно';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_f75d8fa5c89351544d372cf90528ccf2'] = 'Ключ сайта';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_c9cc8cce247e49bae79f15173ce97354'] = 'Сохранить';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_4f18e3f1c9941a6ec5a38bc716c521b4'] = 'Код для вставки на сайт';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_ec3028a12402ab7f43962a6f3a667b6e'] = 'Режим отладки';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_9082f68bc90113d8950e4ed7fe8fa0a4'] = 'Менеджер задач';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_9194de58ce560c095f02cefc1c1c61e6'] = 'Имя задачи';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_05a3a24340b7b9cc8d4e08f0ef4f4dd9'] = 'Последний запуск';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_ec53a8c4f07baed5d8825072c89799be'] = 'Статус';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_0be8406951cdfda82f00f79328cf4efc'] = 'Комментарий';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_fe5b6cd4d7a31615bbec8d1505089d87'] = 'StackTrace';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_b2d37ae1cedf42ff874289b721860af2'] = 'Лог-файлы';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_34082694d21dbdcfc31e6e32d9fb2b9f'] = 'Имя файла';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_a4b7f1864cfdb47cd05b54eb10337506'] = 'Дата изменения';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_6f6cb72d544962fa333e2e34ce64f719'] = 'Размер';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_06df33001c1d7187fdd81ea1f5b277aa'] = 'Действия';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_801ab24683a4a8c433c6eb40c48bcd9d'] = 'Скачать';
|
||||
$_MODULE['<{retailcrm}prestashop>settings_61b0ada67b7f40bf3d40dcc88ae4f3e6'] = 'Скачать все';
|
||||
|
@ -91,6 +91,22 @@
|
||||
<label for="receivebalances-active">{l s='Receive stocks from Simla.com' mod='retailcrm'}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="retail-form__title"
|
||||
style="margin-top: 40px;">{l s='Order number' mod='retailcrm'}</div>
|
||||
<div class="retail-form__row">
|
||||
<div class="retail-form__checkbox">
|
||||
<input type="checkbox" name="{$enableOrderNumberSendingName|escape:'htmlall':'UTF-8'}" value="{$enableOrderNumberSending|escape:'htmlall':'UTF-8'}" {if $enableOrderNumberSending}checked="checked"{/if} id="sendnumbers-active">
|
||||
<label for="sendnumbers-active">{l s='Send order number to Simla.com' mod='retailcrm'}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="retail-form__row">
|
||||
<div class="retail-form__checkbox">
|
||||
<input type="checkbox" name="{$enableOrderNumberReceivingName|escape:'htmlall':'UTF-8'}" value="{$enableOrderNumberReceiving|escape:'htmlall':'UTF-8'}" {if $enableOrderNumberReceiving}checked="checked"{/if} id="receivenumbers-active">
|
||||
<label for="receivenumbers-active">{l s='Receive order number from Simla.com' mod='retailcrm'}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="retail-form__title"
|
||||
style="margin-top: 40px;">{l s='Corporate clients' mod='retailcrm'}</div>
|
||||
<div class="retail-form__row">
|
||||
<div class="retail-form__checkbox">
|
||||
<input type="checkbox" name="{$enableCorporateName|escape:'htmlall':'UTF-8'}" value="{$enableCorporate|escape:'htmlall':'UTF-8'}" {if $enableCorporate}checked="checked"{/if} id="corpclients-active">
|
||||
|
@ -16,6 +16,24 @@ class RetailcrmOrderBuilderTest extends RetailcrmTestCase
|
||||
$this->assertEquals(0, $resultItem['initialPrice']);
|
||||
}
|
||||
|
||||
public function testBuildCrmOrder()
|
||||
{
|
||||
$order = new Order(1);
|
||||
$order->reference = 'test_n';
|
||||
$order->current_state = 0;
|
||||
Configuration::updateValue('RETAILCRM_API_DELIVERY', '{"1":"test_delivery"}');
|
||||
Configuration::updateValue('RETAILCRM_API_STATUS', '{"1":"test_status"}');
|
||||
Configuration::updateValue(RetailCRM::ENABLE_ORDER_NUMBER_SENDING, false);
|
||||
$crmOrder = RetailcrmOrderBuilder::buildCrmOrder($order);
|
||||
|
||||
$this->assertArrayNotHasKey('number', $crmOrder);
|
||||
|
||||
Configuration::updateValue(RetailCRM::ENABLE_ORDER_NUMBER_SENDING, true);
|
||||
$crmOrder = RetailcrmOrderBuilder::buildCrmOrder($order);
|
||||
|
||||
$this->assertEquals($order->reference, $crmOrder['number']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
|
@ -35,6 +35,43 @@ class RetailCRMTest extends RetailcrmTestCase
|
||||
);
|
||||
}
|
||||
|
||||
public function testUploadOrders()
|
||||
{
|
||||
Configuration::updateValue(RetailCRM::API_URL, 'https://test.test');
|
||||
Configuration::updateValue(RetailCRM::API_KEY, 'test_key');
|
||||
$order = new Order(1);
|
||||
$reference = $order->reference;
|
||||
$updReference = 'test';
|
||||
$this->apiMock->expects($this->any())->method('ordersGet')->willReturn(new RetailcrmApiResponse(
|
||||
200,
|
||||
json_encode(array(
|
||||
'success' => true,
|
||||
'order' => array(),
|
||||
))
|
||||
));
|
||||
$this->apiMock->expects($this->any())->method('ordersCreate')->willReturn(new RetailcrmApiResponse(
|
||||
200,
|
||||
json_encode(array(
|
||||
'success' => true,
|
||||
'order' => array(
|
||||
'number' => $updReference,
|
||||
),
|
||||
))
|
||||
));
|
||||
|
||||
Configuration::updateValue(RetailCRM::ENABLE_ORDER_NUMBER_RECEIVING, false);
|
||||
$this->retailcrmModule->uploadOrders([1]);
|
||||
$firstUpdOrder = new Order(1);
|
||||
|
||||
$this->assertEquals($reference, $firstUpdOrder->reference);
|
||||
|
||||
Configuration::updateValue(RetailCRM::ENABLE_ORDER_NUMBER_RECEIVING, true);
|
||||
$this->retailcrmModule->uploadOrders([1]);
|
||||
$secondUpdOrder = new Order(1);
|
||||
|
||||
$this->assertEquals($updReference, $secondUpdOrder->reference);
|
||||
}
|
||||
|
||||
public function testHookActionCustomerAccountAdd()
|
||||
{
|
||||
$newCustomer = new Customer(1);
|
||||
@ -79,6 +116,8 @@ class RetailCRMTest extends RetailcrmTestCase
|
||||
$cart->expects($this->any())->method('getProducts')->willReturn($this->getProducts());
|
||||
$cart->expects($this->any())->method('getAddressCollection')->willReturn($this->getAddressCollection());
|
||||
$status = new StdClass();
|
||||
$reference = $order->reference;
|
||||
$updReference = 'test';
|
||||
|
||||
if ($newOrder === false) {
|
||||
$status->id = 11;
|
||||
@ -98,7 +137,25 @@ class RetailCRMTest extends RetailcrmTestCase
|
||||
);
|
||||
}
|
||||
|
||||
$this->apiMock->expects($this->any())->method('ordersCreate')->willReturn(new RetailcrmApiResponse(
|
||||
200,
|
||||
json_encode(array(
|
||||
'success' => true,
|
||||
'order' => array(
|
||||
'number' => $updReference,
|
||||
),
|
||||
))
|
||||
));
|
||||
|
||||
Configuration::updateValue(RetailCRM::ENABLE_ORDER_NUMBER_RECEIVING, false);
|
||||
|
||||
$this->assertTrue($this->retailcrmModule->hookActionOrderStatusPostUpdate($params));
|
||||
$this->assertEquals($reference, $order->reference);
|
||||
|
||||
Configuration::updateValue(RetailCRM::ENABLE_ORDER_NUMBER_RECEIVING, true);
|
||||
|
||||
$this->assertTrue($this->retailcrmModule->hookActionOrderStatusPostUpdate($params));
|
||||
$this->assertEquals($updReference, $order->reference);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -29,8 +29,8 @@ class RetailcrmHistoryTest extends RetailcrmTestCase
|
||||
$data = $catalog->getData();
|
||||
$this->product = $data[1]->current();
|
||||
|
||||
Configuration::updateValue('RETAILCRM_API_DELIVERY_DEFAULT', 2);
|
||||
Configuration::updateValue('RETAILCRM_API_PAYMENT_DEFAULT', 'bankwire');
|
||||
Configuration::updateValue(RetailCRM::DELIVERY_DEFAULT, 2);
|
||||
Configuration::updateValue(RetailCRM::PAYMENT_DEFAULT, 'bankwire');
|
||||
|
||||
$this->setConfig();
|
||||
}
|
||||
@ -84,6 +84,74 @@ class RetailcrmHistoryTest extends RetailcrmTestCase
|
||||
$this->assertEquals(true, RetailcrmHistory::customersHistory());
|
||||
}
|
||||
|
||||
public function testOrdersHistory()
|
||||
{
|
||||
RetailcrmHistory::$default_lang = (int)Configuration::get('PS_LANG_DEFAULT');
|
||||
RetailcrmHistory::$api = $this->apiMock;
|
||||
|
||||
$order = new Order(1);
|
||||
$reference = $order->reference;
|
||||
$updReference = 'test';
|
||||
$crmOrder = $this->getApiOrder();
|
||||
$crmOrder['number'] = $updReference;
|
||||
$checkArgs = array(
|
||||
'externalId' => 1,
|
||||
'number' => $reference,
|
||||
);
|
||||
|
||||
$this->apiMock->expects($this->any())
|
||||
->method('ordersHistory')
|
||||
->willReturn(
|
||||
new RetailcrmApiResponse(
|
||||
'200',
|
||||
json_encode(
|
||||
$this->getHistoryExistOrder($crmOrder)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$this->apiMock->expects($this->any())
|
||||
->method('ordersGet')
|
||||
->willReturn(
|
||||
new RetailcrmApiResponse(
|
||||
'200',
|
||||
json_encode(
|
||||
array(
|
||||
'order' => $crmOrder,
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$this->apiMock->expects($this->once())
|
||||
->method('ordersEdit')
|
||||
->with($checkArgs)
|
||||
->willReturn(
|
||||
new RetailcrmApiResponse(
|
||||
'200',
|
||||
json_encode(
|
||||
array(
|
||||
'order' => array(),
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
Configuration::updateValue(RetailCRM::ENABLE_ORDER_NUMBER_RECEIVING, false);
|
||||
Configuration::updateValue(RetailCRM::ENABLE_ORDER_NUMBER_SENDING, false);
|
||||
RetailcrmHistory::ordersHistory();
|
||||
$firstUpdOrder = new Order(1);
|
||||
|
||||
$this->assertEquals($reference, $firstUpdOrder->reference);
|
||||
|
||||
Configuration::updateValue(RetailCRM::ENABLE_ORDER_NUMBER_RECEIVING, true);
|
||||
Configuration::updateValue(RetailCRM::ENABLE_ORDER_NUMBER_SENDING, true);
|
||||
RetailcrmHistory::ordersHistory();
|
||||
$secondUpdOrder = new Order(1);
|
||||
|
||||
$this->assertEquals($updReference, $secondUpdOrder->reference);
|
||||
}
|
||||
|
||||
private function orderCreate($apiMock, $orderData)
|
||||
{
|
||||
RetailcrmHistory::$default_lang = (int)Configuration::get('PS_LANG_DEFAULT');
|
||||
|
Loading…
x
Reference in New Issue
Block a user