Skip to main content
Drip has built-in abandoned cart workflows for Shopify. Checkout Links makes them better by adding tiered promotions based on cart value. Drip’s default abandoned cart link takes customers back to their Shopify checkout - that’s it. With Checkout Links, you can:
  • Offer tiered discounts - 10% off for carts over $50, 15% for carts over $100
  • Add free shipping thresholds - Free shipping on orders over $75
  • Include free gifts - Bonus item for high-value carts
  • Combine incentives - Stack discounts, free shipping, and gifts based on cart value

Quick Setup

Add the ?li= parameter with this Drip variable to load cart items:
{% for item in event.items %}{{ item.product_id }},{{ item.quantity }}{% unless forloop.last %}:{% endunless %}{% endfor %}
Your final link:
https://yourstore.com/abandoned-cart?li={% for item in event.items %}{{ item.product_id }},{{ item.quantity }}{% unless forloop.last %}:{% endunless %}{% endfor %}
Drip uses standard Liquid syntax. The field item.product_id should contain the Shopify variant ID when synced from Shopify cart events. If your products have multiple variants, test to confirm the correct IDs are being passed. See the troubleshooting section below if cart items aren’t loading correctly.

1

Create a new link

Go to Checkout Links and click Create Link.
2

Name your link

Give it a descriptive name like “Abandoned Cart - Drip” so you can easily identify it later.
3

Set a custom slug

Enter a custom slug such as abandoned-cart or recover. This will be part of your URL.
4

Enable Dynamic mode

Toggle on Dynamic to enable dynamic URL parameters. This allows the link to accept cart items via the ?li= parameter.
Your link is now configured to load cart contents from Drip’s event data.

Add Promotions (Optional)

With tiered promotions, you can offer different incentives based on cart value:
Cart TotalOffer
Up to $50Free shipping
$50 – $150Free shipping + 10% off
$150+Free shipping + 10% off + free gift
Set a maximum limit if you don’t want to discount high-value carts. This protects your margins on large orders.
Combine with Pre-checkout extensions to let customers modify their cart before checkout - great for fashion brands where customers might need to change sizes, or for adding optional upsells.
1

Save your link

Click Save to create your abandonment link.
2

Copy the URL

Copy the link URL. It will look something like:
https://yourstore.com/abandoned-cart
You’ll add the ?li= parameter with Drip variables in the next step.
1

Open your Cart Abandonment workflow

In Drip, navigate to Automations → Workflows and find your Shopify Cart Abandonment workflow. If you don’t have one, create a new workflow using Drip’s guided cart abandonment setup.
2

Edit your email

Open the email in your cart abandonment workflow that you want to add the recovery link to.
3

Find your call-to-action button

Locate the CTA button (e.g., “Complete your order” or “Finish checkout”).
4

Replace the link URL

Replace the current link (usually {{ event.abandoned_checkout_url }} or {{ event.cart_url }}) with your Checkout Links URL.
5

Add the Drip variable

Add ?li= to your URL followed by this Drip Liquid variable:
{% for item in event.items %}{{ item.product_id }},{{ item.quantity }}{% unless forloop.last %}:{% endunless %}{% endfor %}
Your final link will look like:
https://yourstore.com/abandoned-cart?li={% for item in event.items %}{{ item.product_id }},{{ item.quantity }}{% unless forloop.last %}:{% endunless %}{% endfor %}
Copy the Liquid template exactly as shown. Any missing characters — especially the colon separator between items — will prevent the cart from loading correctly.

Troubleshooting

Cart items not loading

If clicking the link shows an empty cart, the issue is likely with field names in Drip’s event data. To inspect what fields are available:
  1. In your Drip email template, temporarily add this debug line:
    {{ event.items | json }}
    
  2. Trigger a test abandoned cart event
  3. Send yourself the test email and check the raw JSON output
  4. Look for the field that contains the Shopify variant ID (it may be variant_id, product_id, or another name)
  5. Update the template to use the correct field name

Wrong products loading

If the cart loads but with incorrect products, product_id in Drip may be mapping to Shopify’s parent product ID rather than the specific variant ID. In this case:
  1. Check the JSON output (see above) for a variant_id field
  2. Replace item.product_id with item.variant_id in the template:
    {% for item in event.items %}{{ item.variant_id }},{{ item.quantity }}{% unless forloop.last %}:{% endunless %}{% endfor %}
    

Test Your Workflow

1

Save your template

Save your changes in Drip.
2

Trigger an abandoned cart

Add items to your cart in your Shopify store and leave without completing checkout. Wait for Drip’s cart abandonment trigger to fire (default is usually 1 hour).
3

Check the email

Open the abandoned cart email you receive.
4

Click the CTA button

Click your call-to-action button.
5

Verify cart contents

Confirm that the abandoned cart items are loaded into checkout with your promotions applied. Check that product variants (size, color, etc.) are correct.