I've been referring to these as "Pay Me" cards, since they basically perform the exact opposite duty of a credit card.
Instead of being used to give money, you use them to receive a payment. Hand your card to someone, he scans it with a mobile device, and then transfers coins to your account.
So you'd want a Pay Me QR code posted by the merchant. Scan it with your device, your app feeds BitCoin an address and, ideally, a total cost. It then sends the BTC automatically once you've confirmed the transaction, and once the merchant has gotten sufficient verification from the network the transaction is successfully completed.
More optimally, merchants would generate a unique per-transaction QR code. This would enable correct pricing and easy verification of which transaction it was that had just processed. Per-transaction QRs could be generated on receipt paper (pre-ceipts? QR billing?) or perhaps even just generated on a screen to be scanned with the customer's mobile device.
So what you'd seem to actually want is an app. Easier and more cost-effective than physical materials anyway.
This is exactly what's been implemented on Android.Article: Bitcoin payments go mobile with Bitcoin for Android