ম্যাজেন্টোতে পণ্য স্টক পরিমাণ পান


12

আইটেমটির জন্য আমার পণ্য স্টক পরিমাণ পাওয়া দরকার, এটি কীভাবে পাওয়া যায়

$products = Mage::getModel('catalog/product')->getCollection();
$products->addAttributeToSelect(array('name', 'thumbnail', 'weight' ,'price','description'));

foreach ($products as $product) {
    $p['products'][] = array(
        'id'        => $product->getId(),
        'sku'       => $product->getSku(),
        'name'      => $product->getName(),
        'description'   => $product->getDescription(),
        'weight'      => $product->getWeight(),
        'created at'    => $product->getCreatedAt(),
        'pirce'     => Mage::helper('core')->currency($product->getPrice(), true, false), //." ".$currencyCode,
    );
}

উত্তর:


10

আপনাকে কিটিটি পেতে টেবিলে যোগ দিতে হবে।

নীচের কোডটি দেখুন:

$products = Mage::getModel('catalog/product')
    ->getCollection()
    //->addAttributeToSelect('*')
    ->addAttributeToSelect(array('name', 'thumbnail', 'weight' ,'price','description'))
    ->joinField(
        'qty',
        'cataloginventory/stock_item',
        'qty',
        'product_id=entity_id',
        '{{table}}.stock_id=1',
        'left'
    );

foreach ($products as $product) {
    $p['products'][] = array(
        'id'            => $product->getId(),
        'sku'           => $product->getSku(),
        'name'          => $product->getName(),
        'description'   => $product->getDescription(),
        'weight'        => $product->getWeight(),
        'created at'    => $product->getCreatedAt(),
        'pirce'         => Mage::helper('core')->currency($product->getPrice(), true, false), //." ".$currencyCode,
        //get qty
        'qty'           => $product->getQty(),
    );
}

এখানে কীভাবে তৈরি করা বিশিষ্ট মানটি পাওয়া যায় উদাহরণস্বরূপ আমি কীভাবে সেই মানটি আনব সে জন্য একটি বৈশিষ্ট্যযুক্ত আকার তৈরি করেছি

আপডেট (যদিও আপনার অন্য কোয়েস্টের কাছে জিজ্ঞাসা করা উচিত, তবে আমি আপনার জন্য এখানে উত্তর দেব))

কাস্টম বৈশিষ্ট্য পেতে আপনাকে ->addAttributeToSelectবিভাগে অ্যাট্রিবিউট যুক্ত করতে হবে ।

এখনও কাজ করে না?

আপনার কোনও পণ্য মডেল লোড করার দরকার হতে পারে যেমন কখনও কখনও আমি অভিজ্ঞ হয়েছি যে আপনি যখন কোনও সংগ্রহের বাইরে এনে ফেলেন তখন সমস্ত কাস্টম বৈশিষ্ট্য সংযুক্ত থাকে না (আমার ধারণা পারফরম্যান্সের কারণে)। কিছুটা এইরকম:

$_product = Mage::getModel('catalog/product')->load($product->getId());
$size = $_product->getSize();  

এখানে কীভাবে তৈরি করা গুণাবলীর মান পাবেন তা উদাহরণস্বরূপ আমি একটি বৈশিষ্ট্যযুক্ত আকার তৈরি করেছি যাতে সেই মানটি কীভাবে আনতে হয়
vellai durai

চেষ্টা করুন $product->getSize()বা$product->getData('size')
আদর্শ খত্রি

এটির প্রত্যাবর্তন কেবল নাল মানগুলি
ভেল্লাই দুরাই

আপনি কি নিজের কাস্টম বৈশিষ্ট্যটি এতে যুক্ত করেছেন ->addAttributeToSelect? আপনাকে কী নির্বাচন করতে হবে তা বলতে হবে। অন্যথায় কেবল ->addAttributeToSelect(*)পরিবর্তে ব্যবহার করুন। এটি পণ্যের সাথে সম্পর্কিত সমস্ত কিছুই নির্বাচন করবে। যদি এটি কাজ না করে তবে আমার আপডেট হওয়া উত্তরটি শীঘ্রই পরীক্ষা করে দেখুন।
আদর্শ খাত্রি

হ্যাঁ আমি যোগ করেছি
ভেল্লাই দুরাই

19

এটা আমার জন্য কাজ করছে।

$products = Mage::getModel('catalog/product')->getCollection();
foreach ($products as $_product) {
    $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product);
    echo $stock->getQty();
    echo $stock->getMinQty();
    echo $stock->getMinSaleQty();
}

6

পণ্য সংগ্রহে স্টক তথ্য যুক্ত করা একটি একক লাইনের সাহায্যে করা যেতে পারে:

/* Mage_Catalog_Model_Resource_Product_Collection */
$products->setFlag('require_stock_items', true);

এই পতাকাটি catalog_product_collection_load_afterপর্যবেক্ষক হিসাবে ব্যবহৃত হয় :

/**
 * Add information about producs stock status to collection
 * Used in for product collection after load
 *
 * @param   Varien_Event_Observer $observer
 * @return  Mage_CatalogInventory_Model_Observer
 */
public function addStockStatusToCollection($observer)
{
    $productCollection = $observer->getEvent()->getCollection();
    if ($productCollection->hasFlag('require_stock_items')) {
        Mage::getModel('cataloginventory/stock')->addItemsToProducts($productCollection);
    } else {
        Mage::getModel('cataloginventory/stock_status')->addStockStatusToProducts($productCollection);
    }
    return $this;
}

যদি এই পতাকাটি সেট না করা $product->getStockItem()->getData()থাকে তবে কেবল is_in_stockসেট করা আছে। পতাকার সাহায্যে আপনি সংগ্রহের প্রতিটি পণ্যের জন্য পরিমাণ, ব্যাকর্ডার, ... পেতে পারেন

foreach ($products as $product) {
    echo $product->getStockItem()->getQty();
}

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.