1
0
mirror of synced 2025-02-21 01:13:13 +03:00

Add filter for changing ICML product information

This commit is contained in:
Dima Uryvskiy 2022-08-10 14:02:35 +03:00 committed by GitHub
parent d872730796
commit 9d8eb2256c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 112 additions and 18 deletions

View File

@ -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

View File

@ -1 +1 @@
4.4.5
4.4.6

View File

@ -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)

View File

@ -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;
}
```

View File

@ -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;
}
```

View File

@ -526,7 +526,7 @@ if (!class_exists('WC_Retailcrm_Icml')) :
$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(),
@ -545,7 +545,7 @@ if (!class_exists('WC_Retailcrm_Icml')) :
$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();
}
}
@ -562,14 +562,20 @@ if (!class_exists('WC_Retailcrm_Icml')) :
}
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);
}
/**

View File

@ -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

View File

@ -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
*/

View File

@ -16,7 +16,7 @@
*
* @link https://wordpress.org/plugins/woo-retailcrm/
*
* @version 4.4.5
* @version 4.4.6
*
* @package RetailCRM
*/