Customers want to do exchanges all the time, but currently the POS does not directly support making exchanges on a single order. I have come up with a method that works, is kind of a pain to set up, and only works on the POS (as far as I know).
Now that we have user choice for club orders, we have members that expect to be able to change what they are getting. Pickup customers are so notorious for wanting to change their order when they pick up that I have given up on asking for changes in advance.
On the POS you can define products that have a negative price. What I did was create a set of products - just regular Products, they don’t have to be Wine - and set them to the negative value of the club price of the corresponding wine. I appended “sub” to the wine SKU to make the substitute SKU, to make it easier to keep track of them.
So for example our 2014 Tempranillo has a SKU “TE14” and costs $22, club price with discount is $17.60. I created another product with SKU “subTE14” and a price set to -$17.60 or ($17.60) if you prefer.
If your member subs a lower price wine for a higher price wine, you’ll get a negative total. We try to get them to make it positive, but it turns out you can run a cash transaction and give them cash back. We try to avoid this of course.
Also note that this will screw up your inventory. By making the sub SKU match the wine SKU you can at least gather them up and do one inventory upload every so often to fix it.
Hope this helps until we can get a general solution.