
Originally Posted by
marton_1
OK great, sorry to make work.
You're not making work, you're helping to improve EO.
Look in your store's /admin/edit_orders.php, finding the following code section at around line 388:
Code:
// Handle the case where the product was deleted
// from the store. This should probably never be done.
// Removing the product will cause issues with links
// on invoices (order history) and will not allow the
// price(s) or tax(es) to be recalculated by Zen Cart.
if (!isset($new_product['price'])) {
$new_product['price'] = $old_product['price'];
$new_product['tax'] = $old_product['tax'];
if ($new_product['tax'] > 0) {
// Should match what is set by eo_get_product_taxes()
// When no description is present in the database but
// a tax rate exists on a product.
$new_product['tax_description'] = TEXT_UNKNOWN_TAX_RATE . ' (' . zen_display_tax_value($new_product['tax']) . '%)';
}
$new_product['products_discount_type'] = $old_product['products_discount_type'];
$new_product['products_discount_type_from'] = $old_product['products_discount_type_from'];
$new_product['products_priced_by_attribute'] = $old_product['products_priced_by_attribute'];
$new_product['product_is_free'] = $old_product['product_is_free'];
}
// Adjust the product information based upon the
// data found in update_products
$new_product = array_merge($new_product, $product_update);
and make the change highlighted below:
Code:
// Handle the case where the product was deleted
// from the store. This should probably never be done.
// Removing the product will cause issues with links
// on invoices (order history) and will not allow the
// price(s) or tax(es) to be recalculated by Zen Cart.
if (!isset($new_product['price'])) {
$new_product['price'] = $old_product['price'];
$new_product['tax'] = $old_product['tax'];
if ($new_product['tax'] > 0) {
// Should match what is set by eo_get_product_taxes()
// When no description is present in the database but
// a tax rate exists on a product.
$new_product['tax_description'] = TEXT_UNKNOWN_TAX_RATE . ' (' . zen_display_tax_value($new_product['tax']) . '%)';
}
$new_product['products_discount_type'] = $old_product['products_discount_type'];
$new_product['products_discount_type_from'] = $old_product['products_discount_type_from'];
$new_product['products_priced_by_attribute'] = $old_product['products_priced_by_attribute'];
$new_product['product_is_free'] = $old_product['product_is_free'];
}
// Adjust the product information based upon the
// data found in update_products
$new_product = array_merge($product_update, $new_product);
The issue is that the updated line was resulting in the previous product ($product_update) information (most importantly, the calculated price) was overwriting the newly-calculated price!
I'll get this issue (and the correction) up on the EO GitHub site, noting that the issue has been around since at least v4.1.5! Thanks for the catch.
Bookmarks