Add category attribute in collection filter (search)





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







1















I've created an attribute for my categories (it's displayed on back-office and I can save values).



In sur php file Result.php for the research process, I want to add this attribute as a filter.



how to I do that ? In _getProductCollection I've added this line :



    $this->productCollection = $this->getListBlock()->getLoadedProductCollection();
$this->productCollection->getSelect()->join(array('cats' => 'catalog_category_product'), 'cats.product_id = e.entity_id');
$this->productCollection->getSelect()->group("cats.attribute");


But it shows non filtered result



Any thoughts ?










share|improve this question























  • If I remember correctly the catalog_category_product table is just a pivot table containing the ID of the product and category and position. If you want to add a group of your category attribute it will be a bit more complex if you're doing it like this because categories are EAV entities so you'll have to join a few tables to get your value. I don't fully grasp why you're grouping products by a category attribute. Should the attribute be on the product instead, or the grouping done on a collection of categories?

    – rain2o
    8 hours ago











  • Please see my other "old" post. magento.stackexchange.com/questions/266723/…

    – Morgan Tartreau
    8 hours ago











  • Maybe try using addCategoryIds on the collection first and then see if you can do a join. Part of the challenge here is the fact that products can belong to multiple categories so that could cause a complication in the joining and grouping.

    – rain2o
    8 hours ago











  • Already tried, but not a success

    – Morgan Tartreau
    8 hours ago











  • What file should I override to do that ?

    – Morgan Tartreau
    7 hours ago


















1















I've created an attribute for my categories (it's displayed on back-office and I can save values).



In sur php file Result.php for the research process, I want to add this attribute as a filter.



how to I do that ? In _getProductCollection I've added this line :



    $this->productCollection = $this->getListBlock()->getLoadedProductCollection();
$this->productCollection->getSelect()->join(array('cats' => 'catalog_category_product'), 'cats.product_id = e.entity_id');
$this->productCollection->getSelect()->group("cats.attribute");


But it shows non filtered result



Any thoughts ?










share|improve this question























  • If I remember correctly the catalog_category_product table is just a pivot table containing the ID of the product and category and position. If you want to add a group of your category attribute it will be a bit more complex if you're doing it like this because categories are EAV entities so you'll have to join a few tables to get your value. I don't fully grasp why you're grouping products by a category attribute. Should the attribute be on the product instead, or the grouping done on a collection of categories?

    – rain2o
    8 hours ago











  • Please see my other "old" post. magento.stackexchange.com/questions/266723/…

    – Morgan Tartreau
    8 hours ago











  • Maybe try using addCategoryIds on the collection first and then see if you can do a join. Part of the challenge here is the fact that products can belong to multiple categories so that could cause a complication in the joining and grouping.

    – rain2o
    8 hours ago











  • Already tried, but not a success

    – Morgan Tartreau
    8 hours ago











  • What file should I override to do that ?

    – Morgan Tartreau
    7 hours ago














1












1








1








I've created an attribute for my categories (it's displayed on back-office and I can save values).



In sur php file Result.php for the research process, I want to add this attribute as a filter.



how to I do that ? In _getProductCollection I've added this line :



    $this->productCollection = $this->getListBlock()->getLoadedProductCollection();
$this->productCollection->getSelect()->join(array('cats' => 'catalog_category_product'), 'cats.product_id = e.entity_id');
$this->productCollection->getSelect()->group("cats.attribute");


But it shows non filtered result



Any thoughts ?










share|improve this question














I've created an attribute for my categories (it's displayed on back-office and I can save values).



In sur php file Result.php for the research process, I want to add this attribute as a filter.



how to I do that ? In _getProductCollection I've added this line :



    $this->productCollection = $this->getListBlock()->getLoadedProductCollection();
$this->productCollection->getSelect()->join(array('cats' => 'catalog_category_product'), 'cats.product_id = e.entity_id');
$this->productCollection->getSelect()->group("cats.attribute");


