Magento CSV Импорт продукта Набор родительской категории URL Ключ для использования на странице категории «Список каталога»

magento.stackexchange https://magento.stackexchange.com//questions/29927

Вопрос

- Обновление -

Я думаю, что проблема находится в представлении списка категорий. Он генерирует ссылку на продукт к продукту, для страницы в цикле.

У меня есть это получение категорий продукта и используя это, чтобы построить URL.

Я думаю, что мне придется определить, какой я хочу быть родителем в дополнительном атрибуте, а затем проверять этот атрибут для клавиши URL-клавиши категории, которую я хочу использовать.

Любые предложения от наилучшего способа достичь этого?

- Обновление -

Я заметил, что проблема, по-видимому, из-за того, как Magento создает свой URL-ключ для продукта, основанный на самом высоком идентификаторе категории категорий, к которым он принадлежит.

Самая большая категория ID определяет ключ URL.

Так, если у меня есть продукты1 в категории1, категории2 и категории3; Я хочу ключ URL из категории1 (т.е. сайта.com/category1/product1), но если Cateation3 имеет больший идентификатор, чем категория1, ключ URL будет Site.com/Category3/Product1, даже когда вы навигаете на сайт.com/ Категория1 Ссылка на сайт.com/category3/product1.

Я мог бы удалить его из дополнительных категорий, которые имеют более высокий идентификатор, но это не идеальное решение.

Есть ли в любом случае, чтобы установить полный URL-ключ? или есть где-то, где я могу заставить предпочтение ключевой URL-ключа определенной категории?

- Оригинал -

Я пытаюсь импортировать продукты и категории через CSV.

У меня есть этот процесс, и все импортирует без броска ошибки.

У меня есть мои продукты, принадлежащие к от 1 до 3 категорий.

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

Казалось, что изначально все они использовали последнее, поэтому я переключил приказ быть измененным.

Это исправило большинство всех из них, но те, которые настраиваются в значительной степени, а также должны иметь тот же родительский ключ URL, случайным образом используют одну из других категорий как клавишу URL.

Я пытался удалить все (продукты и категории), очистили мою хранилище кеша. Проверено, что URL перезаписывается, были удалены и снова попробовали импорт.

Я получаю тот же результат.

То, кажется, не кажется никаких связей к видимости, так как один, который неверна, установлен на 4, а другой - 1 (что я ожидаю, что 1, чтобы ошибоваться, если либо из двух.)

У меня большая часть категорий неактивна, я хочу перевернуть дополнительные категории после запуска.

Я думаю, что это примет предпочтение видимым категориям, но тот, который я хочу, чтобы отображаться, видно, и он размещен в неактивном.

Я не уверен, что еще может привести к этому. Или где еще искать проблему. Я не вижу ничего, что бы указать, почему эти специфические продукты разные. Но каждый раз, когда я импортирую, то же самое впадают в неправильную категорию.

Любая помощь была бы очень ценится. Если кто-то может по крайней мере указывать мне в правильном направлении.

Я могу дать более конкретные примеры, если требуется, я не хотел путать вещи больше, чем это уже есть.

Это было полезно?

Решение

В попытке не иметь дублирующих URL-адресов, но связывает дополнительные категории к продукту в другой категории, с одним URL-адресом, я закончил решить эту проблему следующим образом.

Я создал дополнительный атрибут продукта, parent_url_key.

В моем ввозопом сценариях я добавил предпочтительный родительский URL-ключ для каждого продукта в этом значении.

на представлении списка продуктов категории, а не просто используя:

$_product->getProductUrl()
.

Я сделал это, чтобы создать URL-адрес своего продукта:

$url = $_product->getProductUrl();
if($categoryParent = $_product->getResource()->getAttribute('parent_url_key')) {
    $categoryParentVal = $categoryParent->getFrontend()->getValue($_product);
    if($categoryParentVal) {
        $url = $this->getUrl($categoryParentVal).basename($url);
    }
}
.

Таким образом, он проверяет определенный родитель или использует текущую категорию, если она не определена.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top