Quote Originally Posted by marton_1 View Post
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.