Skip to content

Commit

Permalink
Add filter for changing ICML product information
Browse files Browse the repository at this point in the history
  • Loading branch information
uryvskiy-dima authored Aug 10, 2022
1 parent d872730 commit 9d8eb22
Show file tree
Hide file tree
Showing 9 changed files with 112 additions and 18 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## 2022-08-06 4.4.6
* Add automatically upload ICML in CRM
* Add filter for changing ICML product information
* Important fix bug with shipping tax

## 2022-07-18 4.4.5
* Change logic work with delivery cost
* Add price rounding from WC settings
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
4.4.5
4.4.6
8 changes: 0 additions & 8 deletions doc/1.Setup/Catalog settings.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
### Настройки каталога

В версии 4.4.4 добавлен функционал передачи описания товара в каталог. В настройках каталога необходимо выбрать, какое описание передавать краткое или полное. По умолчанию передается полное описание товара.

Поле description(описание) выводится в карточке товара, так же его можно использовать в twig-шаблонах. Например, для вывода в печатных формах.
Пример получения описание торгового предложения:
```twig
{% for availableOrderProduct in order.availableOrderProducts %} {{ availableOrderProduct.getOffer().getDescription() }} {% endfor %}
```

В настройке представлены статусы товаров в WooCommerce *(Товары -> карточка товара -> блок Опубликовано)*. Из товаров, чей статус будет соответствовать выбранному, будет сгенерирован ICML-файл каталога. Для выбора необходимо поставить галочку напротив нужного статуса и сохранить настройки.

