Hey @InvertedIntrovert456
The event.extra.checkout_url variable that Klaviyo uses in abandoned checkout flows is a URL that Shopify makes.
The problem is that Shopify has set up their checkout domain as a kind of link on iPhones and Android phones. So if you or your customer has the Shop app on their phone and they click on your checkout link from the email the phone will automatically open the link in the Shop app of the browser. Klaviyo cannot stop this from happening because the URL belongs to Shopify.
my suggestion here to fix this problem would be to replace the checkout URL in your email button with a cart permalink. The cart permalink uses your stores cart path of the checkout domain. This means it will not be intercepted by the Shop app and will open in the browser like it should.
Please try this - replace the URL in your button with this code:
{% with event.extra.line_items as items %}{{ organization.url|trim_slash }}/cart/{% for item in items %}{{ item.variant_id }}:{{ item.quantity|floatformat:'0' }}{% if not forloop.last %},{% endif %}{% endfor %}{% endwith %}?checkout[email]={{ email }}
This code rebuilds the cart from the line items stored on the Checkout Started event and fills in the customers email. So when they click the link they will go to the browser cart with their items ready to go.
One thing to remember is that this method uses the cart path. It relies on the browser remembering what the customer did than a special checkout token that always works. This means if the customer clicks the link on a device than the one they used to shop the cart may not show up.. It does solve the problem of the Shop app intercepting the link for most mobile users who click from the same device.
Let me know if this works and if you have any follow up questions here. I hope this helps
If you are still stuck, feel free to schedule a call with us here - https://flowium.com/lp/klaviyo-agency/
Cheers,
Arpit