Автор Тема: Атрибут oldprice для Яндекс.Маркета  (Прочитано 1033 раз)

23 Ноябрь 2016, 12:42:35
  • Пользователь
  • **
  • Сообщений: 83
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Кто знает, подскажите пути решения проблемы.
Есть магазин на Престе 1.6.0.9
Есть подключенный модуль Экспорт в Яндекс Маркет
Необходимо разместить в прайс-листе, который генерируется данным модулем для Яндекс.Маркета атрибут oldprice для товаров у которых снижена цена и которые попадают в распродажу.
Может быть кто то уже сталкивался с подобным?
23 Ноябрь 2016, 12:48:09
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Добавь новое поле oldprice в функцию _addProduct
$offer->oldprice = Tools::ps_round(($combination?$combination['oldprice']:$product['oldprice']), 2);
23 Ноябрь 2016, 13:28:34
Ответ #2
  • Пользователь
  • **
  • Сообщений: 83
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Прошу прощения, а в каком файле или месте это редактировать?
23 Ноябрь 2016, 14:15:04
Ответ #3
  • Пользователь
  • **
  • Сообщений: 83
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Миколас
подскажи, этот код в product-list.tpl вставляется?
23 Ноябрь 2016, 14:19:48
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Это в модуль нужно вставить. В основной файл.
24 Ноябрь 2016, 14:54:30
Ответ #5
  • Пользователь
  • **
  • Сообщений: 83
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Миколас
подскажи, вставил данную строку в файл yamarket.php
перезапустил сайт на сервере
перекомпилировал в Престе
результат - 0
в прайсе атрибут oldprice не появился
$offer = new ymlOffer($product['id_product'].($combination?'c'.$combination['id_product_attribute']:''),
'',
$available
);
$offer->url = $product['link'].($combination?'#'.$combination['comb_url']:'');
$offer->price = Tools::ps_round(($combination?$combination['price']:$product['price']), 2);
$offer->currencyId = $this->currency_iso;
$offer->categoryId = $product['id_category_default'];
$offer->picture = $this->context->link->getImageLink($product['link_rewrite'], $product['id_image']);
$offer->name = $product['name'];
$offer->vendor = $product['manufacturer_name'];
$offer->vendorCode = ($combination?$combination['reference']:$combination['reference']);
$offer->description = $product['description'];
$offer->sales_notes = Configuration::get('yamarket_info');
$offer->barcode = ($combination?$combination['ean13']:$combination['ean13']);
if (isset($this->yamarket_shipping[1]) && $this->yamarket_shipping[1])
$offer->delivery = 'true';
if (isset($this->yamarket_shipping[2]) && $this->yamarket_shipping[2])
$offer->pickup = 'true';
if (isset($this->yamarket_shipping[3]) && $this->yamarket_shipping[3])
$offer->store = 'true';
$params = array();
if ($product['features'])
foreach ($product['features'] as $feature)
$params[$feature['name']] = $feature['value'];
if ($combination)
$params = array_merge($params, $combination['attributes']);
$offer->param = $params;
$offer->oldprice = Tools::ps_round(($combination?$combination['oldprice']:$product['oldprice']), 2);

$shop->add($offer);
24 Ноябрь 2016, 15:37:35
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Тогда нужно еще в класс ymlOffer добавить такую переменную.
24 Ноябрь 2016, 16:29:49
Ответ #7
  • Пользователь
  • **
  • Сообщений: 83
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Я жутко извиняюсь, но в этих вопросах я Чайник.
Подскажи, эта переменная куда добавляется? в этот же файл?
Т.е. добавить эту же строчку которую добавил в product?
24 Ноябрь 2016, 20:56:06
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Я этот модуль не делал. Поэтому могу судить только по коду. Раз есть
$offer = new ymlOfferЗначит должен быть класс ymlOffer. Вот в нем должна быть переменная oldprice. Может еще где нужно ее добавить.
 
24 Ноябрь 2016, 20:58:56
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
У вас не бесплатный модуль "Экспорт в Яндекс Маркет". Обратитесь к разработчику и он вам поможет его изменить.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
24 Ноябрь 2016, 22:21:16
Ответ #10
  • Пользователь
  • **
  • Сообщений: 83
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Магазину 4 года. Изначально он покупался "под ключ".
Найти сейчас "концы" по модулю не возможно.
Этой фирмы уже нет.
Кто заказывал модуль, номер заказа - узнать невозможно.
Следовательно получить поддержку по модулю не удается.
24 Ноябрь 2016, 22:27:38
Ответ #11
  • Пользователь
  • **
  • Сообщений: 83
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
ymlOffer встречается, но как и говорил ранее, не понимаю куда надо вставлять код
если это уместно, в файле прилагаю модуль
25 Ноябрь 2016, 12:50:52
Ответ #12
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
25 Ноябрь 2016, 17:22:50
Ответ #13
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Да там похоже много где нужно менять. Проще найти другой или новый сделать, чем со старым возиться. Он все равно уже устарел и для новой версии не подходит.