Magento CSV产品导入设置父类别URL键用于目录列表类别页面
-
11-12-2019 - |
题
- 更新 -
我认为该问题是在“类别”列表视图中。它以循环中的页面生成产品链接到产品。
我有它得到产品类别,并使用它来构建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);
}
}
.
这种方式检查定义的父级,或者如果它未定义,则使用当前类别。