2013-01-03 37 views
4

Magento有一個產品和類別的字段來創建定製的SEO友好的URL密鑰。 但是,如果您有多個商店,則通常不會爲不同的商店使用不同的網址鍵 ,因爲字段url_key默認爲'GLOBAL'。對於產品, ,您可以將url_key屬性的is_default字段更新爲屬性 管理中的「存儲視圖」。但對於該類別的url_key字段,您在Magento中沒有該選項。 但字段不存在具有相同屬性的代碼數據庫,但具有不同 backend_model所以你需要直接進入數據庫,1比0。Magento 1.7 SEO友好的URL和多商店視圖

參考更改「is_global」字段:http://www.devraju.com/magento/different-category-url-keys-for-different-store-views-in-magento/ 看評論上頁面的底部。

同樣的問題在這裏: Magento multilanguage - double change in language resuts in 404 (or how to change language within stores not views)

這一戰略似乎在舊版本的工作,但在7.1我有麻煩。當我轉到目錄>>屬性>>管理屬性時,url_key屬性已經設置爲存儲視圖。見下圖。

enter image description here

此外屬性表看起來正確配置。請參閱下面的SQL。

的交換代碼如下所示:

<?php if(count($this->getStores())>1): ?> 
    <div class="form-language"> 
     <label for="select-language"><?php echo $this->__('Your Language:') ?></label> 
     <select id="select-language" title="<?php echo $this->__('Your Language') ?>" onchange="window.location.href=this.value"> 
     <?php foreach ($this->getStores() as $_lang): ?> 
      <?php $_selected = ($_lang->getId() == $this->getCurrentStoreId()) ? ' selected="selected"' : '' ?> 
      <option value="<?php echo $_lang->getCurrentUrl() ?>"<?php echo $_selected ?>><?php echo $this->htmlEscape($_lang->getName()) ?></option> 
     <?php endforeach; ?> 
     </select> 
    </div> 
    <?php endif; ?>   

SQLS

SELECT * FROM eav_attribute WHERE attribute_code LIKE '%url_key%'; 

attribute_id Attribute Id entity_type_id Entity Type Id attribute_code Attribute 
    Edit Delete 43 3 url_key catalog/category_attribute_backend_urlkey 
    Edit Delete 97 4 url_key catalog/product_attribute_backend_urlkey 


SELECT attribute_id, is_global FROM catalog_eav_attribute WHERE attribute_id=43; 
SELECT attribute_id, is_global FROM catalog_eav_attribute WHERE attribute_id=97; 


Full Texts attribute_id Attribute ID is_global Is Global 
    Edit Delete 43 0 


Full Texts attribute_id Attribute ID is_global Is Global 
    Edit Delete 97 0 

我也嘗試使用重寫規則來解決這個問題,但經過重新編寫規則似乎並不涵蓋語言切換。 ref:http://www.magentocommerce.com/wiki/modules_reference/english/mage_adminhtml/urlrewrite/index

我正在尋找適當的代碼修改解決方案。

+0

作品以及在香草Magento的1.7.0.2 ...所以它就在你結束的東西...你改變url_key存儲視圖級別後運行重新索引? – FlorinelChis

回答

0

如果您複製當前類別根樹並使用其他url密鑰,然後爲每個存儲分配它自己的根類別樹,該怎麼辦。 (不理想的解決方案,但應該沒有任何修改或編程工作)

Creating and Assigning Root Categories

+0

的想法是從英文和西班牙語商店的意見中,從類別和產品來回切換,例如:/ sugar to/uzucar。問題不是類別樹。問題是具有爲每個商店定義的網址的產品互不鏈接。 –

1

這件事把我幾天了。我申請更改相關表中的is_global字段,但只適用於我的本地服務器,無法使其在實時服務器上工作(不知道爲什麼)。

嘗試一些解決方案,我遇到了一個簡單的解決方案從管理面板。

嘗試

目錄 - > URL rewirte管理 - >添加URL重寫 - >選擇 '爲類別' - >選擇類別 - >選擇商店,添加的網址,選擇重定向 '否' 和保存。

注意:這可能不會影響您的菜單鏈接,您可以在菜單分類鏈接中添加自定義URLS。

0

我有同樣的問題,顯示出在創建新產品 「產品與‘url_key’屬性已經存在」

我改變url_key到作爲可選字段錯誤,並且它爲我工作。