Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Page 1 of 2
Performance des Import
 
Husky
Jr. Member
 
Total Posts:  19
Joined:  2008-07-27
 

Hi!

wer hat schon Erfahrungen mit dem CVS Import sammeln können? Ich habe heute morgen einen Import von über 8000 Produkte gestartet.
Dieser läuft schon einige stunden und habe jetzt ca 70%.

Welche Möglichkeit gibt es den Import zu beschleunigen?

Beste Grüße und vielen Dank im Vorraus!

 
Magento Community Magento Community
Magento Community
Magento Community
 
timste
Guru
 
Total Posts:  645
Joined:  2007-12-26
Leipzig
 

ich importiere / update über die API, da brauche ich pro Artikel ca. 10 Sekunden ohne Bilder
nur mal so als Vergleich grin

Grüße

 
Magento Community Magento Community
Magento Community
Magento Community
 
Husky
Jr. Member
 
Total Posts:  19
Joined:  2008-07-27
 

Das würde bedeuten einfach einen Controller zu erstellen und mit Hilfe des Product Models die neuen Produkte anzulegen oder meinst du einen anderen Weg? Eventuell via Webservice?

 
Magento Community Magento Community
Magento Community
Magento Community
 
timste
Guru
 
Total Posts:  645
Joined:  2007-12-26
Leipzig
 

Ich meine den Webservice.

Ich habe ne Menge Produkte die aus einer WaWi kommen, via Cronjob werden die dann wenn sie noch nicht da sind angelegt oder aber wenn sie vorhanden sind auf den neuesten Stand gebracht.

Grüße

 
Magento Community Magento Community
Magento Community
Magento Community
 
PHOENIX
Guru
 
Avatar
Total Posts:  549
Joined:  2007-12-19
Stuttgart, Germany
 

Ist die API wirklich schneller als der Import? Ich habe gelesen, dass die API (noch) recht langsam sei.

 
Magento Community Magento Community
Magento Community
Magento Community
 
timste
Guru
 
Total Posts:  645
Joined:  2007-12-26
Leipzig
 

Hallo,

ich habe keinen Vergleich zu einem Import via CSV.

Wenn ich über die API gehe kann ich allerdings auch gleich Kategorien,Attribute,Bilder und andere Dinge in einem Rutsch zuweisen.
Je nachdem wieviele Informationen ich übergebe dauert das anlegen bzw. updaten eines Produktes zwischen 1-10 Sekunden.
Wobei die 10 Sekunden nur dann auftreten wenn ich Bilder mitgebe, hier ist dann die Größe des Bildes der entscheidende Faktor.

Grüße

 
Magento Community Magento Community
Magento Community
Magento Community
 
PHOENIX
Guru
 
Avatar
Total Posts:  549
Joined:  2007-12-19
Stuttgart, Germany
 

Beim CSV-/XML-Import kann man ebenfalls den Produkten Kategorien, Attribute und Bilder zuweisen. Bei einem schnellen Server dauert ein Produkt ca. 1-2 Sekunden.

 
Magento Community Magento Community
Magento Community
Magento Community
 
timste
Guru
 
Total Posts:  645
Joined:  2007-12-26
Leipzig
 

Den Ansatz habe ich nie verfolgt weil ich das ganze automatisiert laufen lassen will. Meine Daten kommen direkt aus der WaWi und werden dann nochmals aufbereitet und dann angelegt/aktualisiert.
Zum Beispiel Preise und neue Bilder werden hier sobald sie WaWi geändert auch automatisch in Magento geändert.

Grüße

 
Magento Community Magento Community
Magento Community
Magento Community
 
harrys-pcshop
Jr. Member
 
Total Posts:  28
Joined:  2008-09-16
 

Halllo

Darf man fragen mit was für einer Wawi du arbeitest und was du zum Import verwendest. Ich kämpfe mich durch die API und ich komme auf keine vernünfitge lösung. Ich verwende CAO-Faktura als WAWI.
lg
harry

 
Magento Community Magento Community
Magento Community
Magento Community
 
timste
Guru
 
Total Posts:  645
Joined:  2007-12-26
Leipzig
 

hallo harry,

ich arbeite mit ALEA.

Mit CAO ist es doch ganz einfach die API von MAGENTO anzuzapfen.
Was genau willst du machen?
Nenn mir doch mal den ersten Schritt den du gerne machen würdest?

Grüße

 
Magento Community Magento Community
Magento Community
Magento Community
 
harrys-pcshop
Jr. Member
 
Total Posts:  28
Joined:  2008-09-16
 

