2012-09-29 84 views
1

我有一些Magento DB的問題,我無法匹配我的自定義產品導出文件的屬性。從Mysql Magento出口產品

我需要幫助才能得到屬性,我只用這個頭文件完成了這個腳本 但是attribute_set,visibility和size_cloth返回的是數字而不是名稱。也許這可以通過匹配功能來解決。

我需要獲得更多的屬性,例如:category_ids,我無法得到這個... color,size_shoes,size_etc。

請檢查我的腳本。

'store', '_website', 'attribute_set', 'type', 'sku', 'name', 'description', 'short_description', 'visibility', 'has_option', 'price', 'special_price', 'size_cloth', 'link', 'image' 



<?php 

    //Setup Connection information 
    $dbhost = 'localhost'; 
    $dbuser = 'user'; 
    $dbpass = 'pass'; 

    //Connect to the database 
    $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql'); 

    //Point to specific DB 
    $dbname = 'database_name'; 
    mysql_select_db($dbname); 

    //Create the Query to get the products 
    $sql = "SELECT DISTINCT P.attribute_set_id, P.type_id, P.sku, P.has_options, V.value AS Name, T1.value AS ProdDesc, T2.value AS ShortDesc, 
    T5.value AS visibility, D.value AS Price, S.value AS Special_Price, SIZE_CLOTH.value AS size_cloth, CONCAT('http://www.website.com/', V1.value) AS Link, 
    CASE 
     WHEN V2.Value IS NULL 
      THEN NULL 
     ELSE CONCAT('http://www.website.com/media/catalog/product', V2.value) 
    END AS Image 
    FROM catalog_product_entity AS P INNER JOIN 

    catalog_product_entity_varchar AS V ON P.entity_id = V.entity_id AND V.attribute_id = 60 LEFT JOIN 
    catalog_product_entity_varchar AS V1 ON P.entity_id = V1.entity_id AND V1.attribute_id = 87 LEFT JOIN 
    catalog_product_entity_varchar AS V2 ON P.entity_id = V2.entity_id AND V2.attribute_id = 74 LEFT JOIN 
    catalog_product_entity_text AS T1 ON P.entity_id = T1.entity_id AND T1.attribute_id = 61 LEFT JOIN 
    catalog_product_entity_text AS T2 ON P.entity_id = T2.entity_id AND T2.attribute_id = 62 LEFT JOIN 
    catalog_product_entity_int AS T5 ON P.entity_id = T5.entity_id AND T5.attribute_id = 91 LEFT JOIN 
    catalog_product_entity_decimal AS D ON P.entity_id = D.entity_id AND D.attribute_id = 64 LEFT JOIN 
    catalog_product_entity_int AS SIZE_CLOTH ON P.entity_id = SIZE_CLOTH.entity_id AND SIZE_CLOTH.attribute_id = 122 LEFT JOIN 
    catalog_product_entity_decimal AS S ON P.entity_id = S.entity_id AND S.attribute_id = 65"; 

    //Run the query 
    $query = mysql_query($sql); 
    //But after this i will prepare the csv file for export. 
    $file = fopen('products_export.csv', 'w'); 
    // Custom header for csv file 
    $header = array('store', '_website', 'attribute_set', 'type', 'sku', 'name', 'description', 'short_description', 'visibility', 'has_option', 'price', 'special_price', 'size_cloth', 'link', 'image'); 
    // this will arrange all data by comma 
    fputcsv($file, $header, ',', '"');  
    //Loop through and print each products info 
    while($row = mysql_fetch_array($query)) 
     { 
     $item = array(); 
      $value1 = ("admin"); 
      $value2 = ("base"); 
      $value3 = ($row['attribute_set_id']); 
      $value4 = ($row['type_id']); 
      $value5 = ($row['sku']); 
      $value6 = ($row['Name']); 
      $value7 = ($row['ProdDesc']); 
      $value8 = ($row['ShortDesc']); 
      $value9 = ($row['visibility']); 
      $value10 = ($row['has_options']); 
      $value11 = ($row['Price']); 
      $value111 = ($row['Special_Price']); 
      $value112 = ($row['size_cloth']); 
      $value12 = ($row['Link']); 
      //$value13 = ($row['Image']); 
      $item[] = $value1; 
      $item[] = $value2; 
      $item[] = $value3; 
      $item[] = $value4; 
      $item[] = $value5; 
      $item[] = $value6; 
      $item[] = $value7; 
      $item[] = $value8; 
      $item[] = $value9; 
      $item[] = $value10; 
      $item[] = $value11; 
      $item[] = $value111; 
      $item[] = $value112; 
      $item[] = $value12; 

      // put all data in csv file 
      fputcsv($file, $item, ',', '"');  
     } 
     { 
      // close csv file and finish. 
     fclose($file); 
    } 
?> 

我認爲最好的解決方案將是數據。 例子:

if ($value112 == need to array the list of numbers, 1, 2, 3, 4, 5) { 
    echo "S, M, L, XL"; 
} else { 
    echo " "; 
} 

但我不知道如何將這個我的數組項...

+0

爲什麼不使用公認的產品出口機制...例如。 DataFlow或第三方擴展,如uRapidFlow –

+0

您是否找到了解決方法?我非常需要這個! –

回答

2

直接與Magento的DB交互不會是我的第一選擇。 替代實際工作:

  1. 使用Magento的導入/導出模塊

  2. 使用Magento的數據流導入/導出

  3. 使用Magento的產品集合生成導出文件 http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-8-varien-data-collections

+1

3爲勝利。如果您需要自定義報告或出口,使用Magento的產品集合可以處理所有上述絨毛。沒有更快的方法把自己趕進瘋人院,而不是試圖通過所有那些討厭的自我加入來達到目的。 Alan Storm的網站是開始理解這些東西的好地方。 http://alanstorm.com/category/magento –

+0

謝謝你們...... – NeoCaste