Magento 2 product custom attribute source_model outerset attribute not showing in product collection and not...

Multi tool use
I am creating a custom product attribute in Magento 2 by custom module InstallData.php code following
<?php
namespace AwaBrand\Setup;
use MagentoEavSetupEavSetupFactory;
use MagentoFrameworkSetupInstallDataInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class InstallData implements InstallDataInterface
{
/**
* EAV setup factory
*
* @var MagentoEavSetupEavSetupFactory
*/
private $eavSetupFactory;
/**
* Constructor
*
* @param EavSetupFactory $eavSetupFactory
*/
public function __construct(
EavSetupFactory $eavSetupFactory
) {
$this->eavSetupFactory = $eavSetupFactory;
}
/**
* {@inheritdoc}
*/
public function install(
ModuleDataSetupInterface $setup,
ModuleContextInterface $context
) {
$setup->startSetup();
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$eavSetup->addAttribute(
MagentoCatalogModelProduct::ENTITY,
'awa_brand',
[
'type' => 'int',
'backend' => '',
'frontend' => '',
'label' => 'Attribute Select',
'input' => 'select',
'class' => '',
'source' => 'AwaBrandModelConfigSourceOptions',
'global' => MagentoEavModelEntityAttributeScopedAttributeInterface::SCOPE_STORE,
'visible' => true,
'required' => true,
'user_defined' => false,
'default' => '',
'searchable' => false,
'filterable' => false,
'comparable' => false,
'visible_on_front' => false,
'used_in_product_listing' => true,
'unique' => false,
'apply_to' => ''
]
);
$setup->endSetup();
}
}
and source Module is bellow
<?php
namespace AwaBrandModelConfigSource;
class Options extends MagentoEavModelEntityAttributeSourceAbstractSource
{
/**
* to option array
*
* @return array
*/
public function getAllOptions()
{
$_objManager = MagentoFrameworkAppObjectManager::getInstance();
$brandData = $_objManager->create('AwaBrandModelBrand')->getCollection();
$options = array();
$options =[
'value' => '',
'label' => __('-- Please Select --')
];
foreach($brandData as $_brand){
$options = [
'value' => $_brand->getBrandId(),
'label' => __($_brand->getTitle())
];
}
return $options;
}
public function toOptionArray()
{
$_objManager = MagentoFrameworkAppObjectManager::getInstance();
$brandData = $_objManager->create('AwaBrandModelBrand')->getCollection();
$options = array();
$options =[
'value' => '',
'label' => __('-- Please Select --')
];
foreach($brandData as $_brand){
$options = [
'value' => $_brand->getBrandId(),
'label' => __($_brand->getTitle())
];
}
return $options;
}
}
This attribute created successfull
When I try to get product collection by this attribute its not working
and this attribute not showing product collection
MY get product collection code following
<?php
$_product = $block->getProduct();
$objectManager = MagentoFrameworkAppObjectManager::getInstance();
$productCollection = $objectManager->get('MagentoCatalogModelResourceModelProductCollectionFactory');
$collection = $productCollection->create()
->addAttributeToFilter('awa_brand',array('eq' => $_product->getAwaBrand()))
->setPageSize(3);
foreach($collection as $product):
echo '<pre/>'; print_r($product->getData());exit;
endforeach;
?>
magento2 product-collection custom-attributes
New contributor
prakash saran is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
I am creating a custom product attribute in Magento 2 by custom module InstallData.php code following
<?php
namespace AwaBrand\Setup;
use MagentoEavSetupEavSetupFactory;
use MagentoFrameworkSetupInstallDataInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class InstallData implements InstallDataInterface
{
/**
* EAV setup factory
*
* @var MagentoEavSetupEavSetupFactory
*/
private $eavSetupFactory;
/**
* Constructor
*
* @param EavSetupFactory $eavSetupFactory
*/
public function __construct(
EavSetupFactory $eavSetupFactory
) {
$this->eavSetupFactory = $eavSetupFactory;
}
/**
* {@inheritdoc}
*/
public function install(
ModuleDataSetupInterface $setup,
ModuleContextInterface $context
) {
$setup->startSetup();
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$eavSetup->addAttribute(
MagentoCatalogModelProduct::ENTITY,
'awa_brand',
[
'type' => 'int',
'backend' => '',
'frontend' => '',
'label' => 'Attribute Select',
'input' => 'select',
'class' => '',
'source' => 'AwaBrandModelConfigSourceOptions',
'global' => MagentoEavModelEntityAttributeScopedAttributeInterface::SCOPE_STORE,
'visible' => true,
'required' => true,
'user_defined' => false,
'default' => '',
'searchable' => false,
'filterable' => false,
'comparable' => false,
'visible_on_front' => false,
'used_in_product_listing' => true,
'unique' => false,
'apply_to' => ''
]
);
$setup->endSetup();
}
}
and source Module is bellow
<?php
namespace AwaBrandModelConfigSource;
class Options extends MagentoEavModelEntityAttributeSourceAbstractSource
{
/**
* to option array
*
* @return array
*/
public function getAllOptions()
{
$_objManager = MagentoFrameworkAppObjectManager::getInstance();
$brandData = $_objManager->create('AwaBrandModelBrand')->getCollection();
$options = array();
$options =[
'value' => '',
'label' => __('-- Please Select --')
];
foreach($brandData as $_brand){
$options = [
'value' => $_brand->getBrandId(),
'label' => __($_brand->getTitle())
];
}
return $options;
}
public function toOptionArray()
{
$_objManager = MagentoFrameworkAppObjectManager::getInstance();
$brandData = $_objManager->create('AwaBrandModelBrand')->getCollection();
$options = array();
$options =[
'value' => '',
'label' => __('-- Please Select --')
];
foreach($brandData as $_brand){
$options = [
'value' => $_brand->getBrandId(),
'label' => __($_brand->getTitle())
];
}
return $options;
}
}
This attribute created successfull
When I try to get product collection by this attribute its not working
and this attribute not showing product collection
MY get product collection code following
<?php
$_product = $block->getProduct();
$objectManager = MagentoFrameworkAppObjectManager::getInstance();
$productCollection = $objectManager->get('MagentoCatalogModelResourceModelProductCollectionFactory');
$collection = $productCollection->create()
->addAttributeToFilter('awa_brand',array('eq' => $_product->getAwaBrand()))
->setPageSize(3);
foreach($collection as $product):
echo '<pre/>'; print_r($product->getData());exit;
endforeach;
?>
magento2 product-collection custom-attributes
New contributor
prakash saran is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
I am creating a custom product attribute in Magento 2 by custom module InstallData.php code following
<?php
namespace AwaBrand\Setup;
use MagentoEavSetupEavSetupFactory;
use MagentoFrameworkSetupInstallDataInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class InstallData implements InstallDataInterface
{
/**
* EAV setup factory
*
* @var MagentoEavSetupEavSetupFactory
*/
private $eavSetupFactory;
/**
* Constructor
*
* @param EavSetupFactory $eavSetupFactory
*/
public function __construct(
EavSetupFactory $eavSetupFactory
) {
$this->eavSetupFactory = $eavSetupFactory;
}
/**
* {@inheritdoc}
*/
public function install(
ModuleDataSetupInterface $setup,
ModuleContextInterface $context
) {
$setup->startSetup();
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$eavSetup->addAttribute(
MagentoCatalogModelProduct::ENTITY,
'awa_brand',
[
'type' => 'int',
'backend' => '',
'frontend' => '',
'label' => 'Attribute Select',
'input' => 'select',
'class' => '',
'source' => 'AwaBrandModelConfigSourceOptions',
'global' => MagentoEavModelEntityAttributeScopedAttributeInterface::SCOPE_STORE,
'visible' => true,
'required' => true,
'user_defined' => false,
'default' => '',
'searchable' => false,
'filterable' => false,
'comparable' => false,
'visible_on_front' => false,
'used_in_product_listing' => true,
'unique' => false,
'apply_to' => ''
]
);
$setup->endSetup();
}
}
and source Module is bellow
<?php
namespace AwaBrandModelConfigSource;
class Options extends MagentoEavModelEntityAttributeSourceAbstractSource
{
/**
* to option array
*
* @return array
*/
public function getAllOptions()
{
$_objManager = MagentoFrameworkAppObjectManager::getInstance();
$brandData = $_objManager->create('AwaBrandModelBrand')->getCollection();
$options = array();
$options =[
'value' => '',
'label' => __('-- Please Select --')
];
foreach($brandData as $_brand){
$options = [
'value' => $_brand->getBrandId(),
'label' => __($_brand->getTitle())
];
}
return $options;
}
public function toOptionArray()
{
$_objManager = MagentoFrameworkAppObjectManager::getInstance();
$brandData = $_objManager->create('AwaBrandModelBrand')->getCollection();
$options = array();
$options =[
'value' => '',
'label' => __('-- Please Select --')
];
foreach($brandData as $_brand){
$options = [
'value' => $_brand->getBrandId(),
'label' => __($_brand->getTitle())
];
}
return $options;
}
}
This attribute created successfull
When I try to get product collection by this attribute its not working
and this attribute not showing product collection
MY get product collection code following
<?php
$_product = $block->getProduct();
$objectManager = MagentoFrameworkAppObjectManager::getInstance();
$productCollection = $objectManager->get('MagentoCatalogModelResourceModelProductCollectionFactory');
$collection = $productCollection->create()
->addAttributeToFilter('awa_brand',array('eq' => $_product->getAwaBrand()))
->setPageSize(3);
foreach($collection as $product):
echo '<pre/>'; print_r($product->getData());exit;
endforeach;
?>
magento2 product-collection custom-attributes
New contributor
prakash saran is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
I am creating a custom product attribute in Magento 2 by custom module InstallData.php code following
<?php
namespace AwaBrand\Setup;
use MagentoEavSetupEavSetupFactory;
use MagentoFrameworkSetupInstallDataInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class InstallData implements InstallDataInterface
{
/**
* EAV setup factory
*
* @var MagentoEavSetupEavSetupFactory
*/
private $eavSetupFactory;
/**
* Constructor
*
* @param EavSetupFactory $eavSetupFactory
*/
public function __construct(
EavSetupFactory $eavSetupFactory
) {
$this->eavSetupFactory = $eavSetupFactory;
}
/**
* {@inheritdoc}
*/
public function install(
ModuleDataSetupInterface $setup,
ModuleContextInterface $context
) {
$setup->startSetup();
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$eavSetup->addAttribute(
MagentoCatalogModelProduct::ENTITY,
'awa_brand',
[
'type' => 'int',
'backend' => '',
'frontend' => '',
'label' => 'Attribute Select',
'input' => 'select',
'class' => '',
'source' => 'AwaBrandModelConfigSourceOptions',
'global' => MagentoEavModelEntityAttributeScopedAttributeInterface::SCOPE_STORE,
'visible' => true,
'required' => true,
'user_defined' => false,
'default' => '',
'searchable' => false,
'filterable' => false,
'comparable' => false,
'visible_on_front' => false,
'used_in_product_listing' => true,
'unique' => false,
'apply_to' => ''
]
);
$setup->endSetup();
}
}
and source Module is bellow
<?php
namespace AwaBrandModelConfigSource;
class Options extends MagentoEavModelEntityAttributeSourceAbstractSource
{
/**
* to option array
*
* @return array
*/
public function getAllOptions()
{
$_objManager = MagentoFrameworkAppObjectManager::getInstance();
$brandData = $_objManager->create('AwaBrandModelBrand')->getCollection();
$options = array();
$options =[
'value' => '',
'label' => __('-- Please Select --')
];
foreach($brandData as $_brand){
$options = [
'value' => $_brand->getBrandId(),
'label' => __($_brand->getTitle())
];
}
return $options;
}
public function toOptionArray()
{
$_objManager = MagentoFrameworkAppObjectManager::getInstance();
$brandData = $_objManager->create('AwaBrandModelBrand')->getCollection();
$options = array();
$options =[
'value' => '',
'label' => __('-- Please Select --')
];
foreach($brandData as $_brand){
$options = [
'value' => $_brand->getBrandId(),
'label' => __($_brand->getTitle())
];
}
return $options;
}
}
This attribute created successfull
When I try to get product collection by this attribute its not working
and this attribute not showing product collection
MY get product collection code following
<?php
$_product = $block->getProduct();
$objectManager = MagentoFrameworkAppObjectManager::getInstance();
$productCollection = $objectManager->get('MagentoCatalogModelResourceModelProductCollectionFactory');
$collection = $productCollection->create()
->addAttributeToFilter('awa_brand',array('eq' => $_product->getAwaBrand()))
->setPageSize(3);
foreach($collection as $product):
echo '<pre/>'; print_r($product->getData());exit;
endforeach;
?>
magento2 product-collection custom-attributes
magento2 product-collection custom-attributes
New contributor
prakash saran is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
prakash saran is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
edited 11 mins ago


