Magento 2: Use MagentoSalesModelOrder after order has been placedmain.CRITICAL: Plugin class doesn't existSet custom price of product when adding to cart code not workingMagento 2: Add a product to the cart programmaticallyREST API - dispatch eventsMagento 2 Create dynamic array From different Model Collection to use in multi select in gridMagento 2.2.5: Overriding Admin Controller sales/orderMonolog 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 Options
Hide Select Output from T-SQL
Dot above capital letter not centred
Is it correct to write "is not focus on"?
Is this Spell Mimic feat balanced?
Increase performance creating Mandelbrot set in python
Using parameter substitution on a Bash array
Is there any reason not to eat food that's been dropped on the surface of the moon?
Curses work by shouting - How to avoid collateral damage?
Generic lambda vs generic function give different behaviour
Is HostGator storing my password in plaintext?
Can criminal fraud exist without damages?
How do I rename a LINUX host without needing to reboot for the rename to take effect?
Stereotypical names
I'm in charge of equipment buying but no one's ever happy with what I choose. How to fix this?
Teaching indefinite integrals that require special-casing
Is a roofing delivery truck likely to crack my driveway slab?
Is there a problem with hiding "forgot password" until it's needed?
Is there an Impartial Brexit Deal comparison site?
There is only s̶i̶x̶t̶y one place he can be
when is out of tune ok?
Implement the Thanos sorting algorithm
What't the meaning of this extra silence?
The baby cries all morning
Is it okay / does it make sense for another player to join a running game of Munchkin?
Magento 2: Use MagentoSalesModelOrder after order has been placed
main.CRITICAL: Plugin class doesn't existSet custom price of product when adding to cart code not workingMagento 2: Add a product to the cart programmaticallyREST API - dispatch eventsMagento 2 Create dynamic array From different Model Collection to use in multi select in gridMagento 2.2.5: Overriding Admin Controller sales/orderMonolog 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 Options
I'm currently working on a custom module. I need to get order data of the order that has just been placed. The problem is, that I cannot get the data with MagentoSalesModelOrder
. It looks like the event is triggered too soon to use the Order Model. I've tried a couple of events but none seem to work. Does anyone know a solution that will work? It may be a different event, an alternative for the Order Model, or any fixes in the code.
Observer:
<?php
namespace VendorModuleObserver;
use MagentoFrameworkEventObserverInterface;
use PsrLogLoggerInterface;
use MagentoSalesModelOrder;
class OrderExport implements ObserverInterface
protected $_logger;
protected $orderModel;
public function __construct(
LoggerInterface $logger,
Order $orderModel
)
$this->_logger = $logger;
$this->orderModel = $orderModel;
public function execute(MagentoFrameworkEventObserver $observer)
$order = $observer->getEvent()->getOrder();
$orderId = $order->getIncrementId();
$orderId = ltrim($orderId, '0');
$orderId = (int)$orderId;
$this->_logger->info("New order: ".$orderId);
$this->createXml($orderId);
public function createXml($orderId)
$this->orderModel->load($orderId);
$orderModel = $this->orderModel;
// It breaks on this:
$customerName = $orderModel->getBillingAddress()->getFirstname();
Events:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="sales_order_place_after">
<observer name="order_export" instance="VendorModuleObserverOrderExport" />
</event>
</config>
magento2 event-observer
add a comment |
I'm currently working on a custom module. I need to get order data of the order that has just been placed. The problem is, that I cannot get the data with MagentoSalesModelOrder
. It looks like the event is triggered too soon to use the Order Model. I've tried a couple of events but none seem to work. Does anyone know a solution that will work? It may be a different event, an alternative for the Order Model, or any fixes in the code.
Observer:
<?php
namespace VendorModuleObserver;
use MagentoFrameworkEventObserverInterface;
use PsrLogLoggerInterface;
use MagentoSalesModelOrder;
class OrderExport implements ObserverInterface
protected $_logger;
protected $orderModel;
public function __construct(
LoggerInterface $logger,
Order $orderModel
)
$this->_logger = $logger;
$this->orderModel = $orderModel;
public function execute(MagentoFrameworkEventObserver $observer)
$order = $observer->getEvent()->getOrder();
$orderId = $order->getIncrementId();
$orderId = ltrim($orderId, '0');
$orderId = (int)$orderId;
$this->_logger->info("New order: ".$orderId);
$this->createXml($orderId);
public function createXml($orderId)
$this->orderModel->load($orderId);
$orderModel = $this->orderModel;
// It breaks on this:
$customerName = $orderModel->getBillingAddress()->getFirstname();
Events:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="sales_order_place_after">
<observer name="order_export" instance="VendorModuleObserverOrderExport" />
</event>
</config>
magento2 event-observer
add a comment |
I'm currently working on a custom module. I need to get order data of the order that has just been placed. The problem is, that I cannot get the data with MagentoSalesModelOrder
. It looks like the event is triggered too soon to use the Order Model. I've tried a couple of events but none seem to work. Does anyone know a solution that will work? It may be a different event, an alternative for the Order Model, or any fixes in the code.
Observer:
<?php
namespace VendorModuleObserver;
use MagentoFrameworkEventObserverInterface;
use PsrLogLoggerInterface;
use MagentoSalesModelOrder;
class OrderExport implements ObserverInterface
protected $_logger;
protected $orderModel;
public function __construct(
LoggerInterface $logger,
Order $orderModel
)
$this->_logger = $logger;
$this->orderModel = $orderModel;
public function execute(MagentoFrameworkEventObserver $observer)
$order = $observer->getEvent()->getOrder();
$orderId = $order->getIncrementId();
$orderId = ltrim($orderId, '0');
$orderId = (int)$orderId;
$this->_logger->info("New order: ".$orderId);
$this->createXml($orderId);
public function createXml($orderId)
$this->orderModel->load($orderId);
$orderModel = $this->orderModel;
// It breaks on this:
$customerName = $orderModel->getBillingAddress()->getFirstname();
Events:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="sales_order_place_after">
<observer name="order_export" instance="VendorModuleObserverOrderExport" />
</event>
</config>
magento2 event-observer
I'm currently working on a custom module. I need to get order data of the order that has just been placed. The problem is, that I cannot get the data with MagentoSalesModelOrder
. It looks like the event is triggered too soon to use the Order Model. I've tried a couple of events but none seem to work. Does anyone know a solution that will work? It may be a different event, an alternative for the Order Model, or any fixes in the code.
Observer:
<?php
namespace VendorModuleObserver;
use MagentoFrameworkEventObserverInterface;
use PsrLogLoggerInterface;
use MagentoSalesModelOrder;
class OrderExport implements ObserverInterface
protected $_logger;
protected $orderModel;
public function __construct(
LoggerInterface $logger,
Order $orderModel
)
$this->_logger = $logger;
$this->orderModel = $orderModel;
public function execute(MagentoFrameworkEventObserver $observer)
$order = $observer->getEvent()->getOrder();
$orderId = $order->getIncrementId();
$orderId = ltrim($orderId, '0');
$orderId = (int)$orderId;
$this->_logger->info("New order: ".$orderId);
$this->createXml($orderId);
public function createXml($orderId)
$this->orderModel->load($orderId);
$orderModel = $this->orderModel;
// It breaks on this:
$customerName = $orderModel->getBillingAddress()->getFirstname();
Events:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="sales_order_place_after">
<observer name="order_export" instance="VendorModuleObserverOrderExport" />
</event>
</config>
magento2 event-observer
magento2 event-observer
asked yesterday
MartinEMartinE
9211
9211
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
First of all the approach of getting the order id from the increment id you are using in your code can't really work. If you have an increment id of an order you can load the order by increment id (method loadByIncrementId
). But anyway that's only possible after the order has been saved to database, which is not the case in the event you are using.
If you need the order id (the value of the entity_id, primary key in sales_order
table) for whatever reason, I would suggest to use a later event, for example checkout_submit_all_after
(or sales_order_save_after
).
If you use one of those events you should have the complete order object in the observer and wouldn't need to load the order again.
Thank you for your anwser! It looks like that does the trick. However, I have one question: Do you know how to get the Shipping Address? I used thegetShippingAddress()
function from the Order Model. However, thegetShippingAddress()
function doesnt exist in in the order object in the observer. The same goes for thegetShippingMethod()
function.
– MartinE
19 hours ago
Update: I got it working allready. I figured out the Order Model is usable on thecheckout_submit_all_after
event.
– MartinE
18 hours ago
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%2f267297%2fmagento-2-use-magento-sales-model-order-after-order-has-been-placed%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
First of all the approach of getting the order id from the increment id you are using in your code can't really work. If you have an increment id of an order you can load the order by increment id (method loadByIncrementId
). But anyway that's only possible after the order has been saved to database, which is not the case in the event you are using.
If you need the order id (the value of the entity_id, primary key in sales_order
table) for whatever reason, I would suggest to use a later event, for example checkout_submit_all_after
(or sales_order_save_after
).
If you use one of those events you should have the complete order object in the observer and wouldn't need to load the order again.
Thank you for your anwser! It looks like that does the trick. However, I have one question: Do you know how to get the Shipping Address? I used thegetShippingAddress()
function from the Order Model. However, thegetShippingAddress()
function doesnt exist in in the order object in the observer. The same goes for thegetShippingMethod()
function.
– MartinE
19 hours ago
Update: I got it working allready. I figured out the Order Model is usable on thecheckout_submit_all_after
event.
– MartinE
18 hours ago
add a comment |
First of all the approach of getting the order id from the increment id you are using in your code can't really work. If you have an increment id of an order you can load the order by increment id (method loadByIncrementId
). But anyway that's only possible after the order has been saved to database, which is not the case in the event you are using.
If you need the order id (the value of the entity_id, primary key in sales_order
table) for whatever reason, I would suggest to use a later event, for example checkout_submit_all_after
(or sales_order_save_after
).
If you use one of those events you should have the complete order object in the observer and wouldn't need to load the order again.
Thank you for your anwser! It looks like that does the trick. However, I have one question: Do you know how to get the Shipping Address? I used thegetShippingAddress()
function from the Order Model. However, thegetShippingAddress()
function doesnt exist in in the order object in the observer. The same goes for thegetShippingMethod()
function.
– MartinE
19 hours ago
Update: I got it working allready. I figured out the Order Model is usable on thecheckout_submit_all_after
event.
– MartinE
18 hours ago
add a comment |
First of all the approach of getting the order id from the increment id you are using in your code can't really work. If you have an increment id of an order you can load the order by increment id (method loadByIncrementId
). But anyway that's only possible after the order has been saved to database, which is not the case in the event you are using.
If you need the order id (the value of the entity_id, primary key in sales_order
table) for whatever reason, I would suggest to use a later event, for example checkout_submit_all_after
(or sales_order_save_after
).
If you use one of those events you should have the complete order object in the observer and wouldn't need to load the order again.
First of all the approach of getting the order id from the increment id you are using in your code can't really work. If you have an increment id of an order you can load the order by increment id (method loadByIncrementId
). But anyway that's only possible after the order has been saved to database, which is not the case in the event you are using.
If you need the order id (the value of the entity_id, primary key in sales_order
table) for whatever reason, I would suggest to use a later event, for example checkout_submit_all_after
(or sales_order_save_after
).
If you use one of those events you should have the complete order object in the observer and wouldn't need to load the order again.
edited yesterday
answered yesterday
HelgeBHelgeB
2,8681321
2,8681321
Thank you for your anwser! It looks like that does the trick. However, I have one question: Do you know how to get the Shipping Address? I used thegetShippingAddress()
function from the Order Model. However, thegetShippingAddress()
function doesnt exist in in the order object in the observer. The same goes for thegetShippingMethod()
function.
– MartinE
19 hours ago
Update: I got it working allready. I figured out the Order Model is usable on thecheckout_submit_all_after
event.
– MartinE
18 hours ago
add a comment |
Thank you for your anwser! It looks like that does the trick. However, I have one question: Do you know how to get the Shipping Address? I used thegetShippingAddress()
function from the Order Model. However, thegetShippingAddress()
function doesnt exist in in the order object in the observer. The same goes for thegetShippingMethod()
function.
– MartinE
19 hours ago
Update: I got it working allready. I figured out the Order Model is usable on thecheckout_submit_all_after
event.
– MartinE
18 hours ago
Thank you for your anwser! It looks like that does the trick. However, I have one question: Do you know how to get the Shipping Address? I used the
getShippingAddress()
function from the Order Model. However, the getShippingAddress()
function doesnt exist in in the order object in the observer. The same goes for the getShippingMethod()
function.– MartinE
19 hours ago
Thank you for your anwser! It looks like that does the trick. However, I have one question: Do you know how to get the Shipping Address? I used the
getShippingAddress()
function from the Order Model. However, the getShippingAddress()
function doesnt exist in in the order object in the observer. The same goes for the getShippingMethod()
function.– MartinE
19 hours ago
Update: I got it working allready. I figured out the Order Model is usable on the
checkout_submit_all_after
event.– MartinE
18 hours ago
Update: I got it working allready. I figured out the Order Model is usable on the
checkout_submit_all_after
event.– MartinE
18 hours ago
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%2f267297%2fmagento-2-use-magento-sales-model-order-after-order-has-been-placed%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