Доброго времени суток!
Столкнулся со следующей задачей: при выгрузке товаров в ВК не выгружается ссылка на товар, которая нужна для кнопки "Перейти в магазин" в карточке товара в ВК.
В стандартных настройках не удалось найти этого функционала, почему кстати разрабы этого не сделали - вопрос.
Собственно немного покопавшись в исходниках пришел к следующему решению, не совсем корректному (в ядре лучше не чего не трогать), но проблему решает.
Для начала редактируем файл /home/bitrix/www/bitrix/modules/sale/lib/tradingplatform/vk/feed/data/converters/product.php, в этом файле ищем функцию convert (примерно строка 43).
Эта функция конвертирует массив привычных данных полученных например от CIBlockElement::GetList. Массив данных передается в единственном параметре функции в переменной $data
Для верности вносить правки я буду в конце функции перед return array($data["ID"] => $this->result);
// validate LENGTH $this->result['description'] = $this->validateDescription($this->result['description'], $logger); $this->result['NAME'] = self::convertQuotes($this->result['NAME']); $this->result['NAME'] = $this->validateName($this->result['NAME'], $logger); // VK don't understand specialchars-quotes. Change them to the yolochki $this->result['url'] = $data["DETAIL_PAGE_URL"]; //добавляем передачу URL товара в ВК return array($data["ID"] => $this->result); } |
Осталось изменить скрипт который отвечает за генерацию параметров, которые нужно передать в ВК.
Редактируем файл /home/bitrix/www/bitrix/modules/sale/lib/tradingplatform/vk/api/scripts/marketproductaddedit.vks
По внешнему виду напоминает JS, но это не точно. Нам тут нужно подправить переменную params ищем ее на 11 строке, так же как и прошлом файле буду добавлять в конец нашу переменную url
var params = { "owner_id": owner_id, "name": data[i].NAME, "description": data[i].description, "category_id": data[i].CATEGORY_VK, "price": data[i].PRICE, "deleted": data[i].deleted, "main_photo_id": data[i].PHOTO_MAIN_VK_ID, "photo_ids": data[i].PHOTOS, "url": data[i].url, }; |
Спасибо за внимание, может кому-то я помог.
P.S. лучше все же не трогать файлы в ядре.