Hi @Steve0603
A coupon created in Shopify is static: you set the discount parameters and a start date and an end date or set never to expire. Those conditions apply to everyone who receives it, irrespective of when they receive it.
This type of static coupon is useful for a ‘welcome’ flow; one where a contact enters when they subscribe to an introductory discount e.g signing up for your newsletter. A static coupon can be shared but that would encourage sales so usually not an issue. To automatically apply that static coupon from a link in a flow or campaign: mysite.com/discount/WELCOME10 (using my coupon example).
The same static coupon can also be used in event-based flows, for example, abandoned checkouts where the cart link is dynamic. For Shopify, the link would be {{ event.extra.checkout_url }}&discount=WELCOME10
A Shopify coupon created in Klaviyo is dynamic and Klaviyo will generate one that's unique to each recipient. You can set the coupon as active at send-time or on a specific date during creation. You can also set its expiration: never, after a certain number of days/hours after it's been sent, or on a specific date. A dynamic coupon is useful for flows/campaigns where you would not want the coupon to be shared (if it's a bigger discount) and where you want to tie the expiration date to when the contact receives the coupon. For example, VIP flows, win-back flows etc.
For Shopify, the parameter to add to your dynamic urls is: &discount={% coupon_code 'WELCOME10' %} or for static ones: mysite.com/discount/{% coupon_code 'WELCOME10' %}.
If you've created that WELCOME10 coupon in Klaviyo using the prefix 'WELCOME10-' then Klaviyo will insert WELCOME10-XXXXXXXX where the X's are 8 random letters unique to each recipient. That recipient will always receive the same coupon code when the {% coupon_code 'WELCOME10' %} code snippet is included in any campaign or flow.
Does that help?
Regards
Andy