How to get the custom attribute of products from the cart?Magento 2 : Get Custom Attribute Value of ProductI created a custom module ,but getting error, not able to figure out what the error is about. How to get out of this error?main.CRITICAL: Plugin class doesn't existSet custom price of product when adding to cart code not workingMagento 2 Log Bundle Product Data in List Page?Magento 2: Add a product to the cart programmaticallyMonolog Error After 2.2 UpgradeMagento 2: After custom cookie is created all pages default to home pageI have created one field using product form field for my price i want save my field value at product creation time from backend magento2Magento 2.2.5: Add, Update and Delete existing products Custom OptionsMagento 2.3 Can't view module's front end page output?

How to make payment on the internet without leaving a money trail?

Landlord wants to switch my lease to a "Land contract" to "get back at the city"

Is there a way to make member function NOT callable from constructor?

Does a dangling wire really electrocute me if I'm standing in water?

aging parents with no investments

Where else does the Shulchan Aruch quote an authority by name?

Why did the Germans forbid the possession of pet pigeons in Rostov-on-Don in 1941?

Is every set a filtered colimit of finite sets?

Can a planet have a different gravitational pull depending on its location in orbit around its sun?

Hosting Wordpress in a EC2 Load Balanced Instance

Denied boarding due to overcrowding, Sparpreis ticket. What are my rights?

Finding files for which a command fails

Was there ever an axiom rendered a theorem?

Extreme, but not acceptable situation and I can't start the work tomorrow morning

Manga about a female worker who got dragged into another world together with this high school girl and she was just told she's not needed anymore

New order #4: World

Why airport relocation isn't done gradually?

What do the Banks children have against barley water?

Is there a name of the flying bionic bird?

How to create a consistent feel for character names in a fantasy setting?

Re-submission of rejected manuscript without informing co-authors

Could Giant Ground Sloths have been a good pack animal for the ancient Mayans?

I’m planning on buying a laser printer but concerned about the life cycle of toner in the machine

How is it possible for user's password to be changed after storage was encrypted? (on OS X, Android)



How to get the custom attribute of products from the cart?


Magento 2 : Get Custom Attribute Value of ProductI created a custom module ,but getting error, not able to figure out what the error is about. How to get out of this error?main.CRITICAL: Plugin class doesn't existSet custom price of product when adding to cart code not workingMagento 2 Log Bundle Product Data in List Page?Magento 2: Add a product to the cart programmaticallyMonolog Error After 2.2 UpgradeMagento 2: After custom cookie is created all pages default to home pageI have created one field using product form field for my price i want save my field value at product creation time from backend magento2Magento 2.2.5: Add, Update and Delete existing products Custom OptionsMagento 2.3 Can't view module's front end page output?






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








0















There is an attribute in the product AllowSameDayDelivery how can I get it out of the product?



I got the products ids from the cart, But how do I get the attribute now?



<?php

namespace RonisSameDayDeliveryObserver;

use MagentoFrameworkEventObserverInterface;
use MagentoCatalogModelResourceModelProductCollectionFactory;

class DayDelivery implements ObserverInterface

protected $resultPageFactory;

/**
* @var MagentoCheckoutModelCart
*/
protected $_cart;
protected $_productCollectionFactory;

/**
* [__construct description]
* @param MagentoFrameworkAppActionContext $context [description]
* @param MagentoFrameworkViewResultPageFactory $resultPageFactory [description]
* @param MagentoCheckoutModelCart $cart [description]
*/
public function __construct(
MagentoFrameworkAppActionContext $context,
MagentoFrameworkViewResultPageFactory $resultPageFactory,
MagentoCheckoutModelCart $cart,
CollectionFactory $productCollectionFactory
)
$this->resultPageFactory = $resultPageFactory;
$this->_cart = $cart;
$this->_productCollectionFactory = $productCollectionFactory;


public function execute(MagentoFrameworkEventObserver $observer)

$writer = new ZendLogWriterStream(BP . '/var/log/delivery.log');
$logger = new ZendLogLogger();
$logger->addWriter($writer);

$cartProductIds = $this->_cart->getQuoteProductIds();
$productCollection = $this->_productCollectionFactory->create();
$productCollection->addFieldToFilter('entity_id', ['in' => [$cartProductIds]]);
foreach ($productCollection as $item)
var_dump ($item->getAllowSameDayDelivery());die;






