لا يعمل مرشح الأسهم
-
12-12-2019 - |
سؤال
أنا جعل Mage::getModel
اتصل لمحاولة الحصول على جميع المنتجات في فئة معينة موجودة في المخزون.
$stockIds = Mage::getModel('cataloginventory/stock_item')
->getCollection()
->addQtyFilter('<=',1)
->addFieldToFilter('is_in_stock', 1)
->getAllIds();
$_productCollection=Mage::getModel('catalog/category')
->load(51)
->getProductCollection()
->addIdFilter($stockIds)
->addAttributeToSelect('*')
->setPageSize(10)->setCurPage(1);
كل شيء يعمل بصرف النظر عن ->addFieldToFilter('is_in_stock', 1)
خط.بدونها تظهر جميع المنتجات في الفئة.مع ذلك ، انها تصفية بعض (عشوائي على ما يبدو) المنتجات بها ، ولكن لا يستند إلى ما إذا كان 'في الأوراق المالية'.لا تزال بعض العناصر غير المخزنة تظهر ، ولا تظهر بعض العناصر الموجودة في المخزون.
لقد تحققت من تمكين جميع المنتجات وأن جميع الكميات لا تقل عن 10.
كيف يمكنني الحصول على جميع المنتجات في فئة معينة التي هي في الأوراق المالية?
المحلول
أولا,$stockIds
لا تعود product ids
، فإنه يعطي معرف الأسهم ، أساسا جدول الأسهم المفتاح الأساسي.إذا كنت تريد filter product collection by saleable
ثم تحتاج إلى استخدام التعليمات البرمجية أدناه:
Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($_productCollection)
لا تنتمي إلى magento.stackexchange