Once an order is complete the invoice must reflect the prices at the time of the order. For example I have a discount by role. A user has placed an order that was not entitled to a discount. If I (as a store admin) pick up the invoice I see different prices depending on whether I have the appropriate role or not. A temporary administrative fix is to make sure that no store admin accounts have any roles that are affected by discounts.

No discount module can get this right because the order database doesn't have the right fields to support finalizing and order.

Comments

tr’s picture

Status: Active » Postponed (maintainer needs more info)

Going to need more information - discounts are not part of core, nor is role-based pricing. The prices at the time of the order *are* stored in the order table. So, what is the "fundamental flaw" in core, and what are the "right fields" that aren't stored in the order database?

longwave’s picture

Status: Postponed (maintainer needs more info) » Closed (duplicate)

The price alterer code was supposed to "lock in" the price at the time of order, but this doesn't work as intended.

See #854638: order products price should locked in altered price