now it always returns null even though it is in this product.











share|improve this question
























  • possible as duplicate magento.stackexchange.com/q/157584/60921

    – ARUNPRABAKARAN M
    10 hours ago












  • use the flag action to mark it as duplicated

    – LucScu
    9 hours ago

















0















There is an attribute in the product AllowSameDayDelivery how can I get it out of the product?



I got the products ids from the cart, But how do I get the attribute now?



<?php

namespace RonisSameDayDeliveryObserver;

use MagentoFrameworkEventObserverInterface;
use MagentoCatalogModelResourceModelProductCollectionFactory;

class DayDelivery implements ObserverInterface

protected $resultPageFactory;

/**
* @var MagentoCheckoutModelCart
*/
protected $_cart;
protected $_productCollectionFactory;

/**
* [__construct description]
* @param MagentoFrameworkAppActionContext $context [description]
* @param MagentoFrameworkViewResultPageFactory $resultPageFactory [description]
* @param MagentoCheckoutModelCart $cart [description]
*/
public function __construct(
MagentoFrameworkAppActionContext $context,
MagentoFrameworkViewResultPageFactory $resultPageFactory,
MagentoCheckoutModelCart $cart,
CollectionFactory $productCollectionFactory
)
$this->resultPageFactory = $resultPageFactory;
$this->_cart = $cart;
$this->_productCollectionFactory = $productCollectionFactory;


public function execute(MagentoFrameworkEventObserver $observer)

$writer = new ZendLogWriterStream(BP . '/var/log/delivery.log');
$logger = new ZendLogLogger();
$logger->addWriter($writer);

$cartProductIds = $this->_cart->getQuoteProductIds();
$productCollection = $this->_productCollectionFactory->create();
$productCollection->addFieldToFilter('entity_id', ['in' => [$cartProductIds]]);
foreach ($productCollection as $item)
var_dump ($item->getAllowSameDayDelivery());die;






now it always returns null even though it is in this product.











share|improve this question
























  • possible as duplicate magento.stackexchange.com/q/157584/60921

    – ARUNPRABAKARAN M
    10 hours ago












  • use the flag action to mark it as duplicated

    – LucScu
    9 hours ago













0












0








0








There is an attribute in the product AllowSameDayDelivery how can I get it out of the product?



I got the products ids from the cart, But how do I get the attribute now?



<?php

namespace RonisSameDayDeliveryObserver;

use MagentoFrameworkEventObserverInterface;
use MagentoCatalogModelResourceModelProductCollectionFactory;

class DayDelivery implements ObserverInterface

protected $resultPageFactory;

/**
* @var MagentoCheckoutModelCart
*/
protected $_cart;
protected $_productCollectionFactory;

/**
* [__construct description]
* @param MagentoFrameworkAppActionContext $context [description]
* @param MagentoFrameworkViewResultPageFactory $resultPageFactory [description]
* @param MagentoCheckoutModelCart $cart [description]
*/
public function __construct(
MagentoFrameworkAppActionContext $context,
MagentoFrameworkViewResultPageFactory $resultPageFactory,
MagentoCheckoutModelCart $cart,
CollectionFactory $productCollectionFactory
)
$this->resultPageFactory = $resultPageFactory;
$this->_cart = $cart;
$this->_productCollectionFactory = $productCollectionFactory;


public function execute(MagentoFrameworkEventObserver $observer)

$writer = new ZendLogWriterStream(BP . '/var/log/delivery.log');
$logger = new ZendLogLogger();
$logger->addWriter($writer);

$cartProductIds = $this->_cart->getQuoteProductIds();
$productCollection = $this->_productCollectionFactory->create();
$productCollection->addFieldToFilter('entity_id', ['in' => [$cartProductIds]]);
foreach ($productCollection as $item)
var_dump ($item->getAllowSameDayDelivery());die;






now it always returns null even though it is in this product.











share|improve this question
















There is an attribute in the product AllowSameDayDelivery how can I get it out of the product?



I got the products ids from the cart, But how do I get the attribute now?



<?php

namespace RonisSameDayDeliveryObserver;

use MagentoFrameworkEventObserverInterface;
use MagentoCatalogModelResourceModelProductCollectionFactory;

