Magento Stock import automatisch
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
- Tags:
- magento 23
3 Antworten
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);
?>
von leibnitz Heavy User vor 12 Monaten
Wow, cool. Funktioniert einwandfrei, danke!
Gruß Leibnitz
von SensusMedia Newbie vor 12 Monaten
Nichts zu danken!
Antwort schreiben
Um eine Antwort schreiben zu können, sollest du dich zuvor anmelden.






