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?

What do you call something that goes against the spirit of the law, but is legal when interpreting the law to the letter?

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

How do I create uniquely male characters?

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

How would photo IDs work for shapeshifters?

Is there a name of the flying bionic bird?

What does 'script /dev/null' do?

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

What to wear for invited talk in Canada

Should the British be getting ready for a no-deal Brexit?

Can I find out the caloric content of bread by dehydrating it?

Email Account under attack (really) - anything I can do?

Prime joint compound before latex paint?

A poker game description that does not feel gimmicky

New order #4: World

LWC and complex parameters

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

Was there ever an axiom rendered a theorem?

Calculate Levenshtein distance between two strings in Python

Why is my log file so massive? 22gb. I am running log backups

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

What is the command to reset a PC without deleting any files

Does the average primeness of natural numbers tend to zero?

Why doesn't a const reference extend the life of a temporary object passed via a function?



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












  • use the flag action to mark it as duplicated

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












  • use the flag action to mark it as duplicated

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









ARUNPRABAKARAN M

403113




403113










asked 13 hours ago









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

1719




1719












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

    – ARUNPRABAKARAN M
    12 hours ago












  • use the flag action to mark it as duplicated

    – LucScu
    11 hours ago

















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

    – ARUNPRABAKARAN M
    12 hours ago












  • use the flag action to mark it as duplicated

    – LucScu
    11 hours ago
















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

– ARUNPRABAKARAN M
12 hours ago






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

– ARUNPRABAKARAN M
12 hours ago














use the flag action to mark it as duplicated

– LucScu
11 hours ago





use the flag action to mark it as duplicated

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

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

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











  • How then to add it to the collection?

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

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

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











  • How then to add it to the collection?

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

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

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











  • How then to add it to the collection?

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

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

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











  • How then to add it to the collection?

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

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

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











  • How then to add it to the collection?

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

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

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

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

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













How then to add it to the collection?

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





How then to add it to the collection?

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

Magento 2 duplicate PHPSESSID cookie when using session_start() in custom php scriptMagento 2: User cant logged in into to account page, no error showing!Magento duplicate on subdomainGrabbing storeview from cookie (after using language selector)How do I run php custom script on magento2Magento 2: Include PHP script in headerSession lock after using Cm_RedisSessionscript php to update stockMagento set cookie popupMagento 2 session id cookie - where to find it?How to import Configurable product from csv with custom attributes using php scriptMagento 2 run custom PHP script

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