2011-10-14 41 views
3

我們從1.4遷移到1.6 我不確定這是否是遷移中的問題,但我們的表費率傳送不起作用。Magento表格費率在遷移後不起作用

我有這2個例子;

這一個工程

Country Region/State  Zip/Postal Code Weight (and above) Shipping Price 
USA  *    *     80     145 

這一個不工作

Country Region/State  Zip/Postal Code Weight (and above) Shipping Price 
USA  AL    *     80     145 

我已經檢查博客等,和我沒有看到關於文件的問題。 有什麼想法?

+0

你是不是想他們分開還是它是同一個文件的一部分? – jprofitt

+0

我試過它們作爲單獨的文件。 –

+0

您是否確定將AL設置爲您退房時的狀態? (我知道,很明顯......但我必須要求確定!) – jprofitt

回答

2

條件SQL爲tablerate檢查(除其他東西),其dest_zip = ''(CFR Mage_Shipping_Model_Mysql4_Carrier_Tablerate線135)。
正如你對這個字段*沒有滿足條件。
最好的解決方案是編輯數據庫,用空白字段代替*
在我來說,我不能(不知道爲什麼,該數據庫保持着0代替我的空字符串),所以我不得不覆蓋類添加一行:

"dest_country_id = :country_id AND dest_region_id = :region_id AND dest_zip = :postcode", 
"dest_country_id = :country_id AND dest_region_id = :region_id AND dest_zip = ''", 
"dest_country_id = :country_id AND dest_region_id = 0 AND dest_zip = ''", 
"dest_country_id = :country_id AND dest_region_id = 0 AND dest_zip = '0'",//added line 
"dest_country_id = :country_id AND dest_region_id = 0 AND dest_zip = :postcode", 
"dest_country_id = '0' AND dest_region_id = 0 AND dest_zip = ''", 

HTH

+0

嗨,的確,它的工作原理,我刪除*後,把它的工作正常,但是,即使我從文件中刪除*,*會再次出現在數據庫中。你說你必須重寫班級,你能解釋一下你的意思嗎?我不是一個php開發人員或magento開發人員 –

+0

我應該重寫哪個類? –

+0

@developers,請不要看這個。 你不是一個PHP開發人員,所以放手輕鬆和討厭的方式。將你的文件'app/code/core/Mage/Shipping/Model/Mysql4/Carrier/Tablerate.php'複製到'app/code/local/Mage/Shipping/Model/Mysql4/Carrier/Tablerate.php'中,我在我的答案中粘貼的代碼並添加了我指出的添加的那一行。 – OSdave