As far as I know, there is no good way to provide the user with a free in-app purchase when the purchase is not yet free (for example, through a coupon).
Some possible ways to do this are discussed in How to use the paid version of my application as a “key” for the free version?
One way to do this is to have a code that checks for the presence of "obsolete users" (those who have an old paid application installed), and set a preference on their device that designates them as paid applications.
You will have problems if the user switches the phones or removes them and then closes your application again. You can get around this by adding a second set of products for applications for obsolete users, which are free, but are offered only to those who have the old application installed. After they buy the free versions, they can remove the old application. Then, when you check the purchased products, you check either the legacy or the new product.
Tanis.7x
source share