Du hast eine Frage? Stell sie der t3n-Community!

? Beispielfragen

Um selbst eine Frage online zu stellen, melde dich bitte an.

Zur Anmeldung

Magento Stock import automatisch

4 Punkte

von leibnitz  Heavy User  vor 12 Monaten

Hallo Leute,

ich suche gerade nach informationen wie ich automatisch in Magento das Import Product Stocks Profil ausführen kann.

Kann mir jemand sagen wie ich das machen kann?
Die Datei liegt bereit ich müsste nur wissen, wie ich den Import automatisch anstoßen kann.

Gruß Leibnitz

Nachträglich bearbeitet am 06.06.12 09:41

3 Antworten

2 Punkte

von SensusMedia  Newbie  vor 12 Monaten

Hi Leibnitz,

am besten erstellst du im Root von deinem Magento Shop eine PHP Datei z.B. update_stock.php und kopierst angehängten Code in die PHP Datei.

*Wichtig: Pfad zur Datei anpassen.*

Wenn du die Datei dann via Browser oder Cron aufrufst wird der Lagerbestand aktualisiert. Geht mit dieser Lösung auch recht fix.

Gruß Steffen Bauer

Nachträglich bearbeitet am 06.06.12 08:06

Code

<?
 define('MAGENTO', realpath(dirname(__FILE__)));
 require_once MAGENTO . '/app/Mage.php';
 umask(0);
 Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
 $count = 0;
 $file = fopen(MAGENTO . '/var/import/Datei.csv', 'r');
 while (($line = fgetcsv($file)) !== FALSE) {
 if ($count == 0) {
 foreach ($line as $key=>$value) {
 $cols[$value] = $key;
 }
 }
 $count++;
 if ($count == 1) continue;
 #Convert the lines to cols
 if ($count > 0) {
 foreach($cols as $col=>$value) {
 unset(${$col});
 ${$col} = $line[$value];
 }
 }
 // Check if SKU exists
 $product = Mage::getModel('catalog/product')->loadByAttribute('sku',$sku);
 if ( $product ) {
 $productId = $product->getId();
 $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($productId);
 $stockItemId = $stockItem->getId();
 $stock = array();
 if (!$stockItemId) {
 $stockItem->setData('product_id', $product->getId());
 $stockItem->setData('stock_id', 1);
 } else {
 $stock = $stockItem->getData();
 }
 foreach($cols as $col=>$value) {
 $stock[$col] = $line[$value];
 }
 foreach($stock as $field => $value) {
 $stockItem->setData($field, $value?$value:0);
 }
 $stockItem->save();
 unset($stockItem);
 unset($product);
 }
 echo "<br />Artikel $sku wurde geupdated.";
 }
 fclose($file);
?>

0 Punkte

von leibnitz  Heavy User  vor 12 Monaten

Wow, cool. Funktioniert einwandfrei, danke!

Gruß Leibnitz

0 Punkte

von SensusMedia  Newbie  vor 12 Monaten

Nichts zu danken!

Antwort schreiben

Um eine Antwort schreiben zu können, sollest du dich zuvor anmelden.

Zur Anmeldung

Kennst Du schon unser t3n Magazin?

t3n 32 jetzt kostenfrei probelesen! Alle Inhalte des t3n Magazins Diesen Hinweis verbergen