Hi @User 1990
No problem. Consent can get a bit complicated!
Usually, to ensure you only send emails to contacts who have opted-in, your original segment definition of 'Accepts Marketing is true' OR 'can receive email marketing' covers all bases for Shopify/Klaviyo.
You are updating the value of 'Accepts Marketing' on your form - I've never understood why Klaviyo has 'Accepts Marketing' as a user-editable property as it’s being updated by the Shopify integration.
To explain...
When a Klaviyo form is submitted, the contact's email status is set to 'Subscribed'.
If the Shopify/Klaviyo bi-direction sync is enabled, and depending on its configuration, the contact’s 'Accepts Marketing' is set to true in Klaviyo and pushed back to Shopify - that could be updating an existing Shopify contact or creating a new one (optional in sync set-up). Opt-in status will be in sync across both platforms.
Consider if that same ‘subscribed’ contact enters your competition and chooses NOT to opt-in with your custom property buttons. You now have contact with 'Accepts Marketing = false' and Klaviyo email status of 'Subscribed' - which is correct? They haven't unsubscribed; they've just chosen not to opt in after having opted in previously. I would say they are still subscribed.
As to your segment issue, is your form's Accepts Marketing custom property set to required? If not, and they don’t choose an option, their Accepts Marketing status won't change - could be true, false, or not set. Or it could be that Shopify is changing their Accepts Marketing status? My head’s spinning 😀
Let me know if this (lengthy) response has helped in any way!
Regards
Andy