I've successfully bought and used HAL gift cards in the past. The HAL website says "Gift card funds are in US Dollars and can be applied to bookings in US Dollars and any pre-cruise or onboard purchase."
Pay attention to the word "any" in the quoted sentence. After a frustrating hour, I found out this is not true. I calculated I needed a gift card for $152.95 to pay for a shorex and 2 transfers. I put all 3 items in my cart and entered the gift card number and PIN. It subtracted $99.95 for the shorex, but left a balance due of $53 for the transfers. When I re-entered the card # and PIN, it said I already used the card. Checked the balance and it said there was $53 remaining, the amt. I needed to pay for the transfers.
I thought maybe it didn't like me paying for 2 different things - a shorex and transfers - in one transaction, so I removed the transfers and it allowed me to complete the shorex purchase. I put the 2 transfers back in the cart and discovered something. It didn't give me the option of paying with a gift card, only a debit or credit card. I wonder if this has something to do with the vendors that supply the transfer services?
I'll take the gift card with the $53 balance on it with me on the cruise and have it applied to my onboard account. Have you ever done this? I did on my last cruise and it took an act of both Houses of Congress as well as the Canadian Parliament to get it applied.