Lemon Squeezy Payment Processor
Kickstart your e-commerce journey with Lemon Squeezy integration in Symfony. Build a full checkout system to sell your digital products with a merchant of record to handle global tax compliance with ease
- intermediate
- 241 students
- EN/ES Captions
- EN/ES Script
- Certificate of Completion
Your Guides
About this course
Note
There are several options for MoR service, we’re using Lemon Squeezy in this course, but you can use what we teach here in Paddle, Polar, or any other service you like. We have no preference, we just happened to pick Lemon Squeezy for this course.
Do you have an amazing product that you want to sell to your customers? Are you looking for a payment processor to be a Merchant of Record to handle tax compliance so that you can focus on more revenue? Lemon Squeezy to the rescue! Start selling your digital products fast and easy.
In this tutorial, we'll build a full checkout system for our awesome product and learn all about the next topics:
- Manage your store in the Lemon Squeezy dashboard
- Use Lemon Squeezy storefront to sell products
- Charge a one-time fee with single payments
- Use API to talk to Lemon Squeezy and sell products directly from your website
- Use the
Lemon.js
script to stream the checkout workflow via overlay - Prefill customer's info and add custom data
- Automatic invoice email on successful order
- Link Lemon Squeezy customers to the users in our DB
- Use webhooks to sync data in our database
- Handling the
order_created
webhook event - Live webhook handling with Ngrok
- Test webhooks by simulating their sending with fake data
Finally, bonus - users' card credentials are never sent to our servers, but directly to Lemon Squeezy. That means we do not save sensitive card credentials on our servers. Yay!
Next courses in the Symfony 7: Learn More Tricks section of the Symfony 7 Track!
9 Comments
Hey John!
I'm thrilled to hear it! We're actively working on releasing it, so it should be released in full in a few weeks :)
Cheers!
What is the purpose of limiting PHP in composer.json?
"platform": {
"php": "8.2"
},
The problem is that I don't have all the extensions loaded, including sqlite, so when I run symfony server:start, it fails, but when I run bin/console doctrine:fixture:load, etc. it works fine (obviously, symfony console will fail). And the application works fine in PHP 8.4. So what's the benefit to restriction it to 8.2?
As discussed privately with @Tac-Tacelosky, the issue was using the GitHub repo not the "Download Course Code" zip file we recommend. This code has this restriction removed.

Hey @Tac-Tacelosky
That's a good question. It is useful to force Composer to install packages compatible with that PHP version, which brings stability to the project. You can try pumping it up to version 8.4, it will likely work, but there may be some incompatible packages - you could remove it as well
Cheers!
I understand, but I don't agree that it's valuable to have. I just want to do "composer install" and have it work. Not change my PHP version, or change the code to allow it to run. Especially since it does work with 8.4!
I'd rather have it break (and report the errors) than force me to use a version of PHP that doesn't have all the extensions installed.

Good point! I also think the course code should not come with that version constraint. I'll share your feedback with the team
Thanks!
Hey Skm,
Thanks for your interest in SymfonyCasts tutorials! :)
Cheers!
So excited about this course!
In advance, Thanks heaps for all the effort creating it.