Get Configurable Product Price from Simple Product in Magento Order
We are writing synchronization of Magento and MAS90 ERP system. We are transferring Orders from Magento to ERP system. We have added observer for order_save_after
.
Each of Magento Simple product has UPC code that needed to add item in ERP system.
Simple products are automatically added to Magento Order based on configurable item
, but problem is that simple product's real price, quantity, tax amount...are stored in configurable product, but UPC is stored in simple product.
For resolving this problem, we decide to get simple products from Magento Order ( to get right UPC ).
Our question is, how to get RIGHT price, quantity, tax amount of automatically added simple product. ( How in Magento order are linked configurable product and automatically added simple product. )
Here is snippet of Code that is getting products.
foreach ($order->getAllItems() as $orderItem){
$tmpMAS90OrderItem = NULL;
if($orderItem->getProductType() == 'simple'){
$tmpMAS90OrderItem = $orderItem -> getUpc();
}
if($tmpMAS90OrderItem != NULL) {
$setChildValuesArray = array(
'ItemCode' => $tmpMAS90OrderItem,
'UnitPrice' => $orderItem -> getPrice(), // THIS IS WRONG PRICE, right price is in configurable item
'QuantityOrdered' => $orderItem -> getQtyToInvoice()
);
$querySO->setChildFieldValues($setChildValuesArray,$childSequence); //child sequence ( line sequence )
$childSequence++;
$linesTaxAmountSum += $orderItem->getTaxAmount(); // THIS IS WRONG TAX AMOUNT, right amount is in configurable item
}
}
configurable-product event-observer simple-product
add a comment |
We are writing synchronization of Magento and MAS90 ERP system. We are transferring Orders from Magento to ERP system. We have added observer for order_save_after
.
Each of Magento Simple product has UPC code that needed to add item in ERP system.
Simple products are automatically added to Magento Order based on configurable item
, but problem is that simple product's real price, quantity, tax amount...are stored in configurable product, but UPC is stored in simple product.
For resolving this problem, we decide to get simple products from Magento Order ( to get right UPC ).
Our question is, how to get RIGHT price, quantity, tax amount of automatically added simple product. ( How in Magento order are linked configurable product and automatically added simple product. )
Here is snippet of Code that is getting products.
foreach ($order->getAllItems() as $orderItem){
$tmpMAS90OrderItem = NULL;
if($orderItem->getProductType() == 'simple'){
$tmpMAS90OrderItem = $orderItem -> getUpc();
}
if($tmpMAS90OrderItem != NULL) {
$setChildValuesArray = array(
'ItemCode' => $tmpMAS90OrderItem,
'UnitPrice' => $orderItem -> getPrice(), // THIS IS WRONG PRICE, right price is in configurable item
'QuantityOrdered' => $orderItem -> getQtyToInvoice()
);
$querySO->setChildFieldValues($setChildValuesArray,$childSequence); //child sequence ( line sequence )
$childSequence++;
$linesTaxAmountSum += $orderItem->getTaxAmount(); // THIS IS WRONG TAX AMOUNT, right amount is in configurable item
}
}
configurable-product event-observer simple-product
add a comment |
We are writing synchronization of Magento and MAS90 ERP system. We are transferring Orders from Magento to ERP system. We have added observer for order_save_after
.
Each of Magento Simple product has UPC code that needed to add item in ERP system.
Simple products are automatically added to Magento Order based on configurable item
, but problem is that simple product's real price, quantity, tax amount...are stored in configurable product, but UPC is stored in simple product.
For resolving this problem, we decide to get simple products from Magento Order ( to get right UPC ).
Our question is, how to get RIGHT price, quantity, tax amount of automatically added simple product. ( How in Magento order are linked configurable product and automatically added simple product. )
Here is snippet of Code that is getting products.
foreach ($order->getAllItems() as $orderItem){
$tmpMAS90OrderItem = NULL;
if($orderItem->getProductType() == 'simple'){
$tmpMAS90OrderItem = $orderItem -> getUpc();
}
if($tmpMAS90OrderItem != NULL) {
$setChildValuesArray = array(
'ItemCode' => $tmpMAS90OrderItem,
'UnitPrice' => $orderItem -> getPrice(), // THIS IS WRONG PRICE, right price is in configurable item
'QuantityOrdered' => $orderItem -> getQtyToInvoice()
);
$querySO->setChildFieldValues($setChildValuesArray,$childSequence); //child sequence ( line sequence )
$childSequence++;
$linesTaxAmountSum += $orderItem->getTaxAmount(); // THIS IS WRONG TAX AMOUNT, right amount is in configurable item
}
}
configurable-product event-observer simple-product
We are writing synchronization of Magento and MAS90 ERP system. We are transferring Orders from Magento to ERP system. We have added observer for order_save_after
.
Each of Magento Simple product has UPC code that needed to add item in ERP system.
Simple products are automatically added to Magento Order based on configurable item
, but problem is that simple product's real price, quantity, tax amount...are stored in configurable product, but UPC is stored in simple product.
For resolving this problem, we decide to get simple products from Magento Order ( to get right UPC ).
Our question is, how to get RIGHT price, quantity, tax amount of automatically added simple product. ( How in Magento order are linked configurable product and automatically added simple product. )
Here is snippet of Code that is getting products.
foreach ($order->getAllItems() as $orderItem){
$tmpMAS90OrderItem = NULL;
if($orderItem->getProductType() == 'simple'){
$tmpMAS90OrderItem = $orderItem -> getUpc();
}
if($tmpMAS90OrderItem != NULL) {
$setChildValuesArray = array(
'ItemCode' => $tmpMAS90OrderItem,
'UnitPrice' => $orderItem -> getPrice(), // THIS IS WRONG PRICE, right price is in configurable item
'QuantityOrdered' => $orderItem -> getQtyToInvoice()
);
$querySO->setChildFieldValues($setChildValuesArray,$childSequence); //child sequence ( line sequence )
$childSequence++;
$linesTaxAmountSum += $orderItem->getTaxAmount(); // THIS IS WRONG TAX AMOUNT, right amount is in configurable item
}
}
configurable-product event-observer simple-product
configurable-product event-observer simple-product
edited 24 mins ago
Teja Bhagavan Kollepara
3,00641949
3,00641949
asked May 7 '15 at 7:27
Aram KocharyanAram Kocharyan
1086
1086
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
In this case you need to use call parent item's row().As per magento when a configurable product
is ordered
,then there are two rows has been saved
at sales_flat_order_item
.One is configurable product data product_id and order item prices and another is simple products details
.So need data fetch data from Configurable products
.
So need to change
'UnitPrice'=> $orderItem->getParentItem()?$orderItem->getParentItem()-> getPrice():$orderItem-> getPrice(),
From
UnitPrice' => $orderItem -> getPrice(),
Also To:
$linesTaxAmountSum += $orderItem->getParentItem()?$orderItem->getParentItem()->getTaxAmount():$orderItem->getTaxAmount();
From:
$linesTaxAmountSum += $orderItem->getTaxAmount();
Thank you for answer. It mean that each parent(up) row of simple product is configurable item ? ( In case that we ordered configurable product ) First I need to get product data from configurable item, and put it in next row? ( Is there any way that when a configurable product will be ordered no second row will be added ? )
– Aram Kocharyan
May 7 '15 at 7:42
may use getAllVisibleItems() instead getAllItems() better idea
– Amit Bera♦
May 7 '15 at 7:49
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%2f66982%2fget-configurable-product-price-from-simple-product-in-magento-order%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
In this case you need to use call parent item's row().As per magento when a configurable product
is ordered
,then there are two rows has been saved
at sales_flat_order_item
.One is configurable product data product_id and order item prices and another is simple products details
.So need data fetch data from Configurable products
.
So need to change
'UnitPrice'=> $orderItem->getParentItem()?$orderItem->getParentItem()-> getPrice():$orderItem-> getPrice(),
From
UnitPrice' => $orderItem -> getPrice(),
Also To:
$linesTaxAmountSum += $orderItem->getParentItem()?$orderItem->getParentItem()->getTaxAmount():$orderItem->getTaxAmount();
From:
$linesTaxAmountSum += $orderItem->getTaxAmount();
Thank you for answer. It mean that each parent(up) row of simple product is configurable item ? ( In case that we ordered configurable product ) First I need to get product data from configurable item, and put it in next row? ( Is there any way that when a configurable product will be ordered no second row will be added ? )
– Aram Kocharyan
May 7 '15 at 7:42
may use getAllVisibleItems() instead getAllItems() better idea
– Amit Bera♦
May 7 '15 at 7:49
add a comment |
In this case you need to use call parent item's row().As per magento when a configurable product
is ordered
,then there are two rows has been saved
at sales_flat_order_item
.One is configurable product data product_id and order item prices and another is simple products details
.So need data fetch data from Configurable products
.
So need to change
'UnitPrice'=> $orderItem->getParentItem()?$orderItem->getParentItem()-> getPrice():$orderItem-> getPrice(),
From
UnitPrice' => $orderItem -> getPrice(),
Also To:
$linesTaxAmountSum += $orderItem->getParentItem()?$orderItem->getParentItem()->getTaxAmount():$orderItem->getTaxAmount();
From:
$linesTaxAmountSum += $orderItem->getTaxAmount();
Thank you for answer. It mean that each parent(up) row of simple product is configurable item ? ( In case that we ordered configurable product ) First I need to get product data from configurable item, and put it in next row? ( Is there any way that when a configurable product will be ordered no second row will be added ? )
– Aram Kocharyan
May 7 '15 at 7:42
may use getAllVisibleItems() instead getAllItems() better idea
– Amit Bera♦
May 7 '15 at 7:49
add a comment |
In this case you need to use call parent item's row().As per magento when a configurable product
is ordered
,then there are two rows has been saved
at sales_flat_order_item
.One is configurable product data product_id and order item prices and another is simple products details
.So need data fetch data from Configurable products
.
So need to change
'UnitPrice'=> $orderItem->getParentItem()?$orderItem->getParentItem()-> getPrice():$orderItem-> getPrice(),
From
UnitPrice' => $orderItem -> getPrice(),
Also To:
$linesTaxAmountSum += $orderItem->getParentItem()?$orderItem->getParentItem()->getTaxAmount():$orderItem->getTaxAmount();
From:
$linesTaxAmountSum += $orderItem->getTaxAmount();
In this case you need to use call parent item's row().As per magento when a configurable product
is ordered
,then there are two rows has been saved
at sales_flat_order_item
.One is configurable product data product_id and order item prices and another is simple products details
.So need data fetch data from Configurable products
.
So need to change
'UnitPrice'=> $orderItem->getParentItem()?$orderItem->getParentItem()-> getPrice():$orderItem-> getPrice(),
From
UnitPrice' => $orderItem -> getPrice(),
Also To:
$linesTaxAmountSum += $orderItem->getParentItem()?$orderItem->getParentItem()->getTaxAmount():$orderItem->getTaxAmount();
From:
$linesTaxAmountSum += $orderItem->getTaxAmount();
edited May 7 '15 at 7:44
answered May 7 '15 at 7:37
Amit Bera♦Amit Bera
59.2k1575176
59.2k1575176
Thank you for answer. It mean that each parent(up) row of simple product is configurable item ? ( In case that we ordered configurable product ) First I need to get product data from configurable item, and put it in next row? ( Is there any way that when a configurable product will be ordered no second row will be added ? )
– Aram Kocharyan
May 7 '15 at 7:42
may use getAllVisibleItems() instead getAllItems() better idea
– Amit Bera♦
May 7 '15 at 7:49
add a comment |
Thank you for answer. It mean that each parent(up) row of simple product is configurable item ? ( In case that we ordered configurable product ) First I need to get product data from configurable item, and put it in next row? ( Is there any way that when a configurable product will be ordered no second row will be added ? )
– Aram Kocharyan
May 7 '15 at 7:42
may use getAllVisibleItems() instead getAllItems() better idea
– Amit Bera♦
May 7 '15 at 7:49
Thank you for answer. It mean that each parent(up) row of simple product is configurable item ? ( In case that we ordered configurable product ) First I need to get product data from configurable item, and put it in next row? ( Is there any way that when a configurable product will be ordered no second row will be added ? )
– Aram Kocharyan
May 7 '15 at 7:42
Thank you for answer. It mean that each parent(up) row of simple product is configurable item ? ( In case that we ordered configurable product ) First I need to get product data from configurable item, and put it in next row? ( Is there any way that when a configurable product will be ordered no second row will be added ? )
– Aram Kocharyan
May 7 '15 at 7:42
may use getAllVisibleItems() instead getAllItems() better idea
– Amit Bera♦
May 7 '15 at 7:49
may use getAllVisibleItems() instead getAllItems() better idea
– Amit Bera♦
May 7 '15 at 7:49
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%2f66982%2fget-configurable-product-price-from-simple-product-in-magento-order%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