I think regardless of what they refund you in - Bitcoin or USD it is OK as long as the value of the refund is the same as what you originally paid (minus a processing fee if they charge one).
And that's the problem. They choose the option where the value is less, regardless of the exchange rate.
Theres a clear different between pre-orders up thru april that took BTC and said BTC was forwarded BA, and further orders when we switched to Bitpay and Shopify and BTC was then cashed out to USD and sent to BA. Pretty simple.
The arrangement between you and your supplier is irrelevant to the contract between you and your customers. If someone ordered $5,000 worth of merchandise and paid you, you have to refund them the same amount in whatever currency you choose to refund in. Anything else means your "refund" is not really a refund at all.
For the most part the general consensus I have seen is that people should be refunded in the 'currency' / "medium of exchange" that was used to make the purchase. If you give someone 3 chickens for a BTC miner... then its worth 3 chickens. If I give someone 12 pesos... its worth 12 pesos. The relative value of chickens to pesos is irrelevant. If you want to value things in US dollars you should buy from companies that accept US dollars for payment.