How to get the custom attribute of products from the cart? The 2019 Stack Overflow Developer Survey Results Are InMagento 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?

Where does the "burst of radiance" from Holy Weapon originate?

Why can Shazam do this?

"What time...?" or "At what time...?" - what is more grammatically correct?

Should I write numbers in words or as numerals when there are multiple next to each other?

Understanding the implication of what "well-defined" means for the operation in quotient group

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

Is domain driven design an anti-SQL pattern?

Inversion Puzzle

Which Sci-Fi work first showed weapon of galactic-scale mass destruction?

If the Wish spell is used to duplicate the effect of Simulacrum, are existing duplicates destroyed?

Time travel alters history but people keep saying nothing's changed

Monty Hall variation

Falsification in Math vs Science

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

Is flight data recorder erased after every flight?

What is the use of option -o in the useradd command?

Can't find the latex code for the ⍎ (down tack jot) symbol

Output the Arecibo Message

Springs with some finite mass

What is this 4-propeller plane?

"To split hairs" vs "To be pedantic"

Deadlock Graph and Interpretation, solution to avoid

Geography at the pixel level

How to create dashed lines/arrows in Illustrator



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



The 2019 Stack Overflow Developer Survey Results Are InMagento 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
    yesterday












  • use the flag action to mark it as duplicated

    – LucScu
    yesterday

















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
    yesterday












  • use the flag action to mark it as duplicated

    – LucScu
    yesterday













0












0








0


1






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 yesterday









ARUNPRABAKARAN M

409113




409113










asked yesterday









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

1719




1719












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

    – ARUNPRABAKARAN M
    yesterday












  • use the flag action to mark it as duplicated

    – LucScu
    yesterday

















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

    – ARUNPRABAKARAN M
    yesterday












  • use the flag action to mark it as duplicated

    – LucScu
    yesterday
















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

– ARUNPRABAKARAN M
yesterday






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

– ARUNPRABAKARAN M
yesterday














use the flag action to mark it as duplicated

– LucScu
yesterday





use the flag action to mark it as duplicated

– LucScu
yesterday










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?

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











  • 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
    yesterday












  • 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.

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











  • 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
    yesterday











  • How then to add it to the collection?

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











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?

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











  • 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
    yesterday












  • 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.

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











  • 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
    yesterday











  • How then to add it to the collection?

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















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?

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











  • 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
    yesterday












  • 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.

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











  • 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
    yesterday











  • How then to add it to the collection?

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













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 yesterday









HelgeBHelgeB

3,1831322




3,1831322












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

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











  • 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
    yesterday












  • 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.

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











  • 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
    yesterday











  • How then to add it to the collection?

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

















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

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











  • 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
    yesterday












  • 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.

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











  • 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
    yesterday











  • How then to add it to the collection?

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
















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

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





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

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













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
yesterday






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
yesterday














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.

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





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.

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













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
yesterday





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
yesterday













How then to add it to the collection?

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





How then to add it to the collection?

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

















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

Get product attribute by attribute group code in magento 2get product attribute by product attribute group in magento 2Magento 2 Log Bundle Product Data in List Page?How to get all product attribute of a attribute group of Default attribute set?Magento 2.1 Create a filter in the product grid by new attributeMagento 2 : Get Product Attribute values By GroupMagento 2 How to get all existing values for one attributeMagento 2 get custom attribute of a single product inside a pluginMagento 2.3 How to get all the Multi Source Inventory (MSI) locations collection in custom module?Magento2: how to develop rest API to get new productsGet product attribute by attribute group code ( [attribute_group_code] ) in magento 2

Category:9 (number) SubcategoriesMedia in category "9 (number)"Navigation menuUpload mediaGND ID: 4485639-8Library of Congress authority ID: sh85091979ReasonatorScholiaStatistics

Magento 2.3: How do i solve this, Not registered handle, on custom form?How can i rewrite TierPrice Block in Magento2magento 2 captcha not rendering if I override layout xmlmain.CRITICAL: Plugin class doesn't existMagento 2 : Problem while adding custom button order view page?Magento 2.2.5: Overriding Admin Controller sales/orderMagento 2.2.5: Add, Update and Delete existing products Custom OptionsMagento 2.3 : File Upload issue in UI Component FormMagento2 Not registered handleHow to configured Form Builder Js in my custom magento 2.3.0 module?Magento 2.3. How to create image upload field in an admin form