Отдельное название товара для Яндекс.маркет

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

trainracing M
Аватара
trainracing M
Возраст: 31
Репутация: 13
Сообщения: 121
Зарегистрирован: 07.10.2016
С нами: 7 лет 5 месяцев
Сайт

Сообщение #1 trainracing » 06.03.2019, 12:26

Решение позволит выгружать свое (уникальное название товара в Яндекс маркет.

Например по сео, чтобы не было переспама по плотности ключей, вам нужно сделать название товара "Daikin ATXN25MB"
А чтобы товар искался на маркете, вам нужно выгружать туда "Кондиционер Daikin ATXN25MB"
Конечно можно было бы просто дописать в feed слово "кондиционер" вначале, но что если у вас разные категории товаров?

И так, код (для версии 2.3.1):

1. делаем запрос в бд:

Код: Выделить всё

ALTER TABLE `ok_products` ADD `namemarket` TEXT NOT NULL AFTER `name`


2. в api/Products.php в функции get_product ищем

Ниже вставим:

Код: Выделить всё

p.namemarket,


3. в /backend/core/ProductAdmin.php ищем

Код: Выделить всё

$product->name = $this->request->post('name');

ниже вставим:

Код: Выделить всё

$product->namemarket = $this->request->post('namemarket');


4. В /backend/design/html/product.tpl
после блока с генерируемым url вставим:

Код: Выделить всё

<div class="row">
<div class="col-xs-12 col-lg-6 col-md-10">
                               
<div class="heading_label">
Название для маркета
</div>
<div class="form-group">
<input class="form-control" type="text" name="namemarket" value="{$product->namemarket}">
                           
 </div>
 </div>
 </div>


5. В в feed.php ищем

Код: Выделить всё

p.name as product_name,

ниже вставим

Код: Выделить всё

p.namemarket as product_namemarket,


Ниже ищем

Код: Выделить всё

print "<model>".htmlspecialchars($p->product_name).($p->variant_name?' '.htmlspecialchars($p->variant_name):'')."</model>


Заменим на

Код: Выделить всё

if($p->product_namemarket) {
   print "<model>".htmlspecialchars($p->product_namemarket)."</model>";
   }
   else {
   print "<model>".htmlspecialchars($p->product_name).($p->variant_name?' '.htmlspecialchars($p->variant_name):'')."</model>";   
   }
   
   print "


Готово. Теперь выгружается указанное вами название. Если его нет - выгружается название товара

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #2 korshunov » 06.03.2019, 14:27

Хорошо бы добавить еще обработку нового поля через экспорт-импорт...

trainracing M
Аватара
trainracing M
Возраст: 31
Репутация: 13
Сообщения: 121
Зарегистрирован: 07.10.2016
С нами: 7 лет 5 месяцев
Сайт

Сообщение #3 trainracing » 06.03.2019, 17:50

korshunov писал(а):Хорошо бы добавить еще обработку нового поля через экспорт-импорт...
Владимир, привет. Я вообще маркетолог)) не программист, я так круто уже не умею, php то толком не знаю, по логической аналогии с кодом в движке делал.

но если покажешь как это сделать, думаю в будущем многие будут благодарны)

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #4 korshunov » 07.03.2019, 05:21

Видимо, по той же аналогии в
backend/ajax/export.php
backend/ajax/import.php


Название раздела: Полезные решения для OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Полезные решения для OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 12 гостей