Перейти к содержанию
senty

Чпу Для Яндексмаркета

Рекомендуемые сообщения

Доброго времени суток.

Модуль импорта товара в ЯМ работает, это хорошо =)

Но ссылки в нём выглядят так:

В яндекс из-за этого попадает такая ссылка:

Которая идентична:

Может кто подсказать, как сделать ЧПУ ссылки в ЯндексМаркет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может кто подсказать, как сделать ЧПУ ссылки в ЯндексМаркет?

у меня прописано

$output .= '<url>'.(HTTP_SERVER . '' . $product['product_id']).'</url>';
но у меня ссылки на продукт равны http://имясайта/idпродукта

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Угу, не вариант =(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Угу, не вариант =(

ну выводите не id, а SEO псевдоним

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не подскажите где найти код вывода псевдонима УРЛ? =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

$this->model_tool_seo_url->rewrite('http://mestodetok.ne...t&product_id=70');

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С помощью Fix305 пришел к такому виду:

<?php
class ControllerExportYml extends Controller {

	private $eof = "\n";

	public function index() {
		if ($this->config->get('yandex_market_status')) {
			$output  = '<?xml version="1.0" encoding="utf-8" ?>';
			$output .= '<!DOCTYPE yml_catalog SYSTEM "shops.dtd">';
			$output .= '<yml_catalog date="' . date("Y-m-d H:m") . '">';
			$output .= '<shop>'  . "\n";
			$output .= '<name>MestoDetok.net</name>';
			$output .= '<company>' . $this->config->get('config_meta_description') . '</company>';
			$output .= '<url>' . HTTP_SERVER . '</url>'. "\n";

			// Перечесляем валюту магазина
			// TODO: Добавить возможность настраивать проценты.
			$output .= '<currencies>';
			$output .= '<currency id="RUR" rate="1"/>';
			$output .= '</currencies>';

			// Категории товаров
			$this->load->model('catalog/category');
			$output .= '<categories>';
			$output .= $this->getCat();
			$output .= '</categories>';
            $this->load->model('tool/seo_url');
			// Товарные позиции
			$this->load->model('catalog/product');
			$this->load->model('tool/image');
			$output .= '<offers>';

			$products = $this->model_catalog_product->getProducts();
			foreach ($products as $product) {
				$output .= '<offer id="'.$product['product_id'].'" type="vendor.model" available="true" bid="13">' . $this->eof;
				$output .= '<url>'.($this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&product_id=' . $product['product_id'])).'</url>';
				$output .= '<price>' . $this->tax->calculate($product['price'], $product['tax_class_id']) . '</price>';
				$output .= '<currencyId>RUR</currencyId>';

				// Определяем категорию для товара
				$categories = $this->model_catalog_product->getCategories($product['product_id']);
				$output .= '<categoryId>'.$categories[0]['category_id'].'</categoryId>';

				// Определеяме изображение
				if ($product['image']) {
					$output .= '<picture>' . $this->model_tool_image->resize($product['image'], 500, 500) . '</picture>';
				} else {
					$output .= '<picture>' . $this->model_tool_image->resize('no_image.jpg', 500, 500) . '</picture>';
				}

				$output .= '<delivery> true </delivery>';
				if (($product['price'])>1000) {
				$output .= '<local_delivery_cost>0</local_delivery_cost>';
				} else {
				$output .= '<local_delivery_cost>200</local_delivery_cost>';
				}
			//	$output .= '<typePrefix>  </typePrefix>';
				$output .= '<vendor>' . $product['manufacturer'] . '</vendor>';
			//	$output .= '<vendorCode>  </vendorCode>';
				$output .= '<model>'.$product['model'].'</model>';
				$output .= '<description>'.$product['description'].'</description>';
				$output .= '<manufacturer_warranty>true</manufacturer_warranty>';
				$output .= '</offer>';
			}

			$output .= '</offers>';
			$output .= '</shop>';
			$output .= '</yml_catalog>';
			$this->response->addHeader('Content-Type: application/xml');
			$this->response->setOutput($output);
		}
	}

	// Возвращает массив категорий
	protected function getCat($pi=0) {
		$categories = $this->model_catalog_category->getCategories($pi);
		$out = '';

		foreach ($categories as $category) {
			$out .= '<category id="'.$category['category_id'].'"';
			if($pi != 0) $out .= ' parentId="'.$pi.'"';
			$out .='>'.$category['name'].'</category>';
			if($e =  $this->getCat($category['category_id'])) $out .= $e;
		}
		return $out;
	}
}
?>
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Будь добр, расскажи подробно что нужно изменить или что сделать, не понятно мне одной фразой(((

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×