База знаний
Войдите в личный кабинет для возможности задавать вопросы и отвечать на комментарии.
Полезная информация

Как передать информации из плагинов в «Яндекс.Маркет PRO»

Поддержка Bodysite
Поддержка Bodysite
12 августа 2020 10:16
+1

В плагин «Яндекс.Маркет 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',
]