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?

Was there ever an axiom rendered a theorem?

Why was the "bread communication" in the arena of Catching Fire left out in the movie?

Is ipsum/ipsa/ipse a third person pronoun, or can it serve other functions?

Can the Produce Flame cantrip be used to grapple, or as an unarmed strike, in the right circumstances?

Finding files for which a command fails

extract characters between two commas?

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

Is this food a bread or a loaf?

Add an angle to a sphere

If a centaur druid Wild Shapes into a Giant Elk, do their Charge features stack?

Does it makes sense to buy a new cycle to learn riding?

What is the meaning of "of trouble" in the following sentence?

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

I see my dog run

What do the Banks children have against barley water?

Pristine Bit Checking

How can I add custom success page

Domain expired, GoDaddy holds it and is asking more money

Are cabin dividers used to "hide" the flex of the airplane?

How to move the player while also allowing forces to affect it

Patience, young "Padovan"

When blogging recipes, how can I support both readers who want the narrative/journey and ones who want the printer-friendly recipe?

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

Lied on resume at previous job



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
    11 hours ago












  • use the flag action to mark it as duplicated

    – LucScu
    10 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
    11 hours ago












  • use the flag action to mark it as duplicated

    – LucScu
    10 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 10 hours ago









ARUNPRABAKARAN M

403113




403113










asked 11 hours ago









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

1719




1719












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

    – ARUNPRABAKARAN M
    11 hours ago












  • use the flag action to mark it as duplicated

    – LucScu
    10 hours ago

















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

    – ARUNPRABAKARAN M
    11 hours ago












  • use the flag action to mark it as duplicated

    – LucScu
    10 hours ago
















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

– ARUNPRABAKARAN M
11 hours ago






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

– ARUNPRABAKARAN M
11 hours ago














use the flag action to mark it as duplicated

– LucScu
10 hours ago





use the flag action to mark it as duplicated

– LucScu
10 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?

    – Рома Лытарь
    11 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
    11 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.

    – Рома Лытарь
    11 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
    11 hours ago











  • How then to add it to the collection?

    – Рома Лытарь
    11 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?

    – Рома Лытарь
    11 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
    11 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.

    – Рома Лытарь
    11 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
    11 hours ago











  • How then to add it to the collection?

    – Рома Лытарь
    11 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?

    – Рома Лытарь
    11 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
    11 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.

    – Рома Лытарь
    11 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
    11 hours ago











  • How then to add it to the collection?

    – Рома Лытарь
    11 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 11 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?

    – Рома Лытарь
    11 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
    11 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.

    – Рома Лытарь
    11 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
    11 hours ago











  • How then to add it to the collection?

    – Рома Лытарь
    11 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?

    – Рома Лытарь
    11 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
    11 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.

    – Рома Лытарь
    11 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
    11 hours ago











  • How then to add it to the collection?

    – Рома Лытарь
    11 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?

– Рома Лытарь
11 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?

– Рома Лытарь
11 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
11 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
11 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.

– Рома Лытарь
11 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.

– Рома Лытарь
11 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
11 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
11 hours ago













How then to add it to the collection?

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





How then to add it to the collection?

– Рома Лытарь
11 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

Can not update quote_id field of “quote_item” table magento 2Magento 2.1 - We can't remove the item. (Shopping Cart doesnt allow us to remove items before becomes empty)Add value for custom quote item attribute using REST apiREST API endpoint v1/carts/cartId/items always returns error messageCorrect way to save entries to databaseHow to remove all associated quote objects of a customer completelyMagento 2 - Save value from custom input field to quote_itemGet quote_item data using quote id and product id filter in Magento 2How to set additional data to quote_item table from controller in Magento 2?What is the purpose of additional_data column in quote_item table in magento2Set Custom Price to Quote item magento2 from controller

How to solve knockout JS error in Magento 2 Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?(Magento2) knockout.js:3012 Uncaught ReferenceError: Unable to process bindingUnable to process binding Knockout.js magento 2Cannot read property `scopeLabel` of undefined on Product Detail PageCan't get Customer Data on frontend in Magento 2Magento2 Order Summary - unable to process bindingKO templates are not loading in Magento 2.1 applicationgetting knockout js error magento 2Product grid not load -— Unable to process binding Knockout.js magento 2Product form not loaded in magento2Uncaught ReferenceError: Unable to process binding “if: function()return (isShowLegend()) ” magento 2

Nissan Patrol Зміст Перше покоління — 4W60 (1951-1960) | Друге покоління — 60 series (1960-1980) | Третє покоління (1980–2002) | Четверте покоління — Y60 (1987–1998) | П'яте покоління — Y61 (1997–2013) | Шосте покоління — Y62 (2010- ) | Посилання | Зноски | Навігаційне менюОфіційний український сайтТест-драйв Nissan Patrol 2010 7-го поколінняNissan PatrolКак мы тестировали Nissan Patrol 2016рвиправивши або дописавши її