How to add a free gift to the cart using a LineItem Script?

Jaye-SSH
Tourist
6 1 0

I am looking to use a LineItem Script to check if a condition is met then if it is, adds an item to the cart. I am getting stuck at creating a new LineItem instance which I can push to cart. I've tried something along the lines of

new_line_item = LineItem.new(<arguments>)

but I can't find any documentation on what to supply as arguments. I have also looked into the .new() function on Variant and Product classes but I can't figure out the correct arguments to build this object either.

The end goal is to add an item to the cart with a 100% discount without using an app.

Thanks,

Jaye

Replies 2 (2)

samthewebb
Shopify Partner
25 3 6

The script editor is primarily used for discounting the existing items in your users cart. It does not have the ability to add new products to cart on its own. You'd need to use JavaScript in your theme to add the product to cart and then use some sort of identifier (maybe a line item property) that when seen by your script will change it to a $0 product. Not the safest thing in the world, but it'll get the job done.

*"not the safest" meaning someone who understands Shopify themes might be able to figure out the line item property and they can use JS in the console to add the product to cart and get it free. So you'll have to setup some strict logic rules in your script to only apply the discount in very specific circumstances if you don't want people to potentially abuse the free product logic.

Sam Webb
https://samthewebb.com
sam@samthewebb.com
Stephen2020
Shopify Partner
19 2 6

I've just implemented something very similar. You can tag the free gift products and check product tags in Shopify Scripts. I.e.: Only give the discount, if the line item property is set and the tag is set. Then it's safe.