We are often asked for a report that lists all payments and the items purchased with those payments. That is not possible, because there is not an interface in Aluvii to apply payments to specific items in a shopping cart. Here are some scenarios that demonstrate why allocating payments to specific items purchased is extremely complicated if not impossible:
A split payment is when a single shopping cart is paid for using more than one payment type.
Example: The shopping cart has a $20 admission ticket and a $5 locker. There is $2.50 in sales tax. The customer puts $10 on a gift card, pays $7 in cash, and $10.50 on a credit card.
If nothing were to change with this cart or the payments, we could choose to allocate the payment types across the items in the cart pro rata or we could apply the first payment type to the first product in the cart until it's used up and then start with the second payment type for the rest of that product until it spills over into the next product, etc. This scenario could be handled if we decided on an allocation method.
Confusing scenarios can result, however. For example, suppose you want a report that also shows quantities of products sold. In the above scenario, the report would show that $7.27 was paid on a gift card to purchase 0.36 units of an admission ticket.
Another example is if the admission ticket in the above transaction were later refunded and $10 was in the form of a gift card and $10 in the form of a credit card, the report would show that $0 in gift cards ($10 in minus $10 refunded) sold -0.14 units of an admission ticket (0.36 of an admission ticket sold with gift card minus 0.5 of an admission ticket refunded with gift card) and $0.50 in credit cards ($10.50 in minus $10 refunded) sold -.12 units of an admission ticket (0.38 of an admission ticket sold with credit card minus 0.5 of an admission ticket refunded with gift card) and $7 in cash sold 0.25 of an admission ticket.
Anyone who followed that example also noticed that there is a rounding issue. Only .99 of the admission ticket was refunded. Rounding issues also pose a complexity. All money transactions must be rounded to two decimals, but some of these allocations require rounding to four or more digits to not have rounding errors.
Events are a bit unique, because more often than not, the booking is booked (shopping cart filled) days, weeks, or months before the party actually occurs. Additionally, separate payments are taken over multiple days, weeks, or months. When an event is booked, no sale is yet recorded or recognized. The sale is recorded or recognized as of the end date/time of the event.
Between the time the party is booked, the shopping cart for the booking often changes multiple times. How should the deposit be allocated across the items in the shopping cart?
Day 0: The booking has 3 pizzas at $10 each, 2 pitchers of root beer at $5 each, and 10 party attendees at $15 each for a subtotal of $190. The tax is currently calculated at $19. A $100 deposit is received. That $100 deposit could be allocated across the items in the cart as described in the section on split payments.
Day 3: Three days later, the customer calls in and adds a root beer pitcher and 2 more party attendees. They also remove 1 pizza. The total for the booking is now $215 and tax is $21.50. The payment from three days ago needs to be reallocated. The problem is that the accountant already booked the payment, and she doesn't know to go back and reallocate the change in Quickbooks.
Day 5: Two days later, the customer calls in and says they recently saw a promotion where birthdays are 10% off. He wants that discount. You honor the discount. How is that change applied to the original deposit payment?
These types of scenarios make it impossible to tie payments to specific items in an event shopping cart without historical information changing.
Any scenario where a payment is taken on a shopping cart and that shopping cart changes without a money exchange causes issues. Another example is exchanges of items.
Example: A $10 adult admission is sold. The customer comes back and wants to exchange it for two $5 child admissions. No money changes hands on this event. Should the original payment be adjusted? What if it was a prepaid ticket purchased 10 days ago and the journal entry has already been made by the accountant?
Scenarios where a payment has been received and the shopping cart subsequently changes without the exchange of money results in a scenario that is impossible to tie payments to specific items in the shopping cart without changing historical information. Other scenarios that could, in theory work, can be too complex to report on or rounding errors resulting in more questions than answers. For this reason, the double entry method of accounting is used to account for sales and payments. The sales (credits) are recorded and reported completely separate from the payments (debits).