Scenario: A Sales order is Created-Scheduled-Releases-Shipped-Invoiced(Either Order or Shipment Invoicing), Item theft reported, Customer care gave entire line total as a discount. Later item was identified at a Carrier location, and processed as a return for the same item.
#1: Say Order has 2 lines,
* HeaderCharge&Tax for Shipping is USD5 and USD0.5 respectively.
* Line #1 1QTY, UnitPrice is USD100, and Tax(Price) is USD10.
* Line #2 1QTY, UnitPrice is USD50, and Tax(Price) is USD5.
* The invoiced total is USD170.50.
#2: Customer calls Customer Care, and complains that the Line #2 item was never received in the package:
At this stage, CSR doesn't know the state of the Item where it is.
So he will appease customer by giving LineCharge(DISCOUNT of USD55: ChargeCategory_ADJUSTMENT, ChargeName THEFT) for the entire line Total(LineTotalWithTax of USD55). This results in an adjustment invoice to refund Line#2 total USD55.
#3: CSR asks for a probe at Warehouse then at Carrier.
#4) Say an item is identified at Carrier location, Later when received at the warehouse this item will be processed as a Return against the actual Sales Order's Line#2.
* Return Order was created with the following values:
Line#2 1QTY, UnitPrice is USD50, Tax(Price) is USD5, and LineCharge(THEFT DISCOUNT) is USD55.
a) Return Order and Line total is ZERO dollars.
b) Return is Received and Invoiced.
On Return Order Invoicing,
Expected: It should generate an invoice with order/line total as ZERO dollars by including all the prices/Taxes/Charges.
Actual: Instead OOTB it is reducing the existing LineCharge(THEFT DISCOUNT) from USD55 to USD50(which is equal to LineTotalWithoutTax). As a result, the invoice is being generated to refund the LineTax of USD5.
This is what we understand from L3, "OOTB there is a validation internally to avoid Negative invoice totals, the product is picking up the LineCharge(Discount) which is GREATER than LineTotalWithoutTax and reducing the discount to make it equal to <LineTotalWithoutTax>. As a result, the invoice total is being USD5 in the above scenario, and we end up giving an excess refund."
Required Enhancement: We need to bypass the negative invoice total validation and consider Tax as well for Discounting. This is needed in 9.5 and future releases.
Note:- We understand OOTB by default there is no validation at the time of API<changeOrder> call while applying LineCharge(Discount), on how much MAX we can give a discount on a given line (or) order.
In that case, clients are forced to validate the max-limit of how much to refund for that line or order as part of their Customer Care/Store UI implementations.
On Order Invoicing Instead of automatically pick LineCharge(Discount which is more than the LinePriceWithoutTax) and reduce it to the Orderline's LineTotalWithoutTax. We should never update automatically to just go ahead with invoice creation, and to avoid Negative invoice totals.
FYR, Product case: TS001595797 in which we got a pre-release to bypass this behavior.
Please let us know a date for the fix.
Do we have any update on this?
We are waiting for a permanent fix in the product.
It is already completing 1 year of waiting on this since we got a fix.
We have got a pre-release for this as part of the PMRs. And we are waiting for a permanent fix in the product.