2012-01-20 36 views
1

這一切AFTE從1.4.1Magento的,重新編制目錄URL時錯誤重寫

rupgrading我得到一個非常具體的錯誤消息:

下一頁異常 'Zend_Db_Statement_Exception' 有消息「SQLSTATE [23000]:完整性約束違規:1062 /home/in-due/domains/sb2.in-due.de/public_html/hochzeitsshop/lib/Zend/Db/中的鍵'UNQ_CORE_URL_REWRITE_ID_PATH_IS_SYSTEM_STORE_ID'的重複條目'product/19-1-2'聲明/ Pdo.php:234

probl時間是,我不知道如何找到條目,這是製造麻煩。無論是在後端(目錄| URL重寫管理),也沒有在數據庫本身(表core_url_rewrite)是一款入門

產品/ 19-1-2

任何幫助表示讚賞,

PAT ERLER

回答

2

@perler,這裏是一個MySQL查詢檢測重複的SKU。請記住,如果您在表格前面加上前綴,請相應地更改catalog_product_entity

SELECT 
    DISTINCT(`sku`) as `sku`, 
    COUNT(`sku`) as `skuCount`, 
    entity_id 
FROM 
    catalog_product_entity 
GROUP BY 
    `sku` 
HAVING 
    `skuCount` > 1; 
+0

謝謝,這正是我是尋找:) – perler

+0

沒問題!我有類似的問題,但在我的情況下,它實際上是由分配類別的「級別」屬性設置爲1而不是子類別2引起的。 ([更多信息](http://slightlyremarkable.com/post/18954322031/magento-cant-reindex-catalog-url-rewrites)) – Jona

+0

我有另一家商店,一個擴展開發人員認爲我的類別被破壞。也許我有同樣的問題。我怎樣才能看出哪個類別在哪個級別或者哪個級別是錯誤的? – perler

1

重複項是由3個字段組成的id_path,is_system和store_id組成的,理論上你應該可以使用URL Rewrite Management,搜索產品/ 19的id_path,這是你的'麻煩'的領域。刪除該值可能會解決問題(但我建議首先進行備份,並先在開發環境中嘗試)。

如果您仍在開發中,並且沒有使用任何自定義重寫,那麼您可以清空core_url_rewrite表並重新索引以重新生成所有字段。如果它是一個現場網站,這會有點麻煩,如果你重命名產品,這意味着你會失去一點SEO汁,因爲你會失去重寫。

+0

好,非常感謝,我發現id_path產品/ 19(在後臺),它看上去並不十分可疑多個條目(我們有3組店的意見和那裏有三個條目,每個商店)。無論如何,我將它們刪除(我們在沙箱中),但沒有成功。我仍然有一些產品/ 190(不是19),但不認爲這是問題所在。 不幸的是,在三家商店5000個產品,這將打到谷歌排名很多.. – perler

+0

最好我可以猜測是'同一產品兩次,這會導致重複輸入錯誤。但是這不應該是可能的,除非你在該商店有兩個一級類別,這是不可能的。您可以嘗試運行位於@ shell/indexer.php的cli索引器,通過cd進入shell /並運行'php indexer.php reindexall',這可能會有所幫助。或者,如果您使用它,則可以在運行reindex之前嘗試禁用flat_catalog_categories/products,以防它們損壞。 –

+0

運行indexer.php reindexall時出現錯誤。如何禁用flat_catalog_categories/products? – perler

0

好的,問題是重複的SKU。你不應該輸入一個,但是發生了什麼事(在magento 1.4.0.1中),客戶輸入了一個非常長的SKU,在保存產品時這個SKU縮短了。縮短的部分與另一個SKU相同。

所以,如果你自己有這個問題,檢查你是否有重複的SKU數據庫(有人可以發佈一個SQL查詢來做到這一點?)