【问题标题】:Cannot set URL Key to default at store level in Magento无法在 Magento 的商店级别将 URL 密钥设置为默认值
【发布时间】:2014-08-12 23:58:33
【问题描述】:

我正在使用 Magento 企业版 1.13.1.0 并尝试更改产品以将 URL 键作为默认值。这是因为我将为我的两个商店使用相同的 url 键。

我有 2 家英国和澳大利亚商店,它们必须为该产品共享相同的 URL 密钥(我有很多产品已经这样做了),但每次我选择“使用默认值”并保存时,产品都会被保存,但 URL 密钥仍然是和我之前在商店级别的一样。并且“使用默认值”复选框会自动取消选中。

URL 键的当前值如下所示,

Default Value  : lunch-bag-red
AU Store Value : lunch-bag-red
UK Store Value : lunch-bag-red-temp

我追求的结果是,

Default Value  : lunch-bag-red
AU Store Value : Use Default
UK Store Value : Use Default

我查看了 URL 重写部分,并在删除该产品可用的任何 URL 重写后尝试执行上述操作,但没有运气。

在不同的场合以不同的顺序运行 URL 重新索引器,没有什么能帮助我将产品更改为使用默认值。

但还有一件事,在我的 AU 商店中,URL 密钥与默认 URL 密钥相同,但未选中“使用默认值”。我不确定在 magento 中无法使用重复的 URL 时它是如何发生的。

我现在尝试解决这个问题超过 2 小时,不幸的是没有任何效果。

以前有没有人遇到过类似的问题?或者那里有人知道解决方法吗?

【问题讨论】:

  • 我遇到了同样的问题。你找到解决办法了吗?

标签: php magento url url-rewriting


【解决方案1】:

对于那些可能有问题的人,以下块负责为某些属性使用默认值:

app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php:602

    if ($useDefaults = $this->getRequest()->getPost('use_default')) {
        foreach ($useDefaults as $attributeCode) {
            $product->setData($attributeCode, false);
        }
    }

我还没有尝试过,但我想您可以遍历您的产品并执行“$product->setData('url_key', false)”。有人在这篇文章中发布了它:Magento - Set product attribute to use default values

在我们的例子中(ee 1.13.1),我们有两个商店“fr”和“en”。我们只希望“en”商店获取默认值。所以我们直接删除了表'catalog_product_entity_url_key'中的匹配行。它会自动从“默认”中获取值。

Before 
store_id: 0 - product : 42 - Value : green-apple
store_id: 1 - product : 42 - Value : pomme-verte
store_id: 2 - product : 42 - Value : apple

After
store_id: 0 - product : 42 - Value : green-apple
store_id: 1 - product : 42 - Value : pomme-verte 

我们做了一个从苹果到青苹果的永久重定向。

编辑:我们还删除了表 catalog_product_entity_varchar 中属性 97 的条目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多