A client (Hewitt) reported incomplete invoices displaying on their production website. We can easily repro the problem on https://qa-walleye.dw-demo2.com (9.10.11) with the attached XML.
The XML includes 11 lines, all of which are valid:
- 5 item lines, two pairs of which share the same ProductNumber, Qty, and other details but have unique OrderLineIds
- 5 tax lines, one per item
- 1 "tax over fees" line
- When two orderlines share the same ProductNumber and Qty, one of the orderlines is deleted despite it having a unique OrderLineId
- Sign into the backend of https://qa-walleye.dw-demo2.com/Admin/access/default.aspx
- Go to Settings > Integration > Scheduled tasks
- Turn off the Import Invoices job
- Run the "Import Invoices - Invoice Bug Repro" job - this pulls data for a specific test case which the client reported
- Go to SQL Firehose and run this query:
select * from EcomOrderLines where OrderLineOrderId = '175066' order by OrderLineId
- Confirm there are 5 item lines and 6 tax lines (5 item tax lines+ 1 fee tax line)
- Confirm that each item line has a unique OrderLineId
- Go to Ecommerce > Ledger > All ledgers
- Search for OrderId 175066
- Confirm the list of items includes only 3 items and 6 tax lines
- Return to SQL Firehose to rerun the query above
- Confirm there are only 3 item lines and 6 tax lines now - 2 item line records have been deleted
- Confirm the quantity for each line is 1 - the quantity from the deleted orderlines has not been added to the remaining orderlines
The above repro steps behaved identically on:
- qa-walleye after downgrading to 9.10.4
- https://dev-rapidrizzo34.mydwsite1.com/ (9.10.9)
- The behavior was consistent over about a dozen repro attempts
- One exception: in one instance, we viewed the ledger and found that only one line had been deleted. SQL Firehose confirmed that. When we viewed the ledger a second time, both lines had been deleted.
- The behavior was consistent whether we imported via a scheduled task or from a file using the Import Invoice mapping Data Integration job.
- We tried two Data Integration jobs - one using the EcomProvider, the other using the DynamicwebProvider
Let me know if I can provide any other details. Thanks for your help!