Magento导入产品集用于URL密钥的父类别。类别页面上使用了错误的网址密钥

时间:2014-07-23 19:52:08

标签: magento url csv import product

- 更新 -

我已将问题发现在类别页面中,列出了产品链接。

此过程使用getCategoryIds获取带有类别的产品网址。

这让我觉得我必须设置一个额外的属性来定义用于url-key的所需父级。

我会更新有关这方面的信息。

有关处理创建此链接的​​更好方法的任何建议,或者无论如何都要避免使用其他属性来设置哪个类别,这将是有帮助的。

- 原创 -

我使用默认的Magento产品导入来导入产品的CSV

每个产品最多设置3个类别。最初,所有这些的网址关键似乎都没有了。我注意到它使用了最后为该类别定义的任何一个作为产品的url键。 (即site.com/products/last-category/product-key)

所以我在导入中颠倒了这些顺序。这似乎解决了大部分问题,但不是全部。还有一些被置于不同类别的网址密钥下。

看起来只有少数几个人最终使用第一个类别来设置网址密钥的父网址(即site.com/products/first-category/product-key)。

我删除了所有内容,清除了缓存,退出了,再次尝试了所有内容,但仍然是同样的问题。

CSV中似乎没有任何内容可以指示哪些处理方式不同。我已经研究了产品和类别的可见性,但奇怪的是,这根本没有任何限制。

我希望有人可以指出我可能导致这种情况的正确方向。

我查看了URL Rewrite,因为我认为它可能是那里的东西,也许是一个挥之不去的url重写,但当我删除所有内容时,所有内容都被清除了。

重新导入,创建具有错误父级的相同少数。

我似乎无法在导入CSV的_root_category字段中找到太多信息,这可能是原因吗?我只是将所有这些设置为默认类别。

如果能有所帮助,我可以提供更具体的例子,我不想让它比以前更令人困惑。

非常感谢任何帮助。我到处都看到了我能想到的事情。

有什么想法?我在哪里忘了戳?我应该对Import脚本进行一些编辑(我希望避免这种情况)吗?

修改

如果我在地址栏中输入了URL密钥,则该密钥可以正常工作。说我想要Category1 / Product1,我可以访问它。但是,如果我转到Category1 /,在目录中,链接是Category3 / Product1。 但仅限于其中一些项目。我不确定是什么原因造成的。 这个类别的字母排序似乎没有任何联系。 这可能与类别ID有关吗? 对于那些有效的,看起来类别ID高于它所在的其他类别。所以也许它将url键分配给具有最高ID值的任何类别。

如何防止这种情况发生?它开始看起来我将不得不使用导入脚本做一些事情。哪种方法最好?创建高级数据流,还是编辑核心?

1 个答案:

答案 0 :(得分:0)

为了不让重复的网址,但将其他类别链接到另一个类别的产品,只有一个网址,我最终解决了这个问题,如下所示。

我创建了一个额外的产品属性,parent_url_key。

在我的导入脚本中,我为此值中的每个产品添加了首选的父URL。

在“分类产品列表”视图中,而不是仅使用:

$_product->getProductUrl()

我这样做是为了创建我的产品网址:

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

这样它会检查已定义的父级,或者如果它未定义则使用当前类别。