Magento - foreach einfachen Produktshow -Namen, SKU und Aktienmenge?
Frage
Magento - foreach einfachen Produktshow -Namen, SKU und Aktienmenge?
Hallo, ich versuche Folgendes zu erreichen. Ich möchte ein einfaches PHP
Und Pref auch für konfigurierbare Produkte (gleich, aber dann summiert)
Ich bin gekommen, um viele gute Importskripte zu erhalten, aber kein kleines Sript, um den aktuellen Aktienstatus tatsächlich anzuzeigen. Das Problem ist, dass wir einen Mitarbeiter haben, der nur Datenprofile versteht
https://stackoverflow.com/questions/8533426/daily-inventory-update-through-remote-ftp-file
Frage: Irgendwelche Ideen, wie ich ein kleines Skript erstellen kann, um alle aktuellen Aktienebenen pro Produkt anzuzeigen?
Lösung 2
Wir benutzen das
<?php
// define('MAGENTO_ROOT', getcwd());
define('MAGENTO_ROOT', dirname(dirname(__FILE__)));
$mageFilename = MAGENTO_ROOT . '/app/Mage.php';
require_once $mageFilename;
// umask(0);
ini_set('display_errors', 1);
/* Store or website code */
$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : '';
/* Run store or run website */
$mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';
Mage::app($mageRunCode,$mageRunType);
Mage::setIsDeveloperMode(true);
$data = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('name')
->addAttributeToSelect('type_id')
->addAttributeToSelect('sku')
->addAttributeToSelect('price')
->addAttributeToSelect('stock_status')
->addFilter('type_id', 'simple')
->addStoreFilter(Mage::app()->getStore()->getId())
->addAttributeToSort('name', 'ASC');
// ->addFieldToFilter('store_id', Mage::app()->getStore()->getId())
header('Content-type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename=stockstatus.xls");
// echo "val1\tval2\tval3";
// echo "<html><body>";
// echo "Name\tsku\tis_in_stock\tqty". "\r\n";
echo "sku\tis_in_stock\tqty\t\ttmp_mainprod\ttmp_size". "\r\n";
foreach($data as $product) {
$stock = (int)Mage::getModel('cataloginventory/stock_item')->loadByProduct($product)->getQty();
$tmp_stock = $product->isAvailable() ? 1 : 0;
echo $product->getSku() . "\t" .
$tmp_stock . "\t" .
$stock . "\t\t" .
substr($product->getSku(), -2) . "\t" .
substr($product->getSku(), 0, 6) . "\r\n";
// $product->getStatus() . "\t" .
// $product->getName() . "\t" .
}
exit;
Andere Tipps
Dies sollte funktionieren, um schnell alles zu schnappen, was Sie wollen. Es kann einen besseren Weg geben, es zu tun.
<?php
// Load Magento
require_once '../app/Mage.php';
umask(0);
Mage::app('default');
//get the collection filter the simple products & join the cataloginventory/stock_item table
$collection = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('sku')->addAttributeToFilter('type_id', 'simple')->joinField(
'qty',
'cataloginventory/stock_item',
'qty',
'product_id=entity_id',
'{{table}}.stock_id=1',
'left'
) ;
?>
<html>
<head></head>
<body>
<table>
<?php
foreach ($collection as $product) {
echo "<tr><td>".$product->getSku()."</td><td> ".(int)$product->getQty()."</td></tr>";
};
?>
</table>
</body></html>