How to Get Product Category IDs Without Loading the Whole Product












3















By default, you can load product category IDs using this:



$product = Mage::getModel('catalog/product')->load($_productId);
$category_ids = $product->getCategoryIds();


But how can we load the category IDs without loading the whole product model? Note that getCategoryIds() is a function of product model not data.










share|improve this question





























    3















    By default, you can load product category IDs using this:



    $product = Mage::getModel('catalog/product')->load($_productId);
    $category_ids = $product->getCategoryIds();


    But how can we load the category IDs without loading the whole product model? Note that getCategoryIds() is a function of product model not data.










    share|improve this question



























      3












      3








      3








      By default, you can load product category IDs using this:



      $product = Mage::getModel('catalog/product')->load($_productId);
      $category_ids = $product->getCategoryIds();


      But how can we load the category IDs without loading the whole product model? Note that getCategoryIds() is a function of product model not data.










      share|improve this question
















      By default, you can load product category IDs using this:



      $product = Mage::getModel('catalog/product')->load($_productId);
      $category_ids = $product->getCategoryIds();


      But how can we load the category IDs without loading the whole product model? Note that getCategoryIds() is a function of product model not data.







      product category attributes model magento-1






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 22 '16 at 22:55









      Fabian Schmengler

      54.2k20129340




      54.2k20129340










      asked Feb 16 '15 at 11:24









      user1240207user1240207

      76421031




      76421031






















          4 Answers
          4






          active

          oldest

          votes


















          9














          You could do something like this:



          $product = Mage::getModel('catalog/product');
          $product->setId($_productId);
          $categoryIds = $product->getResource()->getCategoryIds($product);





          share|improve this answer































            1














            relation between product and category manage it in catalog_category_product



            you can use this sql query



            select cc.* from catalog_category_entity cc
            join catalog_category_product cp on cc.entity_id = cp.category_id
            where cp.product_id = {{your product id}};


            see Josep's answer here






            share|improve this answer

































              1














              Just mentioning it here since this would be possible too (because getCategoryIds actually does need the product's Id (pulls it from $product->getId()) from the whole submitted model only):



              $obj = new Varien_Object();
              $cats = Mage::getResourceSingleton('catalog/product')->getCategoryIds($obj->setId($productId));


              For the record, that's the getCategoryIds method from Mage_Catalog_Model_Resource_Product:



                  /**
              * Retrieve product category identifiers
              *
              * @param Mage_Catalog_Model_Product $product
              * @return array
              */
              public function getCategoryIds($product)
              {
              $adapter = $this->_getReadAdapter();

              $select = $adapter->select()
              ->from($this->_productCategoryTable, 'category_id')
              ->where('product_id = ?', (int)$product->getId());

              return $adapter->fetchCol($select);
              }





              share|improve this answer































                0














                $objectManager = MagentoFrameworkAppObjectManager::getInstance();
                $product = $objectManager->get('MagentoFrameworkRegistry')->registry('current_product');//get current product
                $categories = $product->getCategoryIds(); /*will return category ids array*/





                share|improve this answer








                New contributor




                swapnil Nandanwar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.




















                  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%2f56301%2fhow-to-get-product-category-ids-without-loading-the-whole-product%23new-answer', 'question_page');
                  }
                  );

                  Post as a guest















                  Required, but never shown

























                  4 Answers
                  4






                  active

                  oldest

                  votes








                  4 Answers
                  4






                  active

                  oldest

                  votes









                  active

                  oldest

                  votes






                  active

                  oldest

                  votes









                  9














                  You could do something like this:



                  $product = Mage::getModel('catalog/product');
                  $product->setId($_productId);
                  $categoryIds = $product->getResource()->getCategoryIds($product);





                  share|improve this answer




























                    9














                    You could do something like this:



                    $product = Mage::getModel('catalog/product');
                    $product->setId($_productId);
                    $categoryIds = $product->getResource()->getCategoryIds($product);





                    share|improve this answer


























                      9












                      9








                      9







                      You could do something like this:



                      $product = Mage::getModel('catalog/product');
                      $product->setId($_productId);
                      $categoryIds = $product->getResource()->getCategoryIds($product);





                      share|improve this answer













                      You could do something like this:



                      $product = Mage::getModel('catalog/product');
                      $product->setId($_productId);
                      $categoryIds = $product->getResource()->getCategoryIds($product);






                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      answered Feb 16 '15 at 11:46









                      fmrngfmrng

                      2,7131216




                      2,7131216

























                          1














                          relation between product and category manage it in catalog_category_product



                          you can use this sql query



                          select cc.* from catalog_category_entity cc
                          join catalog_category_product cp on cc.entity_id = cp.category_id
                          where cp.product_id = {{your product id}};


                          see Josep's answer here






                          share|improve this answer






























                            1














                            relation between product and category manage it in catalog_category_product



                            you can use this sql query



                            select cc.* from catalog_category_entity cc
                            join catalog_category_product cp on cc.entity_id = cp.category_id
                            where cp.product_id = {{your product id}};


                            see Josep's answer here






                            share|improve this answer




























                              1












                              1








                              1







                              relation between product and category manage it in catalog_category_product



                              you can use this sql query



                              select cc.* from catalog_category_entity cc
                              join catalog_category_product cp on cc.entity_id = cp.category_id
                              where cp.product_id = {{your product id}};


                              see Josep's answer here






                              share|improve this answer















                              relation between product and category manage it in catalog_category_product



                              you can use this sql query



                              select cc.* from catalog_category_entity cc
                              join catalog_category_product cp on cc.entity_id = cp.category_id
                              where cp.product_id = {{your product id}};


                              see Josep's answer here







                              share|improve this answer














                              share|improve this answer



                              share|improve this answer








                              edited May 23 '17 at 12:37









                              Community

                              1




                              1










                              answered Feb 16 '15 at 11:39









                              liyakatliyakat

                              3,58061933




                              3,58061933























                                  1














                                  Just mentioning it here since this would be possible too (because getCategoryIds actually does need the product's Id (pulls it from $product->getId()) from the whole submitted model only):



                                  $obj = new Varien_Object();
                                  $cats = Mage::getResourceSingleton('catalog/product')->getCategoryIds($obj->setId($productId));


                                  For the record, that's the getCategoryIds method from Mage_Catalog_Model_Resource_Product:



                                      /**
                                  * Retrieve product category identifiers
                                  *
                                  * @param Mage_Catalog_Model_Product $product
                                  * @return array
                                  */
                                  public function getCategoryIds($product)
                                  {
                                  $adapter = $this->_getReadAdapter();

                                  $select = $adapter->select()
                                  ->from($this->_productCategoryTable, 'category_id')
                                  ->where('product_id = ?', (int)$product->getId());

                                  return $adapter->fetchCol($select);
                                  }





                                  share|improve this answer




























                                    1














                                    Just mentioning it here since this would be possible too (because getCategoryIds actually does need the product's Id (pulls it from $product->getId()) from the whole submitted model only):



                                    $obj = new Varien_Object();
                                    $cats = Mage::getResourceSingleton('catalog/product')->getCategoryIds($obj->setId($productId));


                                    For the record, that's the getCategoryIds method from Mage_Catalog_Model_Resource_Product:



                                        /**
                                    * Retrieve product category identifiers
                                    *
                                    * @param Mage_Catalog_Model_Product $product
                                    * @return array
                                    */
                                    public function getCategoryIds($product)
                                    {
                                    $adapter = $this->_getReadAdapter();

                                    $select = $adapter->select()
                                    ->from($this->_productCategoryTable, 'category_id')
                                    ->where('product_id = ?', (int)$product->getId());

                                    return $adapter->fetchCol($select);
                                    }





                                    share|improve this answer


























                                      1












                                      1








                                      1







                                      Just mentioning it here since this would be possible too (because getCategoryIds actually does need the product's Id (pulls it from $product->getId()) from the whole submitted model only):



                                      $obj = new Varien_Object();
                                      $cats = Mage::getResourceSingleton('catalog/product')->getCategoryIds($obj->setId($productId));


                                      For the record, that's the getCategoryIds method from Mage_Catalog_Model_Resource_Product:



                                          /**
                                      * Retrieve product category identifiers
                                      *
                                      * @param Mage_Catalog_Model_Product $product
                                      * @return array
                                      */
                                      public function getCategoryIds($product)
                                      {
                                      $adapter = $this->_getReadAdapter();

                                      $select = $adapter->select()
                                      ->from($this->_productCategoryTable, 'category_id')
                                      ->where('product_id = ?', (int)$product->getId());

                                      return $adapter->fetchCol($select);
                                      }





                                      share|improve this answer













                                      Just mentioning it here since this would be possible too (because getCategoryIds actually does need the product's Id (pulls it from $product->getId()) from the whole submitted model only):



                                      $obj = new Varien_Object();
                                      $cats = Mage::getResourceSingleton('catalog/product')->getCategoryIds($obj->setId($productId));


                                      For the record, that's the getCategoryIds method from Mage_Catalog_Model_Resource_Product:



                                          /**
                                      * Retrieve product category identifiers
                                      *
                                      * @param Mage_Catalog_Model_Product $product
                                      * @return array
                                      */
                                      public function getCategoryIds($product)
                                      {
                                      $adapter = $this->_getReadAdapter();

                                      $select = $adapter->select()
                                      ->from($this->_productCategoryTable, 'category_id')
                                      ->where('product_id = ?', (int)$product->getId());

                                      return $adapter->fetchCol($select);
                                      }






                                      share|improve this answer












                                      share|improve this answer



                                      share|improve this answer










                                      answered Jan 24 '18 at 1:28









                                      Christoph FarnleitnerChristoph Farnleitner

                                      1,658517




                                      1,658517























                                          0














                                          $objectManager = MagentoFrameworkAppObjectManager::getInstance();
                                          $product = $objectManager->get('MagentoFrameworkRegistry')->registry('current_product');//get current product
                                          $categories = $product->getCategoryIds(); /*will return category ids array*/





                                          share|improve this answer








                                          New contributor




                                          swapnil Nandanwar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                          Check out our Code of Conduct.

























                                            0














                                            $objectManager = MagentoFrameworkAppObjectManager::getInstance();
                                            $product = $objectManager->get('MagentoFrameworkRegistry')->registry('current_product');//get current product
                                            $categories = $product->getCategoryIds(); /*will return category ids array*/





                                            share|improve this answer








                                            New contributor




                                            swapnil Nandanwar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                            Check out our Code of Conduct.























                                              0












                                              0








                                              0







                                              $objectManager = MagentoFrameworkAppObjectManager::getInstance();
                                              $product = $objectManager->get('MagentoFrameworkRegistry')->registry('current_product');//get current product
                                              $categories = $product->getCategoryIds(); /*will return category ids array*/





                                              share|improve this answer








                                              New contributor




                                              swapnil Nandanwar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                              Check out our Code of Conduct.










                                              $objectManager = MagentoFrameworkAppObjectManager::getInstance();
                                              $product = $objectManager->get('MagentoFrameworkRegistry')->registry('current_product');//get current product
                                              $categories = $product->getCategoryIds(); /*will return category ids array*/






                                              share|improve this answer








                                              New contributor




                                              swapnil Nandanwar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                              Check out our Code of Conduct.









                                              share|improve this answer



                                              share|improve this answer






                                              New contributor




                                              swapnil Nandanwar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                              Check out our Code of Conduct.









                                              answered 10 mins ago









                                              swapnil Nandanwarswapnil Nandanwar

                                              1




                                              1




                                              New contributor




                                              swapnil Nandanwar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                              Check out our Code of Conduct.





                                              New contributor





                                              swapnil Nandanwar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                              Check out our Code of Conduct.






                                              swapnil Nandanwar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                              Check out our Code of Conduct.






























                                                  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%2f56301%2fhow-to-get-product-category-ids-without-loading-the-whole-product%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

                                                  Polycentropodidae

                                                  Magento 2 Error message: Invalid state change requested

                                                  Paulmy