From an ethical and business reputation standpoint, I think the right thing to do would be to refund the entire BTC balance (if they never sold the BTC) or refund the USD equivalent, shipping including, of the BTC at the time that the order was made (if they did sell the BTC). Just my opinion, but I would find either of these to be an acceptable resolution, and I believe OP would as well.
If a customer makes an order, and it can't be shipped for whatever reason, then you contact the customer immediately and come to an agreement, then public shitstorms like these will be avoided.