2015-08-16 100 views
0

我設法從XML工作中獲取導入產品的字段映射(magento xml import mapping)。Magento xml導入 - 不導入圖片

我用Magmi進口商,這裏是鏈接magmi圖像屬性處理器插件,它是(因爲我發現後)必須從網址導入圖片:http://wiki.magmi.org/index.php?title=Image_attributes_processor

但不能導入圖片(鏈接圖片以XML格式顯示爲URL)。從XML

一個產品:

<izdelek> 
    <st>1</st> 
    <izdelekID>75</izdelekID> 
    <izdelekIme>ATI Radeon 102 - B62902 (B)</izdelekIme> 
    <izdelekPodnaslov>256 MB, DMS - 59</izdelekPodnaslov> 
    <izdelekOpis></izdelekOpis> 
    <izdelekKategorija>Komponente</izdelekKategorija> 
    <izdelekDodatenOpis> 
     Grafična kartica omogoča razširjeno namizje na dveh ekranih (dve različni sliki)! LOW PROFILE - namenjena 
     izključno SFF računalnikom! 
    </izdelekDodatenOpis> 
    <zadnja_osvezitev>16/08/2015</zadnja_osvezitev> 
    <url>http://www.bbt.si/ati-radeon-102-b62902-b</url> 
    <garancija>6 mesecev</garancija> 
    <opis>PCIe</opis> 
    <slike> 
     <slika1> 
      http://www.bbt.si/modules/uploader/uploads/s_product/pictures/crop1/graficna-kartica-ati-102-b62902.jpg 
     </slika1> 
    </slike> 
    <cena>12.20</cena> 
    <cenaBrezddv>10.00</cenaBrezddv> 
    <zaloga>več na zalogi</zaloga> 
</izdelek> 

需要一些建議什麼是錯,此代碼:

<?php 

$spisekKategorij = array(
    'Komponente' => '738', 
    'Prenosniki' => '742', 
    'Monitorji' => '737', 
); 

class TestLogger 
{ 
    /** 
    * logging methos 
    * 
    * @param string $data 
    *   : log content 
    * @param string $type 
    *   : log type 
    */ 
    public function log($data, $type) 
    { 
     echo "$type:$data\n"; 
    } 
} 

// setup include PATH's 
set_include_path('magmi' . PATH_SEPARATOR . 'magmi/inc' . PATH_SEPARATOR . 'magmi/integration/inc' . PATH_SEPARATOR . 'magmi/engines'); 

// end include PATH's 

require_once("magmi_datapump.php"); // call Datapump 

$dp = Magmi_DataPumpFactory::getDataPumpInstance("productimport"); 
$dp->beginImportSession("123", "create"); // "default" - name of profile , "create" - we want to create and update items 

$file = "test.xml"; 

$microline = new SimpleXMLElement($file, null, true); // load XML 

foreach ($microline as $item) { 
    $izdelek = ((string) $item->izdelekKategorija); 
    $kategorija = (($spisekKategorij[$izdelek]) ? $spisekKategorij[$izdelek] : $kategorija); 


    $newProductData = array(
     "sku"    => (string) $item->izdelekID .= ' abbt', 
     "name"    => (string) $item->izdelekIme, 
     'price'    => ((real) $item->cenaBrezddv), 
     'description'  => (string) $item->izdelekOpis . (string) $item->izdelekDodatenOpis, 
     'short_description' => (string) $item->izdelekDodatenOpis, 
     'diagonala_rshop' => (string) $item->velikost_zaslona, 
     'procesor_rshop' => (string) $item->procesor, 
     'ram_rshop'   => (string) $item->ram, 
     'hdd_rshop'   => (string) $item->disk, 
     'operacijski_rshop' => (string) $item->licencna_nalepka, 
     'locljivost_rshop' => (string) $item->locljivost, 
     'grafika_rshop'  => (string) $item->grafika, 
     "attribute_set"  => "test", 
     "store"    => "rshop", 
     "category_ids"  => $kategorija, 
    ); 


    $newProductData["image"]  = '+' . (string) $item->slike->slika1; // + show picture, - dont show picture 
    $newProductData['small_image'] = '+' . (string) $item->slike->slika1; // small img 
    $newProductData['thumbnail'] = '+' . (string) $item->slike->slika1; 

    echo $izdelek; 
    echo $kategorija; 
    echo $slika; 

    echo '<pre>'; 
    print_r($newProductData); 
    echo '</pre>'; 


    $dp->ingest($newProductData); 


    echo '' . ' mem:' . memory_get_usage() . " ... Done! <br />\n"; //memory usage check 
} 

unset($microline); 

$dp->endImportSession(); // end import 
+0

你的問題會變得更加清晰。 – hakre

+0

謝謝你提醒我。我添加了xml。 – Gurug

+0

如果你使用magmi導入器,你應該在你的問題中看到它。你還應該參考進口商的文件,瞭解如何導入圖像,並顯示你在哪裏做過這些事情,以及你遇到問題的具體行動,這樣你的問題就會變得更加清晰(問題越清楚,答案越接近和有用可)。 – hakre

回答

0

我太急於問問題......問題是與magmi配置,這樣的解決方案是:

  • 啓用Magmi圖像屬性處理器插件
  • 使用「默認」配置文件

    $ dp-> beginImportSession(「123」,「create」);

(123是錯誤的magmi輪廓),因此行權必須是:當你提供一些XML作爲例子

$dp->beginImportSession("default", "create");