senty

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

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

senty    15

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

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

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

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

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

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

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


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

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

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

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

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


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

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

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


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

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

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

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


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

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

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


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

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

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

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


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

С помощью 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;
	}
}
?>

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


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

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

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


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

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

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