IN STOCK FILTER FOR Magento 2 Product collectionMagento 2.2 Rest Api creating same url-key for different product namesMagento 2: Get productHow to add filter to the collection of attributes in magento 2Magento 2 : setOrder not working in collectionmagento 2 more than 2/3 products but one stockHow the upsell products handled in view page?Magento 2 Filter Product Collection by Multiple AttributesHow to show out of stock product next due date in Magento 2.2.2?Magento 2 Get product collection filter by atributes does not give the exact matchHow to add filters(Filter Form ) in Grid( Custom Table Collection)?

Is this toilet slogan correct usage of the English language?

How can I write humor as character trait?

Which Article Helped Get Rid of Technobabble in RPGs?

Can I turn my anal-retentiveness into a career?

Does the reader need to like the PoV character?

Which was the first story featuring espers?

Giving feedback to someone without sounding prejudiced

Microchip documentation does not label CAN buss pins on micro controller pinout diagram

awk assign to multiple variables at once

How can ping know if my host is down

Is there a RAID 0 Equivalent for RAM?

How much of a Devil Fruit must be consumed to gain the power?

Why is it that I can sometimes guess the next note?

Why is the Sun approximated as a black body at ~ 5800 K?

What features enable the Su-25 Frogfoot to operate with such a wide variety of fuels?

Is there a nicer/politer/more positive alternative for "negates"?

Multiplicative persistence

Why does AES have exactly 10 rounds for a 128-bit key, 12 for 192 bits and 14 for a 256-bit key size?

I found an audio circuit and I built it just fine, but I find it a bit too quiet. How do I amplify the output so that it is a bit louder?

Why can't the Brexit deadlock in the UK parliament be solved with a plurality vote?

The IT department bottlenecks progress, how should I handle this?

Why do ¬, ∀ and ∃ have the same precedence?

What to do when eye contact makes your coworker uncomfortable?

How to draw a matrix with arrows in limited space



IN STOCK FILTER FOR Magento 2 Product collection


Magento 2.2 Rest Api creating same url-key for different product namesMagento 2: Get productHow to add filter to the collection of attributes in magento 2Magento 2 : setOrder not working in collectionmagento 2 more than 2/3 products but one stockHow the upsell products handled in view page?Magento 2 Filter Product Collection by Multiple AttributesHow to show out of stock product next due date in Magento 2.2.2?Magento 2 Get product collection filter by atributes does not give the exact matchHow to add filters(Filter Form ) in Grid( Custom Table Collection)?













0















i am trying to filter inStock product in Magento 2 Using




MagentoCatalogModelResourceModelProductCollectionFactory $collectionFactory,




by



$collection = $this->_collectionFactory->create();
$collection->addAttributeToSelect('*');
//$collection->addAttributeToFilter('rand()');
//$collection->addAttributeToFilter('flavor',$flavorId);
$collection->addCategoriesFilter(['in' => $searchCategory]);
$collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
$collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
$collection->getSelect()->orderRand();
$collection->setPageSize(3);
$collection->getSelect()->orderRand();
$collection->joinField(
'qty', 'csvp_cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'table.stock_id=2', 'left'
);
//$collection->joinField('stock_item', 'cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'qty=0');
return $collection;


but result is also showing out of stock products.
can any one suggest me how to get only instock products collection.










share|improve this question
















bumped to the homepage by Community yesterday