class DayDelivery implements ObserverInterface

protected $resultPageFactory;

/**
* @var MagentoCheckoutModelCart
*/
protected $_cart;
protected $_productCollectionFactory;

/**
* [__construct description]
* @param MagentoFrameworkAppActionContext $context [description]
* @param MagentoFrameworkViewResultPageFactory $resultPageFactory [description]
* @param MagentoCheckoutModelCart $cart [description]
*/
public function __construct(
MagentoFrameworkAppActionContext $context,
MagentoFrameworkViewResultPageFactory $resultPageFactory,
MagentoCheckoutModelCart $cart,
CollectionFactory $productCollectionFactory
)
$this->resultPageFactory = $resultPageFactory;
$this->_cart = $cart;
$this->_productCollectionFactory = $productCollectionFactory;


public function execute(MagentoFrameworkEventObserver $observer)

$writer = new ZendLogWriterStream(BP . '/var/log/delivery.log');
$logger = new ZendLogLogger();
$logger->addWriter($writer);

$cartProductIds = $this->_cart->getQuoteProductIds();
$productCollection = $this->_productCollectionFactory->create();
$productCollection->addFieldToFilter('entity_id', ['in' => [$cartProductIds]]);
foreach ($productCollection as $item)
var_dump ($item->getAllowSameDayDelivery());die;






now it always returns null even though it is in this product.








magento2 event-observer product-collection quote custom-attributes






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 9 hours ago









ARUNPRABAKARAN M

403113




403113










asked 10 hours ago









Рома ЛытарьРома Лытарь

1719




1719












  • possible as duplicate magento.stackexchange.com/q/157584/60921

    – ARUNPRABAKARAN M
    10 hours ago












  • use the flag action to mark it as duplicated

    – LucScu
    9 hours ago

















  • possible as duplicate magento.stackexchange.com/q/157584/60921

    – ARUNPRABAKARAN M
    10 hours ago












  • use the flag action to mark it as duplicated

    – LucScu
    9 hours ago
















possible as duplicate magento.stackexchange.com/q/157584/60921

– ARUNPRABAKARAN M
10 hours ago






possible as duplicate magento.stackexchange.com/q/157584/60921

– ARUNPRABAKARAN M
10 hours ago














use the flag action to mark it as duplicated

– LucScu
9 hours ago





use the flag action to mark it as duplicated

– LucScu
9 hours ago










1 Answer
1






active

oldest

votes


















1














In the product collection you will get only product attributes with the flag Used in Product Listing set to 'yes'.



