A virtual product with a set of amounts; the buyer picks one, adds the recipient and a message. Once the order is paid, the recipient gets the code by email. At checkout a code pays for part or all of an order, over several orders until it is used up. Marketing > Gift Cards lists every card and its balance.
The gift card product page.
What it does
One command creates the product, with its picture
Codes emailed when the invoice is paid
Balance kept across orders, refunds put money back