В плагин «Яндекс.Маркет PRO» можно передавать информацию из любых плагинов:
1. Для передачи данных о предоставляемых плагином значениях используется событие importexport_backend_field_value_source.
Пример кода:
public function handleImportexportBackendFieldValueSource($params)
{
$variable_meta = [
'id' => 'variable_id',
'name' => 'Имя значения',
];
return [
$variable_meta,
];
}
2. Для получения значения используется событие importexport_field_value_data_provider. Нужно вернуть экземпляр класса, у которого реализованы методы getSkuVariableValue и getAllSkuVariableValues.
Пример кода:
public function handleImportexportFieldValueDataProvider($params)
{
return new PluginDataProvider();
}
class PluginDataProvider
{
/**
* @param $sku_id
* @param $variable_id
* @param array $extra_params
* @return mixed
*/
public function getSkuVariableValue($sku_id, $variable_id, array $extra_params)
{
return null; // нет значения
/* или */
return [
'type' => 'simple',
'value' => 'sku value',
];
}
/**
* @param $sku_id
* @param $variable_id
* @param array $extra_params
* @return array
*/
public function getAllSkuVariableValues($sku_id, $variable_id, array $extra_params)
{
/* возвращает массив, формат каждого элемента такой же, как и в getSkuVariableValue */
}
}
Поддерживаемые типы (ключ 'type'):
// 'simple', например
[
'type' => 'simple',
'value' => 'sku value',
]
//или можно вернуть просто строчку 'sku value'.
// 'count', например
[
'type' => 'count',
'count' => 18,
]
// 'feature_value', например
[
'type' => 'feature_value',
'feature_id' => 1,
'feature_value_rows' => [
['id' => 2, 'value' => 'some value', ....],
],
]
// 'price', например
[
'type' => 'price',
'price' => 150.50,
'currency_id' => 'RUB',
]