How to add multiple products to cart programatically in Magento 2
This is the code snippet that I am using
$objectManager = MagentoFrameworkAppObjectManager::getInstance();
$quote = $objectManager->get('MagentoCheckoutModelCart');
$_product = $objectManager->get('MagentoCatalogModelProduct')->load(1058);
$params = array (
'qty' => 1
);
$quote->addProduct($_product, $params);
$quote->save();
$quote = $objectManager->get('MagentoCheckoutModelCart');
$product = null;
$_product = $objectManager->get('MagentoCatalogModelProduct')->load(1059);
$params = array (
'qty' => 3
);
$quote->addProduct($_product, $params);
$quote->save();
The code seems fine but it updates the quantity of 1st product and results into 4 quantities of first product added to cart.
Please help.
magento2 magento-2.1 cart addtocart
add a comment |
This is the code snippet that I am using
$objectManager = MagentoFrameworkAppObjectManager::getInstance();
$quote = $objectManager->get('MagentoCheckoutModelCart');
$_product = $objectManager->get('MagentoCatalogModelProduct')->load(1058);
$params = array (
'qty' => 1
);
$quote->addProduct($_product, $params);
$quote->save();
$quote = $objectManager->get('MagentoCheckoutModelCart');
$product = null;
$_product = $objectManager->get('MagentoCatalogModelProduct')->load(1059);
$params = array (
'qty' => 3
);
$quote->addProduct($_product, $params);
$quote->save();
The code seems fine but it updates the quantity of 1st product and results into 4 quantities of first product added to cart.
Please help.
magento2 magento-2.1 cart addtocart
1
Not sure if this is the problem, but try with$objectManager->create('MagentoCatalogModelProduct')
instead of$objectManager->get('MagentoCatalogModelProduct')
– Marius♦
Jan 14 at 13:45
Thanks man, it worked. :)
– Manish Joy
Jan 14 at 13:57
In this case... I added it as an answer with some extra explanations about why this happens.
– Marius♦
Jan 14 at 14:00
add a comment |
This is the code snippet that I am using
$objectManager = MagentoFrameworkAppObjectManager::getInstance();
$quote = $objectManager->get('MagentoCheckoutModelCart');
$_product = $objectManager->get('MagentoCatalogModelProduct')->load(1058);
$params = array (
'qty' => 1
);
$quote->addProduct($_product, $params);
$quote->save();
$quote = $objectManager->get('MagentoCheckoutModelCart');
$product = null;
$_product = $objectManager->get('MagentoCatalogModelProduct')->load(1059);
$params = array (
'qty' => 3
);
$quote->addProduct($_product, $params);
$quote->save();
The code seems fine but it updates the quantity of 1st product and results into 4 quantities of first product added to cart.
Please help.
magento2 magento-2.1 cart addtocart
This is the code snippet that I am using
$objectManager = MagentoFrameworkAppObjectManager::getInstance();
$quote = $objectManager->get('MagentoCheckoutModelCart');
$_product = $objectManager->get('MagentoCatalogModelProduct')->load(1058);
$params = array (
'qty' => 1
);
$quote->addProduct($_product, $params);
$quote->save();
$quote = $objectManager->get('MagentoCheckoutModelCart');
$product = null;
$_product = $objectManager->get('MagentoCatalogModelProduct')->load(1059);
$params = array (
'qty' => 3
);
$quote->addProduct($_product, $params);
$quote->save();
The code seems fine but it updates the quantity of 1st product and results into 4 quantities of first product added to cart.
Please help.
magento2 magento-2.1 cart addtocart
magento2 magento-2.1 cart addtocart
asked Jan 14 at 13:37
Manish JoyManish Joy
817217
817217
1
Not sure if this is the problem, but try with$objectManager->create('MagentoCatalogModelProduct')
instead of$objectManager->get('MagentoCatalogModelProduct')
– Marius♦
Jan 14 at 13:45
Thanks man, it worked. :)
– Manish Joy
Jan 14 at 13:57
In this case... I added it as an answer with some extra explanations about why this happens.
– Marius♦
Jan 14 at 14:00
add a comment |
1
Not sure if this is the problem, but try with$objectManager->create('MagentoCatalogModelProduct')
instead of$objectManager->get('MagentoCatalogModelProduct')
– Marius♦
Jan 14 at 13:45
Thanks man, it worked. :)
– Manish Joy
Jan 14 at 13:57
In this case... I added it as an answer with some extra explanations about why this happens.
– Marius♦
Jan 14 at 14:00
1
1
Not sure if this is the problem, but try with
$objectManager->create('MagentoCatalogModelProduct')
instead of $objectManager->get('MagentoCatalogModelProduct')
– Marius♦
Jan 14 at 13:45
Not sure if this is the problem, but try with
$objectManager->create('MagentoCatalogModelProduct')
instead of $objectManager->get('MagentoCatalogModelProduct')
– Marius♦
Jan 14 at 13:45
Thanks man, it worked. :)
– Manish Joy
Jan 14 at 13:57
Thanks man, it worked. :)
– Manish Joy
Jan 14 at 13:57
In this case... I added it as an answer with some extra explanations about why this happens.
– Marius♦
Jan 14 at 14:00
In this case... I added it as an answer with some extra explanations about why this happens.
– Marius♦
Jan 14 at 14:00
add a comment |
2 Answers
2
active
oldest
votes
Based on the comments:
You should use
$objectManager->create('MagentoCatalogModelProduct');
instead of
$objectManager->get('MagentoCatalogModelProduct');
This happens because get
instantiates a class as a singleton. create
always gets you a new instance.
In the code you have, you will get the same instance of the product the second time you try to instantiate it.
add a comment |
Another way, without using Object Manager
$_product = $this->productFactory->create()->load(1059);
Instead of
$_product = $objectManager->get('MagentoCatalogModelProduct')->load(1059);
So, you need to inject MagentoCatalogModelProductFactory in the constructor of class where you are using that snippet
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "479"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f257709%2fhow-to-add-multiple-products-to-cart-programatically-in-magento-2%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Based on the comments:
You should use
$objectManager->create('MagentoCatalogModelProduct');
instead of
$objectManager->get('MagentoCatalogModelProduct');
This happens because get
instantiates a class as a singleton. create
always gets you a new instance.
In the code you have, you will get the same instance of the product the second time you try to instantiate it.
add a comment |
Based on the comments:
You should use
$objectManager->create('MagentoCatalogModelProduct');
instead of
$objectManager->get('MagentoCatalogModelProduct');
This happens because get
instantiates a class as a singleton. create
always gets you a new instance.
In the code you have, you will get the same instance of the product the second time you try to instantiate it.
add a comment |
Based on the comments:
You should use
$objectManager->create('MagentoCatalogModelProduct');
instead of
$objectManager->get('MagentoCatalogModelProduct');
This happens because get
instantiates a class as a singleton. create
always gets you a new instance.
In the code you have, you will get the same instance of the product the second time you try to instantiate it.
Based on the comments:
You should use
$objectManager->create('MagentoCatalogModelProduct');
instead of
$objectManager->get('MagentoCatalogModelProduct');
This happens because get
instantiates a class as a singleton. create
always gets you a new instance.
In the code you have, you will get the same instance of the product the second time you try to instantiate it.
answered Jan 14 at 14:00
Marius♦Marius
165k28315670
165k28315670
add a comment |
add a comment |
Another way, without using Object Manager
$_product = $this->productFactory->create()->load(1059);
Instead of
$_product = $objectManager->get('MagentoCatalogModelProduct')->load(1059);
So, you need to inject MagentoCatalogModelProductFactory in the constructor of class where you are using that snippet
add a comment |
Another way, without using Object Manager
$_product = $this->productFactory->create()->load(1059);
Instead of
$_product = $objectManager->get('MagentoCatalogModelProduct')->load(1059);
So, you need to inject MagentoCatalogModelProductFactory in the constructor of class where you are using that snippet
add a comment |
Another way, without using Object Manager
$_product = $this->productFactory->create()->load(1059);
Instead of
$_product = $objectManager->get('MagentoCatalogModelProduct')->load(1059);
So, you need to inject MagentoCatalogModelProductFactory in the constructor of class where you are using that snippet
Another way, without using Object Manager
$_product = $this->productFactory->create()->load(1059);
Instead of
$_product = $objectManager->get('MagentoCatalogModelProduct')->load(1059);
So, you need to inject MagentoCatalogModelProductFactory in the constructor of class where you are using that snippet
answered Jan 14 at 14:33
Raul SanchezRaul Sanchez
2,01631135
2,01631135
add a comment |
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f257709%2fhow-to-add-multiple-products-to-cart-programatically-in-magento-2%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Not sure if this is the problem, but try with
$objectManager->create('MagentoCatalogModelProduct')
instead of$objectManager->get('MagentoCatalogModelProduct')
– Marius♦
Jan 14 at 13:45
Thanks man, it worked. :)
– Manish Joy
Jan 14 at 13:57
In this case... I added it as an answer with some extra explanations about why this happens.
– Marius♦
Jan 14 at 14:00