Here's a diagram of the system:
The first point is that the items are not sold directly. Rather containers containing a random assortment of items are sold. In Hearthstone, it's card packs. In Overwatch, it's loot boxes.
You can get the containers either through time and gameplay (levels in Overwatch, dailies in Hearthstone) or by spending real currency. This exact ratio of time to real currency can be changed. In Hearthstone, since it is fully F2P, it's weighted towards real currency. Overwatch is B2P, so it appears that levels through gameplay will be the main method.
The container contains several times, with pre-determined rarity. This is pretty much any collectible card pack system.
The most interesting part of Blizzard's model is how duplicates are handled. If you get duplicate items, you can convert them to a game currency (credits in Hearthstone, dust in Overwatch). You can then use the game currency to create specific items.
One key point is that you cannot buy specific items directly. Instead you have to go through the entire chain, and there is effectively loss when going from the random item to the specific item. You might have to get five random rares to purchase once specific rare.
There's also no secondary market involved. SWTOR and Magic:the Gathering has much the same system for the first part, but after you get the random items, you can buy and sell them on a secondary market. However, going through the secondary market means that prices vary with supply and demand. You can have two rares: one highly-sought and worth a large amount; and the other disdained, and can be picked up cheaply.
In contrast, in the Blizzard model, each rare is be broken down into the same amount of game currency, and each rare also costs the same amount of game currency to get directly. This maintains a minimum level of value for each item.
This system also gives Blizzard a lot of knobs to tweak:
- The cost of a container in real currency
- The cost of a container in time
- The number and distribution of random items in a container
- The amount of game currency generated by an converted item
- The amount of game currency needed to purchase a specific item
It also has a minimum number of products available to purchase, making the store very simple. It's also relatively fair, combining both the fun and excitement of opening random packs with a path to obtaining specific desired items for a known and expected price.