This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.



















    0















    i am trying to filter inStock product in Magento 2 Using




    MagentoCatalogModelResourceModelProductCollectionFactory $collectionFactory,




    by



    $collection = $this->_collectionFactory->create();
    $collection->addAttributeToSelect('*');
    //$collection->addAttributeToFilter('rand()');
    //$collection->addAttributeToFilter('flavor',$flavorId);
    $collection->addCategoriesFilter(['in' => $searchCategory]);
    $collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
    $collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
    $collection->getSelect()->orderRand();
    $collection->setPageSize(3);
    $collection->getSelect()->orderRand();
    $collection->joinField(
    'qty', 'csvp_cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'table.stock_id=2', 'left'
    );
    //$collection->joinField('stock_item', 'cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'qty=0');
    return $collection;


    but result is also showing out of stock products.
    can any one suggest me how to get only instock products collection.










    share|improve this question
















    bumped to the homepage by Community yesterday


    This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.

















      0












      0








      0








      i am trying to filter inStock product in Magento 2 Using




      MagentoCatalogModelResourceModelProductCollectionFactory $collectionFactory,




      by



      $collection = $this->_collectionFactory->create();
      $collection->addAttributeToSelect('*');
      //$collection->addAttributeToFilter('rand()');
      //$collection->addAttributeToFilter('flavor',$flavorId);
      $collection->addCategoriesFilter(['in' => $searchCategory]);
      $collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
      $collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
      $collection->getSelect()->orderRand();
      $collection->setPageSize(3);
      $collection->getSelect()->orderRand();
      $collection->joinField(
      'qty', 'csvp_cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'table.stock_id=2', 'left'
      );
      //$collection->joinField('stock_item', 'cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'qty=0');
      return $collection;


      but result is also showing out of stock products.
      can any one suggest me how to get only instock products collection.










      share|improve this question
















      i am trying to filter inStock product in Magento 2 Using




      MagentoCatalogModelResourceModelProductCollectionFactory $collectionFactory,




      by



      $collection = $this->_collectionFactory->create();
      $collection->addAttributeToSelect('*');
      //$collection->addAttributeToFilter('rand()');
      //$collection->addAttributeToFilter('flavor',$flavorId);
      $collection->addCategoriesFilter(['in' => $searchCategory]);
      $collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
      $collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
      $collection->getSelect()->orderRand();
      $collection->setPageSize(3);
      $collection->getSelect()->orderRand();
      $collection->joinField(
      'qty', 'csvp_cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'table.stock_id=2', 'left'
      );
      //$collection->joinField('stock_item', 'cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'qty=0');
      return $collection;


      but result is also showing out of stock products.
      can any one suggest me how to get only instock products collection.







      magento2.2.2






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 5 '18 at 6:09







      Vinit Kumar

















      asked Mar 1 '18 at 11:40









      Vinit KumarVinit Kumar

      567




      567





      bumped to the homepage by Community yesterday


      This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.







      bumped to the homepage by Community yesterday


      This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.






















          3 Answers
          3






          active

          oldest

          votes


















          0














          Please try this



          $collection = $this->_collectionFactory->create();
          $collection->addAttributeToSelect('*');
          $collection->addCategoriesFilter(['in' => $searchCategory]);
          $collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
          $collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
          $collection->getSelect()->orderRand();
          $collection->setPageSize(3);
          $collection->getSelect()->orderRand();
          $collection->joinField(
          'qty', 'csvp_cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'table.stock_id=2', 'left'
          );

          $collection->getSelect()->where('csvp_stock_status_index.stock_status = ?', 1);

          return $collection;





          share|improve this answer






























            0














            Try this,



            $collection = $this->_collectionFactory->create();
            $collection->addAttributeToSelect('*');
            //$collection->addAttributeToFilter('rand()');
            //$collection->addAttributeToFilter('flavor',$flavorId);
            $collection->addCategoriesFilter(['in' => $searchCategory]);
            $collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
            $collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
            $collection->getSelect()->orderRand();
            $collection->setPageSize(3);
            $collection->getSelect()->orderRand();

            $collection->joinField('stock_item', 'csvp_cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'qty=0');
            ->addAttributeToSelect('stock_status')
            ->addFieldToFilter('stock_status', ['eq' => 1])
            return $collection;





            share|improve this answer






























              0














              You can also try below code



              $pCollection = $this->getObjectManager()->create('MagentoCatalogModelResourceModelProductCollection');
              $pCollection->setStoreId($storeId);
              $pCollection->addAttributeToSelect('*');
              $pCollection->addFieldToFilter('visibility', array('neq' => MagentoCatalogModelProductVisibility::VISIBILITY_NOT_VISIBLE));
              $pCollection->addFieldToFilter('status', array('eq' => MagentoCatalogModelProductAttributeSourceStatus::STATUS_ENABLED));
              $pCollection->joinField(
              'stock_status', 'cataloginventory_stock_status', 'stock_status', 'product_id=entity_id', 'table.stock_id=1', 'left'
              )->addFieldToFilter('stock_status', array('eq' => MagentoCatalogInventoryModelStockStatus::STATUS_IN_STOCK));


              Thanks






              share|improve this answer






















                Your Answer








                StackExchange.ready(function()
                var channelOptions =
                tags: "".split(" "),
                id: "479"
                ;
                initTagRenderer("".split(" "), "".split(" "), channelOptions);

                StackExchange.using("externalEditor", function()
                // Have to fire editor after snippets, if snippets enabled
                if (StackExchange.settings.snippets.snippetsEnabled)
                StackExchange.using("snippets", function()
                createEditor();
                );

                else
                createEditor();

                );

                function createEditor()
                StackExchange.prepareEditor(
                heartbeatType: 'answer',
                autoActivateHeartbeat: false,
                convertImagesToLinks: false,
                noModals: true,
                showLowRepImageUploadWarning: true,
                reputationToPostImages: null,
                bindNavPrevention: true,
                postfix: "",
                imageUploader:
                brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                allowUrls: true
                ,
                onDemand: true,
                discardSelector: ".discard-answer"
                ,immediatelyShowMarkdownHelp:true
                );



                );













                draft saved

                draft discarded


















                StackExchange.ready(
                function ()
                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f215617%2fin-stock-filter-for-magento-2-product-collection%23new-answer', 'question_page');

                );

                Post as a guest















                Required, but never shown

























                3 Answers
                3






                active

                oldest

                votes








                3 Answers
                3






                active

                oldest

                votes









                active

                oldest

                votes






                active

                oldest

                votes









                0














                Please try this



                $collection = $this->_collectionFactory->create();
                $collection->addAttributeToSelect('*');
                $collection->addCategoriesFilter(['in' => $searchCategory]);
                $collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
                $collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
                $collection->getSelect()->orderRand();
                $collection->setPageSize(3);
                $collection->getSelect()->orderRand();
                $collection->joinField(
                'qty', 'csvp_cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'table.stock_id=2', 'left'
                );

                $collection->getSelect()->where('csvp_stock_status_index.stock_status = ?', 1);

                return $collection;





                share|improve this answer



























                  0














                  Please try this



                  $collection = $this->_collectionFactory->create();
                  $collection->addAttributeToSelect('*');
                  $collection->addCategoriesFilter(['in' => $searchCategory]);
                  $collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
                  $collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
                  $collection->getSelect()->orderRand();
                  $collection->setPageSize(3);
                  $collection->getSelect()->orderRand();
                  $collection->joinField(
                  'qty', 'csvp_cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'table.stock_id=2', 'left'
                  );

                  $collection->getSelect()->where('csvp_stock_status_index.stock_status = ?', 1);

                  return $collection;





                  share|improve this answer

























                    0












                    0








                    0







                    Please try this



                    $collection = $this->_collectionFactory->create();
                    $collection->addAttributeToSelect('*');
                    $collection->addCategoriesFilter(['in' => $searchCategory]);
                    $collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
                    $collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
                    $collection->getSelect()->orderRand();
                    $collection->setPageSize(3);
                    $collection->getSelect()->orderRand();
                    $collection->joinField(
                    'qty', 'csvp_cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'table.stock_id=2', 'left'
                    );

                    $collection->getSelect()->where('csvp_stock_status_index.stock_status = ?', 1);

                    return $collection;





                    share|improve this answer













                    Please try this



                    $collection = $this->_collectionFactory->create();
                    $collection->addAttributeToSelect('*');
                    $collection->addCategoriesFilter(['in' => $searchCategory]);
                    $collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
                    $collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
                    $collection->getSelect()->orderRand();
                    $collection->setPageSize(3);
                    $collection->getSelect()->orderRand();
                    $collection->joinField(
                    'qty', 'csvp_cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'table.stock_id=2', 'left'
                    );

                    $collection->getSelect()->where('csvp_stock_status_index.stock_status = ?', 1);

                    return $collection;






                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Mar 1 '18 at 11:52









                    Nalin SavaliyaNalin Savaliya

                    889314




                    889314























                        0














                        Try this,



                        $collection = $this->_collectionFactory->create();
                        $collection->addAttributeToSelect('*');
                        //$collection->addAttributeToFilter('rand()');
                        //$collection->addAttributeToFilter('flavor',$flavorId);
                        $collection->addCategoriesFilter(['in' => $searchCategory]);
                        $collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
                        $collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
                        $collection->getSelect()->orderRand();
                        $collection->setPageSize(3);
                        $collection->getSelect()->orderRand();

                        $collection->joinField('stock_item', 'csvp_cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'qty=0');
                        ->addAttributeToSelect('stock_status')
                        ->addFieldToFilter('stock_status', ['eq' => 1])
                        return $collection;





                        share|improve this answer



























                          0














                          Try this,



                          $collection = $this->_collectionFactory->create();
                          $collection->addAttributeToSelect('*');
                          //$collection->addAttributeToFilter('rand()');
                          //$collection->addAttributeToFilter('flavor',$flavorId);
                          $collection->addCategoriesFilter(['in' => $searchCategory]);
                          $collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
                          $collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
                          $collection->getSelect()->orderRand();
                          $collection->setPageSize(3);
                          $collection->getSelect()->orderRand();

                          $collection->joinField('stock_item', 'csvp_cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'qty=0');
                          ->addAttributeToSelect('stock_status')
                          ->addFieldToFilter('stock_status', ['eq' => 1])
                          return $collection;





                          share|improve this answer

























                            0












                            0








                            0







                            Try this,



                            $collection = $this->_collectionFactory->create();
                            $collection->addAttributeToSelect('*');
                            //$collection->addAttributeToFilter('rand()');
                            //$collection->addAttributeToFilter('flavor',$flavorId);
                            $collection->addCategoriesFilter(['in' => $searchCategory]);
                            $collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
                            $collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
                            $collection->getSelect()->orderRand();
                            $collection->setPageSize(3);
                            $collection->getSelect()->orderRand();

                            $collection->joinField('stock_item', 'csvp_cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'qty=0');
                            ->addAttributeToSelect('stock_status')
                            ->addFieldToFilter('stock_status', ['eq' => 1])
                            return $collection;





                            share|improve this answer













                            Try this,



                            $collection = $this->_collectionFactory->create();
                            $collection->addAttributeToSelect('*');
                            //$collection->addAttributeToFilter('rand()');
                            //$collection->addAttributeToFilter('flavor',$flavorId);
                            $collection->addCategoriesFilter(['in' => $searchCategory]);
                            $collection->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()]);
                            $collection->setVisibility($this->productVisibility->getVisibleInSiteIds());
                            $collection->getSelect()->orderRand();
                            $collection->setPageSize(3);
                            $collection->getSelect()->orderRand();

                            $collection->joinField('stock_item', 'csvp_cataloginventory_stock_item', 'qty', 'product_id=entity_id', 'qty=0');
                            ->addAttributeToSelect('stock_status')
                            ->addFieldToFilter('stock_status', ['eq' => 1])
                            return $collection;






                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Mar 1 '18 at 11:55









                            Jeeva ChezhiyanJeeva Chezhiyan

                            752624




                            752624





















                                0














                                You can also try below code



                                $pCollection = $this->getObjectManager()->create('MagentoCatalogModelResourceModelProductCollection');
                                $pCollection->setStoreId($storeId);
                                $pCollection->addAttributeToSelect('*');
                                $pCollection->addFieldToFilter('visibility', array('neq' => MagentoCatalogModelProductVisibility::VISIBILITY_NOT_VISIBLE));
                                $pCollection->addFieldToFilter('status', array('eq' => MagentoCatalogModelProductAttributeSourceStatus::STATUS_ENABLED));
                                $pCollection->joinField(
                                'stock_status', 'cataloginventory_stock_status', 'stock_status', 'product_id=entity_id', 'table.stock_id=1', 'left'
                                )->addFieldToFilter('stock_status', array('eq' => MagentoCatalogInventoryModelStockStatus::STATUS_IN_STOCK));


                                Thanks






                                share|improve this answer



























                                  0














                                  You can also try below code



                                  $pCollection = $this->getObjectManager()->create('MagentoCatalogModelResourceModelProductCollection');
                                  $pCollection->setStoreId($storeId);
                                  $pCollection->addAttributeToSelect('*');
                                  $pCollection->addFieldToFilter('visibility', array('neq' => MagentoCatalogModelProductVisibility::VISIBILITY_NOT_VISIBLE));
                                  $pCollection->addFieldToFilter('status', array('eq' => MagentoCatalogModelProductAttributeSourceStatus::STATUS_ENABLED));
                                  $pCollection->joinField(
                                  'stock_status', 'cataloginventory_stock_status', 'stock_status', 'product_id=entity_id', 'table.stock_id=1', 'left'
                                  )->addFieldToFilter('stock_status', array('eq' => MagentoCatalogInventoryModelStockStatus::STATUS_IN_STOCK));


                                  Thanks






                                  share|improve this answer

























                                    0












                                    0








                                    0







                                    You can also try below code



                                    $pCollection = $this->getObjectManager()->create('MagentoCatalogModelResourceModelProductCollection');
                                    $pCollection->setStoreId($storeId);
                                    $pCollection->addAttributeToSelect('*');
                                    $pCollection->addFieldToFilter('visibility', array('neq' => MagentoCatalogModelProductVisibility::VISIBILITY_NOT_VISIBLE));
                                    $pCollection->addFieldToFilter('status', array('eq' => MagentoCatalogModelProductAttributeSourceStatus::STATUS_ENABLED));
                                    $pCollection->joinField(
                                    'stock_status', 'cataloginventory_stock_status', 'stock_status', 'product_id=entity_id', 'table.stock_id=1', 'left'
                                    )->addFieldToFilter('stock_status', array('eq' => MagentoCatalogInventoryModelStockStatus::STATUS_IN_STOCK));


                                    Thanks






                                    share|improve this answer













                                    You can also try below code



                                    $pCollection = $this->getObjectManager()->create('MagentoCatalogModelResourceModelProductCollection');
                                    $pCollection->setStoreId($storeId);
                                    $pCollection->addAttributeToSelect('*');
                                    $pCollection->addFieldToFilter('visibility', array('neq' => MagentoCatalogModelProductVisibility::VISIBILITY_NOT_VISIBLE));
                                    $pCollection->addFieldToFilter('status', array('eq' => MagentoCatalogModelProductAttributeSourceStatus::STATUS_ENABLED));
                                    $pCollection->joinField(
                                    'stock_status', 'cataloginventory_stock_status', 'stock_status', 'product_id=entity_id', 'table.stock_id=1', 'left'
                                    )->addFieldToFilter('stock_status', array('eq' => MagentoCatalogInventoryModelStockStatus::STATUS_IN_STOCK));


                                    Thanks







                                    share|improve this answer












                                    share|improve this answer



                                    share|improve this answer










                                    answered Mar 1 '18 at 12:24









                                    Hardik PatelHardik Patel

                                    505314




                                    505314



























                                        draft saved

                                        draft discarded
















































                                        Thanks for contributing an answer to Magento Stack Exchange!


                                        • Please be sure to answer the question. Provide details and share your research!

                                        But avoid


                                        • Asking for help, clarification, or responding to other answers.

                                        • Making statements based on opinion; back them up with references or personal experience.

                                        To learn more, see our tips on writing great answers.




                                        draft saved


                                        draft discarded














                                        StackExchange.ready(
                                        function ()
                                        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f215617%2fin-stock-filter-for-magento-2-product-collection%23new-answer', 'question_page');

                                        );

                                        Post as a guest















                                        Required, but never shown





















































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown

































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown







                                        Popular posts from this blog

                                        Sum ergo cogito? 1 nng

                                        419 nièngy_Soadمي 19bal1.5o_g

                                        Queiggey Chernihivv 9NnOo i Zw X QqKk LpB