Magento 2 product custom attribute source_model outerset attribute not showing in product collection and not...
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
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
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
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
New contributor
edited 11 mins ago
Teja Bhagavan Kollepara
2,96341847
2,96341847
New contributor
asked 1 hour ago
prakash saranprakash saran
12
12
New contributor
New contributor
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
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
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
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
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
New contributor
answered 1 hour ago
Ronak RathodRonak Rathod
762
762
New contributor
New contributor
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