- 更新 -

我认为该问题是在“类别”列表视图中。它以循环中的页面生成产品链接到产品。

我有它得到产品类别,并使用它来构建URL。

我认为我必须定义一个我想要在附加属性中成为父的父级,然后检查我要使用的类别URL-key的属性。

对完成此问题的最佳方式的任何建议?

- 更新 -

我已经注意到这个问题似乎是因为magento创建它的URL-key的产品是基于它所属类别的最高类别的ID。

最大类别ID定义URL-key。

所以如果我在类别1,类别2和类别中有产品1;我想要类别的URL键(即Site.com/category1/Product1),但如果类别3具有比类别更大的ID,URL键也是Site.com/Category3/Product1,即使您导航到Site.com/类别1链接是toes.com/category3/product1。

我可以从具有更高ID的其他类别中删除它,但这不是理想的解决方案。 无论如何都要设置完整的URL密钥?或者在某个地方我可以强迫某个类别的URL-key的偏好?

- 原始 -

我试图通过CSV导入产品和类别。

我有这个过程工作,一切都在没有抛出错误的情况下导入。

我的产品属于1到3个类别的任何地方。

在导入中,大多数产品的URL键是正确的,似乎是一些无随机的,没有得到第一个父(类别)的URL键。

似乎最初他们都在使用最后一个,所以我切换了逆转的顺序。

这个解决了大多数所有,但是那些设置得相同,并且应该具有相同的父网址密钥,是随机使用其他类别作为URL键。

我尝试删除所有内容(产品和类别),清除了我的缓存存储。 检查了URL重写删除,然后再次尝试进口。

我得到相同的结果。

似乎没有任何可见性的关系,因为一个不正确的设置为4,另一个是1(如果两个中的任何一个,我期望1个错误。)

我有大多数类别不活动,我想在启动后推出其他类别。

我会认为它会偏好到可见的类别,但我想出现在in中的那个是可见的,它被放置在不活动状态。

我不确定还有什么可能引起这个。 或者在其他地方寻找问题。我看不到任何东西会表明那些特定的产品有所不同。但是每次我导入时,相同的时间都会进入错误的类别。

将非常感谢任何帮助。如果有人至少可以指向正确的方向。

如果需要,我可以给出更具体的例子,我不想让事情混淆超过这一点。

有帮助吗?

解决方案

在不具有重复的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归因
scroll top