@@ -2005,8 +2005,10 @@ public function createOrder()
2005
2005
$ this ->_prepareQuoteItems ();
2006
2006
2007
2007
$ orderData = [];
2008
- if ($ this ->getSession ()->getReordered ()) {
2009
- $ oldOrder = $ this ->orderRepositoryInterface ->get ($ this ->getSession ()->getReordered ());
2008
+ if ($ this ->getSession ()->getReordered () || $ this ->getSession ()->getOrder ()->getId ()) { //
2009
+ $ oldOrder = $ this ->getSession ()->getOrder ();
2010
+ $ oldOrder = $ oldOrder ->getId () ?
2011
+ $ oldOrder : $ this ->orderRepositoryInterface ->get ($ this ->getSession ()->getReordered ());
2010
2012
$ originalId = $ oldOrder ->getOriginalIncrementId ();
2011
2013
if (!$ originalId ) {
2012
2014
$ originalId = $ oldOrder ->getIncrementId ();
@@ -2021,11 +2023,16 @@ public function createOrder()
2021
2023
$ quote ->setReservedOrderId ($ orderData ['increment_id ' ]);
2022
2024
}
2023
2025
$ order = $ this ->quoteManagement ->submit ($ quote , $ orderData );
2024
- if ($ this ->getSession ()->getReordered ()) {
2025
- $ oldOrder = $ this ->orderRepositoryInterface ->get ($ this ->getSession ()->getReordered ());
2026
+ if ($ this ->getSession ()->getReordered () || $ this ->getSession ()->getOrder ()->getId ()) { //
2027
+ $ oldOrder = $ this ->getSession ()->getOrder ();
2028
+ $ oldOrder = $ oldOrder ->getId () ?
2029
+ $ oldOrder : $ this ->orderRepositoryInterface ->get ($ this ->getSession ()->getReordered ());
2026
2030
$ oldOrder ->setRelationChildId ($ order ->getId ());
2027
2031
$ oldOrder ->setRelationChildRealId ($ order ->getIncrementId ());
2028
2032
$ oldOrder ->save ();
2033
+ if ($ this ->getSession ()->getOrder ()->getId ()) {
2034
+ $ this ->orderManagement ->cancel ($ oldOrder ->getEntityId ());
2035
+ }
2029
2036
$ order ->save ();
2030
2037
}
2031
2038
0 commit comments