В плагине Яндекс Маркет заменить значение <offer> c ID товара на занчение характеристики Есть решение

Добрый День!

Суть проблемы:

Есть 4 магазина которые используют выгрузку товара в YML для дальнейшей публикации в Яндекс директ.

У товаров прописана характеристика числовая которая совпадает с ID в базе 1с называется InterID, товары в разных магазинах имеют разные названия и цены

При выгрузке в YML нужно получить значение поля <offer> равное не ID товара как сейчас а InterID. Это позволит решить проблемы статистики.

Как это сделать?


2 ответа

  • 2
    Михаил Ушенин Webasyst 23 марта 2016 03:48 # Решение

    Подробную поддержку по редактированию исходного кода программных продуктов вы также можете получить от экспертов Webasyst.

    Свои предложения о развитии программных продуктов Webasyst публикуйте, выбирая вариант «Предложить идею».

  • 2

    Алексей, решение в пару строк:

    Файл shopYandexmarketPluginRun.controller.php в /wa-apps/shop/plugins/yandexmarket/lib/actions/backend
    После строк:

    " foreach ($offer as $field_id => $value) {
    $field = preg_replace('/\\..*$/', '', $field_id);
    if (!empty($map[$field_id]['callback'])) {
    $value = $this->format($field, $value, array(), $offer);
    }
    (на текущий момент сие строки 1139-1143 вставляем сей код:


    if (!in_array($value, array(null, false, ''), true)) {

    if ($field_id == 'id') {
    //echo "-$value-";
    if (!$features_model) {
    $features_model = new shopProductFeaturesModel();
    }
    $my_features = $features_model->getValues($value);
    //print_r($my_features);
    $value = $my_features['XXX'];
    }


    $this->addDomValue($product_xml, $field, $value, $map[$field_id]['attribute']);
    }

    Вместо XXX (нет это не куртизанки), пишем наименование вашей характеристики.

    Радуемся.

    P.S. После обновления плагина процедуру необходимо повторить, т.к. данный хак затрется.

    P.P.S. Т.к. вы не первый кто сие спросил, возможно стоит продумать о внесении подобной настройки в плагин.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите