Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Recommended Posts

Коллеги, собственно вопрос: 

 

Google Base - используется для добавления товаров в google merchants. Необходимо, в том числе, для рекламы в гугле товарных предложений.

 

При включении стандартного модуля (у меня он по умолчанию есть, ocshop) — абракадабра в коде и невосприимчивость google (врядли связано с кодировкой).

 

hjWejRoM.jpg

 

Подскажите, кто-то настоил данный функционал?

Надіслати
Поділитися на інших сайтах


Абракадабра очень похожа на UTF-8, на которую смотрят редактором в другой кодировке (типа windows-1251).

 

Да, безусловно. Файл формируется видимо в 1251, а вывод на сайте в юникод.

 

Долго боролся с похожей проблемой с Маркетом яндекса

Надіслати
Поділитися на інших сайтах


Сказать А и не сказать Б было бы неправильным.

 

Выкладываю файл (catalog/controller/feed):

 

class ControllerFeedGoogleBase extends Controller {
public function index() {
if ($this->config->get('google_base_status')) {
$output = '';
$output .= '';
$output .= '';
$output .= '';
$output .= '' . $this->config->get('config_meta_description') . '';
$output .= '' . HTTP_SERVER . '';

$this->load->model('catalog/category');

$this->load->model('catalog/product');

$this->load->model('tool/image');

$products = $this->model_catalog_product->getProducts();

foreach ($products as $product) {
if ($product['description']) {
$output .= '';
$output .= '';
$output .= '' . $this->url->link('product/product', 'product_id=' . $product['product_id']) . '';
$output .= '' . $product['description'] . '';
$output .= '' . html_entity_decode($product['manufacturer'], ENT_QUOTES, 'UTF-8') . '';
$output .= 'new';
$output .= '' . $product['product_id'] . '';

if ($product['image']) {
$output .= '' . $this->model_tool_image->resize($product['image'], 500, 500) . '';
} else {
$output .= '' . $this->model_tool_image->resize('no_image.jpg', 500, 500) . '';
}

$output .= '' . $product['model'] . '';

$currencies = array(
'USD',
'EUR',
'GBP'
);

if (in_array($this->currency->getCode(), $currencies)) {
$currency_code = $this->currency->getCode();
$currency_value = $this->currency->getValue();
} else {
$currency_code = 'USD';
$currency_value = $this->currency->getValue('USD');
}

if ((float)$product['special']) {
$output .= '' . $this->currency->format($this->tax->calculate($product['special'], $product['tax_class_id']), $currency_code, $currency_value, false) . '';
} else {
$output .= '' . $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id']), $currency_code, $currency_value, false) . '';
}

$categories = $this->model_catalog_product->getCategories($product['product_id']);

foreach ($categories as $category) {
$path = $this->getPath($category['category_id']);

if ($path) {
$string = '';

foreach (explode('_', $path) as $path_id) {
$category_info = $this->model_catalog_category->getCategory($path_id);

if ($category_info) {
if (!$string) {
$string = $category_info['name'];
} else {
$string .= ' > ' . $category_info['name'];
}
}
}

$output .= '' . $string . '';
}
}

$output .= '' . $product['quantity'] . '';
$output .= '' . $product['upc'] . '';
$output .= '' . $this->weight->format($product['weight'], $product['weight_class_id']) . '';
$output .= '' . ($product['quantity'] ? 'in stock' : 'out of stock') . '';
$output .= '';
}
}

$output .= '';
$output .= '';

$this->response->addHeader('Content-Type: application/rss+xml');
$this->response->setOutput($output);
}
}

protected function getPath($parent_id, $current_path = '') {
$category_info = $this->model_catalog_category->getCategory($parent_id);

if ($category_info) {
if (!$current_path) {
$new_path = $category_info['category_id'];
} else {
$new_path = $category_info['category_id'] . '_' . $current_path;
}

$path = $this->getPath($category_info['parent_id'], $new_path);

if ($path) {
return $path;
} else {
return $new_path;
}
}
}
}
?>
Надіслати
Поділитися на інших сайтах


  • 1 year later...

найдите

$this->response->addHeader('Content-Type: application/rss+xml');

замените на

$this->response->addHeader('Content-Type: application/rss+xml; charset=utf-8');
Змінено користувачем Nymphetamine
  • +1 1
Надіслати
Поділитися на інших сайтах

  • 3 months later...

 

найдите

$this->response->addHeader('Content-Type: application/rss+xml');

замените на

$this->response->addHeader('Content-Type: application/rss+xml; charset=utf-8');

Спс, мне тоже помогло! 

Но у меня отображается только заголовок, а товаров нет. Менял файл в /catalog/controller/feed/google_base.php на файл из установочного, не помогает. sitemap работает гуголовский, а этот байс нет. Запарился....

Надіслати
Поділитися на інших сайтах


  • 1 year later...

Ребят та же канитель... И у меня в Ocstore 2.1.0.2.1 по ссылке index.php?route=feed/google_base отображается только заголовок, а товаров нет.

google_base включил - тишина... Хоть какие то логи отсутствуют.

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

Может что не до конца сделал - подскажите пожалуйста, если кому не сложно и владеет информацией

Заблаговременное спасибо.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.