But it shows non filtered result



Any thoughts ?







magento2 category attributes search catalogsearch






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 10 hours ago









Morgan TartreauMorgan Tartreau

39312




39312













  • If I remember correctly the catalog_category_product table is just a pivot table containing the ID of the product and category and position. If you want to add a group of your category attribute it will be a bit more complex if you're doing it like this because categories are EAV entities so you'll have to join a few tables to get your value. I don't fully grasp why you're grouping products by a category attribute. Should the attribute be on the product instead, or the grouping done on a collection of categories?

    – rain2o
    8 hours ago











  • Please see my other "old" post. magento.stackexchange.com/questions/266723/…

    – Morgan Tartreau
    8 hours ago











  • Maybe try using addCategoryIds on the collection first and then see if you can do a join. Part of the challenge here is the fact that products can belong to multiple categories so that could cause a complication in the joining and grouping.

    – rain2o
    8 hours ago











  • Already tried, but not a success

    – Morgan Tartreau
    8 hours ago











  • What file should I override to do that ?

    – Morgan Tartreau
    7 hours ago



















  • If I remember correctly the catalog_category_product table is just a pivot table containing the ID of the product and category and position. If you want to add a group of your category attribute it will be a bit more complex if you're doing it like this because categories are EAV entities so you'll have to join a few tables to get your value. I don't fully grasp why you're grouping products by a category attribute. Should the attribute be on the product instead, or the grouping done on a collection of categories?

    – rain2o
    8 hours ago











  • Please see my other "old" post. magento.stackexchange.com/questions/266723/…

    – Morgan Tartreau
    8 hours ago











  • Maybe try using addCategoryIds on the collection first and then see if you can do a join. Part of the challenge here is the fact that products can belong to multiple categories so that could cause a complication in the joining and grouping.

    – rain2o
    8 hours ago











  • Already tried, but not a success

    – Morgan Tartreau
    8 hours ago











  • What file should I override to do that ?

    – Morgan Tartreau
    7 hours ago

















If I remember correctly the catalog_category_product table is just a pivot table containing the ID of the product and category and position. If you want to add a group of your category attribute it will be a bit more complex if you're doing it like this because categories are EAV entities so you'll have to join a few tables to get your value. I don't fully grasp why you're grouping products by a category attribute. Should the attribute be on the product instead, or the grouping done on a collection of categories?

– rain2o
8 hours ago





If I remember correctly the catalog_category_product table is just a pivot table containing the ID of the product and category and position. If you want to add a group of your category attribute it will be a bit more complex if you're doing it like this because categories are EAV entities so you'll have to join a few tables to get your value. I don't fully grasp why you're grouping products by a category attribute. Should the attribute be on the product instead, or the grouping done on a collection of categories?

– rain2o
8 hours ago













Please see my other "old" post. magento.stackexchange.com/questions/266723/…

– Morgan Tartreau
8 hours ago





Please see my other "old" post. magento.stackexchange.com/questions/266723/…

– Morgan Tartreau
8 hours ago













Maybe try using addCategoryIds on the collection first and then see if you can do a join. Part of the challenge here is the fact that products can belong to multiple categories so that could cause a complication in the joining and grouping.

– rain2o
8 hours ago





Maybe try using addCategoryIds on the collection first and then see if you can do a join. Part of the challenge here is the fact that products can belong to multiple categories so that could cause a complication in the joining and grouping.

– rain2o
8 hours ago













Already tried, but not a success

– Morgan Tartreau
8 hours ago





Already tried, but not a success

– Morgan Tartreau
8 hours ago













What file should I override to do that ?

– Morgan Tartreau
7 hours ago





What file should I override to do that ?

– Morgan Tartreau
7 hours ago










0






active

oldest

votes












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%2f268780%2fadd-category-attribute-in-collection-filter-search%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















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%2f268780%2fadd-category-attribute-in-collection-filter-search%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

Alcázar de San Juan

Griza ansero

Heinkel He 51