2012-10-30 142 views
1

我目前負責將大量產品導入客戶數據庫。 我一直在使用CSV文件來做到這一點,但到目前爲止,我還無法正確確定產品本身的運輸特性(例如:寬度,高度,深度)(目錄>產品>編輯(產品XPTO >運費)Prestashop 1.5.1 - 如何導入產品的送貨特徵?

裏面的CSV文件,我試圖用:

(...);"Height:9 cm:1, Width:13,7 cm:2";(....) 

,然後,我將映射此值的特點(產品名稱:值:位置)列 結果,產品的高度和寬度確實出現在產品的數據表上,但到目前爲止,我還沒有設法將這些值複製到運輸標籤頁。

這個怎麼做? Here's a sample CSV dummy file

還有一件事:功能的名稱中的「位置」:值:位置列表是幹什麼的?我使用的東西很像功能名稱:功能值:增量但據我所知,這不是應該如何完成的。

在此先感謝!

編輯:如果可能的話,我也想知道到底是什麼呢領域的「價值(價值:位置)*」是指

回答

2

產品運輸特性被存儲在ps_product以下領域表中的Prestashop數據庫:

  • 寬度十進制(20,6)
  • 高度十進制(20,6)
  • 深度十進制(20,6)

不幸的是,CSV導入腳本(controllers/admin/AdminImportController.php)不寫這些字段(看看進一步的詳細信息的源代碼),所以,如果你想在寬度,高度和深度特徵值複製到相應的「裝運」標籤的領域,你需要運行下面的MySQL查詢(請做你的數據庫的備份繼續前):

update ps_product p, 
     ps_feature_lang fl, 
     ps_feature_product fp, 
     ps_feature_value_lang fvl 
    set p.width=fvl.value 
where p.id_product=fp.id_product 
    and fl.id_feature=fp.id_feature 
    and fl.name='Width' 
    and fvl.id_feature_value=fp.id_feature_value; 

update ps_product p, 
     ps_feature_lang fl, 
     ps_feature_product fp, 
     ps_feature_value_lang fvl 
    set p.height=fvl.value 
where p.id_product=fp.id_product 
    and fl.id_feature=fp.id_feature 
    and fl.name='Height' 
    and fvl.id_feature_value=fp.id_feature_value; 

update ps_product p, 
     ps_feature_lang fl, 
     ps_feature_product fp, 
     ps_feature_value_lang fvl 
    set p.depth=fvl.value 
where p.id_product=fp.id_product 
    and fl.id_feature=fp.id_feature 
    and fl.name='Depth' 
    and fvl.id_feature_value=fp.id_feature_value; 

一個通知:由於ps_feature_value_lang.value字段是一個varchar(255)ps_product.width/height/depth字段是`deci mal(20,6),查詢只更新值,但不更新度量單位。
這意味着您必須在您的「本地化」設置中設置您在CSV文件中使用的相同「尺寸單位」(例如,在您使用「cm」的虛擬文件中)。
最後,關於「位置」含義:它只是一個序號,用於在「功能」選項卡中以特定順序顯示各種功能。
即使我沒有嘗試過,也應該可以從CSV文件 中添加新的產品功能,所以使用「位置」字段您還可以指定在哪些位置必須添加這些新功能。