Right products.product_purchase_type is not mysql-enforced-unique (as it allows Null), but among values specified in the table, it is 'unique'; product_key is not.
Think of it this way: There are 3 products. (1,2,4, bitwise).
A person could go to the website, and purchase products 1&2 as a bundle. This would have product_purchase_type of say.. 6 (which comes from the code as the product ID passed into clickbank's service for payment), and product_key of 3 (001 + 010).
However, if said person clicked on a link in the email newsletter, they still might be buying products 1&2 as a bundle. This time, product_purchase_type of 9, and product_key of 3.
Again, not my table design, i'm just inheriting it.