How to restrict BOGO or BXGY promo to one use per customer?

We’re running a promo where one free product is offered with the purchase of another specific product. This promo can only be used once per customer (ideally once per household) and this is where I’m running into an issue with the solutions I’ve tried. How do I only allow qualifying customers to add the free item to their cart?

The closest I’ve come to making this work is by having the free qualifying product offered as an upsell item in the checkout using BOGOS app that’s triggered when a qualifying product is in the cart. I’m then using BSure Checkout Rules to validate checkout and block customer from proceeding if product_tag is the BXGY item and the customer has a tag on their account indicating that they’ve redeemed the promo previously. And I’m using Checkout Blocks to add a remove button just on the promo item so that the customer can then remove that item from their checkout to proceed.

The problem with BOGOS is that it shows the upsell irregardless of whether the customer is logged in during checkout. Is there a way to only show an upsell once the customer has entered their shipping info and customer tag validated and if a particular product is in the cart?

1 Like

Ah @christodk , I think the approach you’ve taken is the right one here. Using the checkout validation function to block the cart is a great solution.

I’d suggest to raise this with “BOGOS” app’s support to see if they can customise the popup behavior / allow you to extend the logic of it yourself.

They’ll be the best ones to help in this case.

Or if you’re looking for an alternative that can solve for the same use case (free product add on) when specific conditions are met → we can help implement this easily on our discount app - “Dollarlabs: Ultimate Discounts” which solves for far more complex rules too.

Let me know - happy to assist :heart:

@christodk

Since quite some time has passed since you raised this thread, I’m assuming you’ve already reached at a solution :slightly_smiling_face:

If so - can you please share the same and close this thread out so that others who stumble here might also find value.

Best,