Teja Bhagavan Kollepara
2,96341847
2,96341847
New contributor
prakash saran is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
asked 1 hour ago


prakash saranprakash saran
12
12
New contributor
prakash saran is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
prakash saran is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
prakash saran is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Before addAttributeToFilter
Function You Must Select All Attribute Using addAttributeToSelect
Function
$collection = $productCollection->create()
->addAttributeToSelect('*')
->addAttributeToFilter('awa_brand',array('eq' => $_product->getAwaBrand()))
->setPageSize(3);
New contributor
Ronak Rathod is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
Use of objectmanager directly is not a good practice.
See the below code may help you:
protected $_productloader;
public function __construct(
MagentoCatalogModelProductFactory $productloader
)
{
$this->_productloader = $productloader;
}
// function in which you want to access
function abc()
{
$productId = 10;
$_product = $this->_productloader->create()->load($productId);
$awa_brand = $_product->getData('awa_brand');
}
add a comment |
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
});
}
});
prakash saran is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f263791%2fmagento-2-product-custom-attribute-source-model-outerset-attribute-not-showing-i%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Before addAttributeToFilter
Function You Must Select All Attribute Using addAttributeToSelect
Function
$collection = $productCollection->create()
->addAttributeToSelect('*')
->addAttributeToFilter('awa_brand',array('eq' => $_product->getAwaBrand()))
->setPageSize(3);
New contributor
Ronak Rathod is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
Before addAttributeToFilter
Function You Must Select All Attribute Using addAttributeToSelect
Function
$collection = $productCollection->create()
->addAttributeToSelect('*')
->addAttributeToFilter('awa_brand',array('eq' => $_product->getAwaBrand()))
->setPageSize(3);
New contributor
Ronak Rathod is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
Before addAttributeToFilter
Function You Must Select All Attribute Using addAttributeToSelect
Function
$collection = $productCollection->create()
->addAttributeToSelect('*')
->addAttributeToFilter('awa_brand',array('eq' => $_product->getAwaBrand()))
->setPageSize(3);
New contributor
Ronak Rathod is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
Before addAttributeToFilter
Function You Must Select All Attribute Using addAttributeToSelect
Function
$collection = $productCollection->create()
->addAttributeToSelect('*')
->addAttributeToFilter('awa_brand',array('eq' => $_product->getAwaBrand()))
->setPageSize(3);
New contributor
Ronak Rathod is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Ronak Rathod is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
answered 1 hour ago


