2012-09-29 2 views
1

Magento DB에 몇 가지 문제가 있습니다. 사용자 정의 제품 내보내기 파일의 속성과 일치하지 않습니다.Mysql Magento에서 제품을 내 보냅니다.

속성을 얻으려면 도움이 필요합니다.이 헤더로만이 스크립트를 완료했습니다. 그러나 attribute_set, visibility 및 size_cloth는 name이 아닌 number를 반환합니다. 어쩌면 이것은 일치 함수로 해결할 수 있습니다.

예 : 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); 
    } 
?> 

나는 최고의 솔루션이 데이터 될 것이라고 생각합니다. 예 : 젠토의 DB와 직접 상호 작용

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

내 첫번째 선택이 아닐 것입니다. 실제로 작동 대안 :

  1. 사용 젠토 가져 오기/내보내기 모듈

  2. 사용 젠토 데이터 흐름 가져 오기/내보내기

  3. 내보내기 파일을 생성하는 데 사용할 젠토의 제품 수집 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

관련 문제