Статус видимости товара Личное, также относится к статусам товара "Статус: Опубликовано как личное". Анализ статусов товара был произведен в задаче [#76054](https://redmine.retailcrm.tech/issues/76054)
Expand Down
29 changes: 29 additions & 0 deletions doc/1.Setup/Generating ICML catalog.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,32 @@
После активации опции при генерации каталога в нем появится параметр xmlID *(артикул)*.

**xmlID** - внешний идентификатор товара, элемент не является обязательным. В случае, если интернет-магазин использует выгрузку номенклатуры товаров из складской системы *(1С, МойСклад)*, то значение этого элемента соответствует идентификатору товара в данной системе. Активируется, когда клиенты используют Woocommerce + MC/1C.

### Недавние обновления:

**В версии 4.4.4** добавлен функционал передачи описания товара в каталог. В настройках каталога необходимо выбрать, какое описание передавать краткое или полное. По умолчанию передается полное описание товара.

Поле description(описание) выводится в карточке товара, так же его можно использовать в twig-шаблонах. Например, для вывода в печатных формах.
Пример получения описание торгового предложения:
```twig
{% for availableOrderProduct in order.availableOrderProducts %} {{ availableOrderProduct.getOffer().getDescription() }} {% endfor %}
```

**В версии 4.4.6** добавлен фильтр:

> retailcrm_process_offer - позволяет изменить данные товара, перед записью в ICML каталог.

**Пример использования:**
```php
<?php

add_action('retailcrm_process_offer', 'changeProductInfo', 10, 2);

function changeProductInfo($productData, $wcProduct)
{
$productData['name'] .= 'Test';

return $productData;
}
```
57 changes: 57 additions & 0 deletions doc/3. Customization/Filters.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
### Фильтры

Если вы хотите изменить данные отправляемые между CRM и CMS, вы можете использовать **пользовательские фильтры**.

Чтобы использовать фильтры, необходимо в директории wp-content создать директорию mu-plugins и в ней создать кастомный файл mu-simla.php.

### Список доступных фильтров

> retailcrm_process_customer - позволяет изменить данные клиента при передачи из CMS -> CRM.
> retailcrm_process_customer_address - позволяет изменить адрес клиента при передачи из CMS -> CRM.
> retailcrm_process_customer_corporate - позволяет изменить данные корпоративного клиента при передачи из CMS -> CRM.
> retailcrm_process_customer_corporate_address - позволяет изменить адрес корпоративного клиента при передачи из CMS -> CRM.
> retailcrm_process_customer_corporate_company - позволяет изменить компанию корпоративного клиента при передачи из CMS -> CRM.
> retailcrm_customer_roles - позволяет изменить допустимые роли клиентов.
> retailcrm_daemon_collector - позволяет изменить данные для Daemon Collector.
> retailcrm_initialize_analytics - позволяет изменить данные скрипта для Google Analytics.
> retailcrm_send_analytics - позволяет изменить отправляемые данные Google Analytics.
> retailcrm_process_customer_custom_fields - позволяет изменить данные кастомных полей клиента при передачи из CRM -> CMS .
> retailcrm_history_before_save - позволяет изменить данные заказа и клиента при передачи из CRM -> CMS.
> retailcrm_process_order_custom_fields - позволяет изменить данные кастомных полей заказ при передачи из CRM -> CMS.
> retailcrm_process_offer - позволяет изменить данные товара перед записью в ICML каталог.
> retailcrm_process_order - позволяет изменить данные заказа при передачи из CMS -> CRM.
> retailcrm_process_order_address - позволяет изменить адрес заказа при передачи из CMS -> CRM.
> retailcrm_add_cron_interval - позволяет добавить пользовательский интервал времени.
> retailcrm_cron_schedules - позволяет изменить интервал времени для cron задач.
> retailcrm_shipping_list - позволяет изменить методы доставки с CMS.
**Пример использования:**
```php
<?php

add_action('retailcrm_process_offer', 'changeProductInfo', 10, 2);

function changeProductInfo($productData, $wcProduct)
{
$productData['name'] .= 'Test';

return $productData;
}
```
18 changes: 12 additions & 6 deletions src/include/class-wc-retailcrm-icml.php
Original file line number Diff line number Diff line change
Expand Up @@ -526,7 +526,7 @@ private function setOffer(&$full_product_list, $product_attributes, $product, $p
$quantity = $product->get_stock_status() === 'instock' ? 1 : 0;
}

$product_data = [
$productData = [
'id' => $product->get_id(),
'productId' => ($product->get_parent_id() > 0) ? $parent->get_id() : $product->get_id(),
'name' => $product->get_name(),
Expand All @@ -545,7 +545,7 @@ private function setOffer(&$full_product_list, $product_attributes, $product, $p
$params[] = ['code' => 'article', 'name' => 'Article', 'value' => $product->get_sku()];

if (isset($this->settings['bind_by_sku']) && $this->settings['bind_by_sku'] == WC_Retailcrm_Base::YES) {
$product_data['xmlId'] = $product->get_sku();
$productData['xmlId'] = $product->get_sku();
}
}

Expand All @@ -562,14 +562,20 @@ private function setOffer(&$full_product_list, $product_attributes, $product, $p
}

if (!empty($params)) {
$product_data['params'] = $params;
$productData['params'] = $params;
}

if (isset($product_data)) {
$full_product_list[] = $product_data;
$productData = apply_filters(
'retailcrm_process_offer',
WC_Retailcrm_Plugin::clearArray($productData),
$product
);

if (isset($productData)) {
$full_product_list[] = $productData;
}

unset($product_data);
unset($productData);
}

/**
Expand Down
5 changes: 5 additions & 0 deletions src/readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,11 @@ Asegúrate de tener una clave API específica para cada tienda. Las siguientes i


== Changelog ==
= 4.4.6 =
* Add automatically upload ICML in CRM
* Add filter for changing ICML product information
* Important fix bug with shipping tax

= 4.4.5 =
* Change logic work with delivery cost
* Add price rounding from WC settings
Expand Down
4 changes: 2 additions & 2 deletions src/retailcrm.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
* Description: Integration plugin for WooCommerce & Simla.com
* Author: RetailDriver LLC
* Author URI: http://retailcrm.pro/
* Version: 4.4.5
* Version: 4.4.6
* Tested up to: 5.9
* WC requires at least: 5.4
* WC tested up to: 6.5
* WC tested up to: 6.7
* Text Domain: retailcrm
*/

Expand Down
2 changes: 1 addition & 1 deletion src/uninstall.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
*
* @link https://wordpress.org/plugins/woo-retailcrm/
*
* @version 4.4.5
* @version 4.4.6
*
* @package RetailCRM
*/
Expand Down

0 comments on commit 9d8eb22

Please sign in to comment.