Hallo Danke für die schnelle antwort
ich würde gerne die Bestellungen importieren und Artikelpreise und Lagerstände aktualisieren.
wäre super nett wenn du mir ein paar ansätze schicken kannst denn ich bin am verzweifeln.
danke im voraus
mfg
Harry

 
Magento Community Magento Community
Magento Community
Magento Community
 
timste
Guru
 
Total Posts:  645
Joined:  2007-12-26
Leipzig
 

ich setz mich heute abend mal hin und versuche es mal niederzuschreiben

bis dahin

grüße

 
Magento Community Magento Community
Magento Community
Magento Community
 
harrys-pcshop
Jr. Member
 
Total Posts:  28
Joined:  2008-09-16
 

Ich dank dir
bis dann
lg
harry

 
Magento Community Magento Community
Magento Community
Magento Community
 
timste
Guru
 
Total Posts:  645
Joined:  2007-12-26
Leipzig
 

Also fangen wir mal an, nicht ganz der Reihe nach, aber es soll veranschaulichen wie einfach man über die API die vorhandene Artikelmenge updaten kann. Bei mehreren 1000 Artikeln kann das je nach Konfiguration des Servers schon mal ne Weile dauern wink

Also bei CAO ist in der Tabelle artikel das Feld MENGE_AKT mit dem aktuellen Lagerbestand. Man muss jetzt ein Array erzeugen das die Werte SKU und die Lagermenge enthält. Dieses Array ist die Grundlage für die folgende Funktion:

<?php

$proxy 
= new SoapClient('http://192.168.100.21/index.php/api/soap/?wsdl');
$sessionId $proxy->login('import''import');

/*
man braucht ein Array das mit folgenden Werten befüllt ist

$value['number'] = SKU des Produktes
$value['availableStock'] = Menge des Lagerbestandes


*/