Ronak RathodRonak Rathod
762
762
New contributor
Ronak Rathod is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Ronak Rathod is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
Ronak Rathod is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
add a comment |
Use of objectmanager directly is not a good practice.
See the below code may help you:
protected $_productloader;
public function __construct(
MagentoCatalogModelProductFactory $productloader
)
{
$this->_productloader = $productloader;
}
// function in which you want to access
function abc()
{
$productId = 10;
$_product = $this->_productloader->create()->load($productId);
$awa_brand = $_product->getData('awa_brand');
}
add a comment |
Use of objectmanager directly is not a good practice.
See the below code may help you:
protected $_productloader;
public function __construct(
MagentoCatalogModelProductFactory $productloader
)
{
$this->_productloader = $productloader;
}
// function in which you want to access
function abc()
{
$productId = 10;
$_product = $this->_productloader->create()->load($productId);
$awa_brand = $_product->getData('awa_brand');
}
add a comment |
Use of objectmanager directly is not a good practice.
See the below code may help you:
protected $_productloader;
public function __construct(
MagentoCatalogModelProductFactory $productloader
)
{
$this->_productloader = $productloader;
}
// function in which you want to access
function abc()
{
$productId = 10;
$_product = $this->_productloader->create()->load($productId);
$awa_brand = $_product->getData('awa_brand');
}
Use of objectmanager directly is not a good practice.
See the below code may help you:
protected $_productloader;
public function __construct(
MagentoCatalogModelProductFactory $productloader
)
{
$this->_productloader = $productloader;
}
// function in which you want to access
function abc()
{
$productId = 10;
$_product = $this->_productloader->create()->load($productId);
$awa_brand = $_product->getData('awa_brand');
}
answered 1 hour ago


iqbal malikiqbal malik
10412
10412
add a comment |
add a comment |
prakash saran is a new contributor. Be nice, and check out our Code of Conduct.
prakash saran is a new contributor. Be nice, and check out our Code of Conduct.
prakash saran is a new contributor. Be nice, and check out our Code of Conduct.
prakash saran is a new contributor. Be nice, and check out our Code of Conduct.
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f263791%2fmagento-2-product-custom-attribute-source-model-outerset-attribute-not-showing-i%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
9RjdxPkF6Yts3W8y2gn6S0N 9UnQE,1WdlHCHHo VBovu