Therefore you have two solutions:



  1. Set the flag Used in Product Listing set to 'yes' for your attribute allow_same_day_delivery (I guess that's your attribute_code)

or alternative



  1. load the product by Id for each product in the foreach loop using the ProductFactory, then you have all attributes available





share|improve this answer























  • this is how I have yes values ​​in the product. I downloaded the product by "_productCollectionFactory". How do I get my attribute now?

    – Рома Лытарь
    10 hours ago











  • That depends on the type of your attribute: For text/varchar attributes $item->getData('allow_same_day_delivery'); or $item->getAllowSameDayDelivery() should work. For select attributes you should be able to get the attribute text like this $item->getAttributeText('allow_same_day_delivery'); But anyway if $item->getData('allow_same_day_delivery'); is empty the attribute seems not to be in the collection

    – HelgeB
    10 hours ago












  • Not one of the options came up. All give out null, except for the last one, but they also give out not what is needed.

    – Рома Лытарь
    10 hours ago











  • So $item->getData('allow_same_day_delivery'); will get you some not empty / null output, but $item->getAttributeText('allow_same_day_delivery'); not? What kind of attribute is allow_same_day_delivery?

    – HelgeB
    9 hours ago











  • How then to add it to the collection?

    – Рома Лытарь
    9 hours ago











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%2f269209%2fhow-to-get-the-custom-attribute-of-products-from-the-cart%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









1














In the product collection you will get only product attributes with the flag Used in Product Listing set to 'yes'.



Therefore you have two solutions:



  1. Set the flag Used in Product Listing set to 'yes' for your attribute allow_same_day_delivery (I guess that's your attribute_code)

or alternative



  1. load the product by Id for each product in the foreach loop using the ProductFactory, then you have all attributes available





share|improve this answer























  • this is how I have yes values ​​in the product. I downloaded the product by "_productCollectionFactory". How do I get my attribute now?

    – Рома Лытарь
    10 hours ago











  • That depends on the type of your attribute: For text/varchar attributes $item->getData('allow_same_day_delivery'); or $item->getAllowSameDayDelivery() should work. For select attributes you should be able to get the attribute text like this $item->getAttributeText('allow_same_day_delivery'); But anyway if $item->getData('allow_same_day_delivery'); is empty the attribute seems not to be in the collection

    – HelgeB
    10 hours ago












  • Not one of the options came up. All give out null, except for the last one, but they also give out not what is needed.

    – Рома Лытарь
    10 hours ago











  • So $item->getData('allow_same_day_delivery'); will get you some not empty / null output, but $item->getAttributeText('allow_same_day_delivery'); not? What kind of attribute is allow_same_day_delivery?

    – HelgeB
    9 hours ago











  • How then to add it to the collection?

    – Рома Лытарь
    9 hours ago















1














In the product collection you will get only product attributes with the flag Used in Product Listing set to 'yes'.



Therefore you have two solutions:



  1. Set the flag Used in Product Listing set to 'yes' for your attribute allow_same_day_delivery (I guess that's your attribute_code)

or alternative



  1. load the product by Id for each product in the foreach loop using the ProductFactory, then you have all attributes available





share|improve this answer























  • this is how I have yes values ​​in the product. I downloaded the product by "_productCollectionFactory". How do I get my attribute now?

    – Рома Лытарь
    10 hours ago











  • That depends on the type of your attribute: For text/varchar attributes $item->getData('allow_same_day_delivery'); or $item->getAllowSameDayDelivery() should work. For select attributes you should be able to get the attribute text like this $item->getAttributeText('allow_same_day_delivery'); But anyway if $item->getData('allow_same_day_delivery'); is empty the attribute seems not to be in the collection

    – HelgeB
    10 hours ago












  • Not one of the options came up. All give out null, except for the last one, but they also give out not what is needed.

    – Рома Лытарь
    10 hours ago











  • So $item->getData('allow_same_day_delivery'); will get you some not empty / null output, but $item->getAttributeText('allow_same_day_delivery'); not? What kind of attribute is allow_same_day_delivery?

    – HelgeB
    9 hours ago











  • How then to add it to the collection?

    – Рома Лытарь
    9 hours ago













1












1








1







In the product collection you will get only product attributes with the flag Used in Product Listing set to 'yes'.



Therefore you have two solutions:



  1. Set the flag Used in Product Listing set to 'yes' for your attribute allow_same_day_delivery (I guess that's your attribute_code)

or alternative



  1. load the product by Id for each product in the foreach loop using the ProductFactory, then you have all attributes available





share|improve this answer













In the product collection you will get only product attributes with the flag Used in Product Listing set to 'yes'.



Therefore you have two solutions:



  1. Set the flag Used in Product Listing set to 'yes' for your attribute allow_same_day_delivery (I guess that's your attribute_code)

or alternative



  1. load the product by Id for each product in the foreach loop using the ProductFactory, then you have all attributes available






share|improve this answer












share|improve this answer



share|improve this answer










answered 10 hours ago









HelgeBHelgeB

3,1331322




3,1331322












  • this is how I have yes values ​​in the product. I downloaded the product by "_productCollectionFactory". How do I get my attribute now?

    – Рома Лытарь
    10 hours ago











  • That depends on the type of your attribute: For text/varchar attributes $item->getData('allow_same_day_delivery'); or $item->getAllowSameDayDelivery() should work. For select attributes you should be able to get the attribute text like this $item->getAttributeText('allow_same_day_delivery'); But anyway if $item->getData('allow_same_day_delivery'); is empty the attribute seems not to be in the collection

    – HelgeB
    10 hours ago












  • Not one of the options came up. All give out null, except for the last one, but they also give out not what is needed.

    – Рома Лытарь
    10 hours ago











  • So $item->getData('allow_same_day_delivery'); will get you some not empty / null output, but $item->getAttributeText('allow_same_day_delivery'); not? What kind of attribute is allow_same_day_delivery?

    – HelgeB
    9 hours ago











  • How then to add it to the collection?

    – Рома Лытарь
    9 hours ago

















  • this is how I have yes values ​​in the product. I downloaded the product by "_productCollectionFactory". How do I get my attribute now?

    – Рома Лытарь
    10 hours ago











  • That depends on the type of your attribute: For text/varchar attributes $item->getData('allow_same_day_delivery'); or $item->getAllowSameDayDelivery() should work. For select attributes you should be able to get the attribute text like this $item->getAttributeText('allow_same_day_delivery'); But anyway if $item->getData('allow_same_day_delivery'); is empty the attribute seems not to be in the collection

    – HelgeB
    10 hours ago












  • Not one of the options came up. All give out null, except for the last one, but they also give out not what is needed.

    – Рома Лытарь
    10 hours ago











  • So $item->getData('allow_same_day_delivery'); will get you some not empty / null output, but $item->getAttributeText('allow_same_day_delivery'); not? What kind of attribute is allow_same_day_delivery?

    – HelgeB
    9 hours ago











  • How then to add it to the collection?

    – Рома Лытарь
    9 hours ago
















this is how I have yes values ​​in the product. I downloaded the product by "_productCollectionFactory". How do I get my attribute now?

– Рома Лытарь
10 hours ago





this is how I have yes values ​​in the product. I downloaded the product by "_productCollectionFactory". How do I get my attribute now?

– Рома Лытарь
10 hours ago













That depends on the type of your attribute: For text/varchar attributes $item->getData('allow_same_day_delivery'); or $item->getAllowSameDayDelivery() should work. For select attributes you should be able to get the attribute text like this $item->getAttributeText('allow_same_day_delivery'); But anyway if $item->getData('allow_same_day_delivery'); is empty the attribute seems not to be in the collection

– HelgeB
10 hours ago






That depends on the type of your attribute: For text/varchar attributes $item->getData('allow_same_day_delivery'); or $item->getAllowSameDayDelivery() should work. For select attributes you should be able to get the attribute text like this $item->getAttributeText('allow_same_day_delivery'); But anyway if $item->getData('allow_same_day_delivery'); is empty the attribute seems not to be in the collection

– HelgeB
10 hours ago














Not one of the options came up. All give out null, except for the last one, but they also give out not what is needed.

– Рома Лытарь
10 hours ago





Not one of the options came up. All give out null, except for the last one, but they also give out not what is needed.

– Рома Лытарь
10 hours ago













So $item->getData('allow_same_day_delivery'); will get you some not empty / null output, but $item->getAttributeText('allow_same_day_delivery'); not? What kind of attribute is allow_same_day_delivery?

– HelgeB
9 hours ago





So $item->getData('allow_same_day_delivery'); will get you some not empty / null output, but $item->getAttributeText('allow_same_day_delivery'); not? What kind of attribute is allow_same_day_delivery?

– HelgeB
9 hours ago













How then to add it to the collection?

– Рома Лытарь
9 hours ago





How then to add it to the collection?

– Рома Лытарь
9 hours ago

















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%2f269209%2fhow-to-get-the-custom-attribute-of-products-from-the-cart%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

Jet Time Laivasto | Lähteet | Aiheesta muualla | NavigointivalikkoJet Time - The CompanyThe CompanyManagementJet Time aloittaa lauantaina Suomi-rekisterissä olevalla Boeing 737 -koneellaJettime Finland Fleet Details and HistoryJettime Fleet Details and HistoryRegional Jet OÜ takes over ATR production for SASJet Time Returns To Its Core BusinessYhtiön kotisivutlaajentamalla

Olympian arkeologinen museo Sisällysluettelo Historia ja rakennus | Kokoelmat | Lähteet | Aiheesta muualla | Navigointivalikko37°38′36″N, 21°37′46″EInfobox OKArchaeological Museum of Olympia: HistoryArchaeological Museum of Olympia: DescriptionΜουσείο Ιστορίας των Ολυμπιακών Αγώνων της Αρχαιότητας: ΙστορικόArchaeological Museum of Olympia

Äpy Sisällysluettelo Äpyt kautta historian | Esimerkkejä Äpy-huumorista | Katso myös | Kirjallisuutta | Aiheesta muualla | Navigointivalikkowww.äpy.fi