[Disclaimer: this writing is based on nopCommerce 1.90]
nopCommerce by default supports gift card (both physical and virtual), where you can specify a product variant to be a gift card, and hence allow the gift card to be purchased. This approach is intuitive and doesn’t create a separate purchasing mechanism in the code, which is really smart.
Here’s the problem: Different physical gift cards might look different so we can use different products or product variants to present them, but with virtual gift card the only difference is really the price. If we wish to have just one-page for gift card and allow the customers to just select predefined prices it doesn’t have such dedicated page out-of-the-box. Basically we want it to have something like this: http://www.vivre.com/content/gift-card
To achieve this, we will have a gift card product with multiple product variants, where each product variant is a gift card and will have a different price.