foreach ($array as $key => $value{
    
    
// schauen ob artikel da ist
    
try {
        
echo $value['number'];
        
$productInfo $proxy->call($sessionId'product.info'$value['number']);
        throw new 
Exception();
    
}
    
catch (Exception $e{
        
echo $e->getMessage();
        
$errorMsg $e->getMessage();
    
}
    
    
if ($errorMsg<>'Product not exists.'{
        
        
        
if ($value['availableStock']>0{    # Artikel ist lieferbar!
            
            // Update stock info
            
try {
                $proxy
->call($sessionId'product_stock.update', array($value['number'], array('qty'=>$value['availableStock']'is_in_stock'=>1)));
                throw new 
Exception();
            
}
            
catch (Exception $e){
                
echo $e->getMessage();
            
}
            
        }
        
else {                                # Artikel nicht verfügbar
            
            // Update stock info
            
try {
                $proxy
->call($sessionId'product_stock.update', array($value['number'], array('qty'=>$value['availableStock']'is_in_stock'=>0)));
                throw new 
Exception();
            
}
            
catch (Exception $e){
                
echo $e->getMessage();
            
}
        }
    }
    
else {
        
// Kein Artikel zum Update vorhanden
    
}
}
?>

Hier geht man durch das Array, schaut nach ob der Artikel vorhanden ist. Wenn ja wird ein Update gemacht, wenn kein Artikel vorhanden ist wird nix gemacht.

WIe gesagt ein kleines Beispiel. Zum testen am besten laufen lassen, ich übernehme jedoch keine Garantie das irgendwas kaputt geht wink

Das gesamte Thema ist schon sehr komplex und kann nicht so auf die schnelle abgehandelt werden.

Das nächste Beispiel wird dann vielleicht der Export einer Bestellung nach CAO.

grüße

 
Magento Community Magento Community
Magento Community
Magento Community
 
harrys-pcshop
Jr. Member
 
Total Posts:  28
Joined:  2008-09-16
 

Vielen Dank für dein Script. Aber ich komme denk ich nicht klar damit ich hab im CAO eine Shop Update Funktion womit man OSC und XT Commerce Shops Updaten kann. Ich würde gerne diese Scripts so umbauen das sie mit Magento funktionieren. Das sind 2 PHP files einmal das cao_osc.php und einmal das cao_osc_functions.php im CAO stell ich das cao_osc.php als file ein. in der cao_osc.functions.php stehen die arrays drin die dann abgearbeitet werden.
cao_osc.php:

if ($_SERVER['REQUEST_METHOD']=='GET'
{
  
switch ($_GET['action']
  
{
     
case 'version':        // Ausgabe Scriptversion
     
       
SendXMLHeader ();
       
SendScriptVersion ();
       exit; 
     
     case 
'categories_export':
     
       
SendXMLHeader ();
       
SendCategories ();
       exit;
     
        
     case 
'products_export':
     
       
SendXMLHeader ();
       
SendProducts ();
       exit;
     
        
    
// End Case
  
}  // End Method POST
}
?>
cao_osc_functions.php:
function SendProducts ()
{
  
global $_GET;
  
  if (
defined('SET_TIME_LIMIT')) { tep_set_time_limit(0); }
        
  $schema 
'<?xml version="1.0" encoding="' CHARSET '"?>' "\n" .
            
'<PRODUCTS>' "\n";
  echo 
$schema;
        
  if (
DREI_PRODUKTBILDER == true)
  
{
    $sql 
"select products_id, products_quantity, products_model, products_image, products_image_medium, products_image_large, products_price, " .
           
"products_date_added, products_last_modified, products_date_available, products_weight, " .
           
"products_status, products_tax_class_id, manufacturers_id, products_ordered from " TABLE_PRODUCTS;        
  
}
    
else          
  
{     
    $sql 
"select products_id, products_quantity, products_model, products_image, products_price, " .
           
"products_date_added, products_last_modified, products_date_available, products_weight, " .
           
"products_status, products_tax_class_id, manufacturers_id, products_ordered from " TABLE_PRODUCTS;
  
}
         
  $from 
tep_db_prepare_input($_GET['products_from']);
  
$anz  tep_db_prepare_input($_GET['products_count']);
        
  if (isset(
$from)) 
  
{
    
if (!isset($anz)) { $anz=1000}
    $sql 
.= " limit " $from "," $anz;
  
}
                  
  $orders_query 
tep_db_query($sql);
  while (
$products tep_db_fetch_array($orders_query)) 
  
{
    $schema  
'<PRODUCT_INFO>' "\n" .
               
'<PRODUCT_DATA>' "\n" .
               
'<PRODUCT_ID>' $products['products_id''</PRODUCT_ID>' "\n" .
               
'<PRODUCT_QUANTITY>' $products['products_quantity''</PRODUCT_QUANTITY>' "\n" .
               
'<PRODUCT_MODEL>' htmlspecialchars($products['products_model']) . '</PRODUCT_MODEL>' "\n" .
               
'<PRODUCT_IMAGE>' htmlspecialchars($products['products_image']) . '</PRODUCT_IMAGE>' "\n";
          
    if (
DREI_PRODUKTBILDER == true)
    
{
      $schema 
.= '<PRODUCT_IMAGE_MED>' htmlspecialchars($products['products_image_medium']) . '</PRODUCT_IMAGE_MED>' "\n" .
                 
'<PRODUCT_IMAGE_LARGE>' htmlspecialchars($products['products_image_large']) . '</PRODUCT_IMAGE_LARGE>' "\n";
    
}
                     
    $schema 
.= '<PRODUCT_PRICE>' $products['products_price''</PRODUCT_PRICE>' "\n" .
               
'<PRODUCT_WEIGHT>' $products['products_weight''</PRODUCT_WEIGHT>' "\n" .
               
'<PRODUCT_STATUS>' $products['products_status''</PRODUCT_STATUS>' "\n" .
               
'<PRODUCT_TAX_CLASS_ID>' $products['products_tax_class_id''</PRODUCT_TAX_CLASS_ID>' "\n"  .
               
'<MANUFACTURERS_ID>' $products['manufacturers_id''</MANUFACTURERS_ID>' "\n" .
               
'<PRODUCT_DATE_ADDED>' $products['products_date_added''</PRODUCT_DATE_ADDED>' "\n" .
               
'<PRODUCT_LAST_MODIFIED>' $products['products_last_modified''</PRODUCT_LAST_MODIFIED>' "\n" .
               
'<PRODUCT_DATE_AVAILABLE>' $products['products_date_available''</PRODUCT_DATE_AVAILABLE>' "\n" .
               
'<PRODUCTS_ORDERED>' $products['products_ordered''</PRODUCTS_ORDERED>' "\n" ;
ein kleiner auszug aus den Dateien
Danke für deine Hilfe
lg
Harry
 
Magento Community Magento Community
Magento Community
Magento Community
 
timste
Guru
 
Total Posts:  645
Joined:  2007-12-26
Leipzig
 

Hallo,

ohne das ich mich jetzt mit OSC bzw XTC auskenne sieht mir das hier aber nach einem Erzeugen eines XML-Files das man in OSC/XTC importieren kann.
Das Beispiel von mir macht aber direkt ein UPDATE in Magento aus CAO heraus, also eine ganz andere Art wie ich rangehe.
Wie rufst du denn zum Beispiel den Export aus CAO bei dir auf?

Grüße

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top
Page 1 of 2