Has anyone used Kirby to create a webshop?

As the title says, has anyone created a webshop with Kirby?
Or some sort of buy option for things, I don’t like to use 3rd party shops, like FastSpring etc.

Not completely sure how I would set it up, structure wise, so if anyone could help me out in any way, I’d highly appreciate it :sunglasses:

Have you seen this post Commerce Plugin - interest?

Although it seems that the project itself is dead (last development 2 month ago) there are also some mentions of other possible solutions.

As @texnixe said, there’s some alternatives listed in that thread. In particular, I signed up for Snipcart just to play with and it integrated just fine with Kirby.

I had a close look at both solutions mentioned in the “e-commerce plugin” thread. They are:

Both look like very interesting, simple solutions that would indeed integrate well with Kirby. Unfortunately, at first glance they seem quite lacking in some features that are vital for my use-cases - for instance:

  • neither one seems to provide proper support for gift certificates
  • both seem to support only US/North American shipping carriers - my customers are all located in Australia, and there doesn’t seem to be a way to get Australia Post shipping costs with either solution

Are there any other options that more experienced Kirby developers might have tried? Any suggestions would be greatly appreciated.

I haven’t had a play with either SnipCart or FoxyCart, so I don’t know if this is avoidable, but seeing that tge price is juat in the tag, a user could easily change it for their own good and pay a lower price

So if it’s a digital good, when they payment goes through, they get access to it
I might be wrong, as I haven’t played with it.
And, I’m not interested in using a 3rd party system, so I’ll just have to keep an eye out for that thread and see the dev progress, and maybe start my own little shop thingy

a shop is quite easy, depending on your needs though…

the very easiest scenario is having a subpage filled with fields for price, product name, descriptions etc. and according to the informations given you can generate a paypal button. as there’s the option for success url etc. you can simply add a thankyou page.

for more advanced mechism you can include paypals IPN, or use another payment processor such as saferpay ( from sixpayments (more used in switzerland)).

if you have started with something like that you can always iterate to better versions of your own shop such as including sessions for having a cart-like system.

if you were not to use a payment processor, you could just send the informations via email or save it in a file.


with having unlockable content when purchasing, you might want to rely on a payment processor though.

there’s predefined functions for login/logout etc. and your products can be saved in a user account file ( /site/account/userfile.php )

you can call those saved variables simply by $user->field() and provide the download link. ( downloads are blocked by htaccess by default for example )

Very Basic example: Listing all purchases by the userfield “produkte”

<?php $produkte = str::split($user->produkte(), ',') ?>
    <?php if(count($produkte) == "0"): ?>
    <tr><td>Keine digitale Produkte erworben</td></tr>
    <?php endif ?>
    <?php foreach($produkte as $produkt):?>
            <th><?php echo $pages->find('produkte/'.$produkt)->title() ?></th> <th><a href="<?php echo $pages->find('produkte/'.$produkt)->url() ?>/p:download"> Download </a></th>
    <?php endforeach ?>

When accessing the file there’s a mechanism to check if the download is really available on the logged in user:

<?php if($user = $site->user()): ?>
<?php if(param('p') == 'download'): ?>
        <?php $produkte = str::split($user->produkte(), ',') ?>
            <?php foreach($produkte as $download): ?>
                <?php if($download == $page->uid()):?>
                    <?php $file= $page->file('produkt.zip');

@tnViking: different carts use different techniques to ensure some level of safety against tampering. Snipcart, for instance, actually checks the original product page in your website for every item in the submitted cart, to check that the prices match. If the prices are different, the transaction is not accepted.

@carstengrimm: implementing a shopping cart is not a trivial task, and unfortunately will go way beyond simply processing payments through a provider like PayPal. First, in general, you will have to deal with multiple payment processors, as not everyone likes or uses PayPal. In places like Poland, PayPal is basically not used at all, and in many other places there are much cheaper alternatives (PayPal is actually quite expensive for the merchant). Then there is the shipping… Customers want to be able to get a shipping quote during checkout, and depending on where you are in the world, there may be multiple carriers that provide pricing. And then there are many other features that your customer will want, for sure, and which have to be implemented at the cart level, such as: discount coupons, gift certificates (they are both a product, as well as a payment method), customer accounts and order history (the merchant should be able to see the order history for a certain customer), and some way to mail out their customers (or integration with a service like MailChimp).

I have just received an absolutely stellar response from the Snipcart guys. After receiving my inquiry, they took the trouble to go look at the Australia Post online API. They wrote back to tell me that they found the API easy and well-documented, and are going to include support for Australia Post in the roadmap. They also state that there is a way to implement gift certificates in Snipcart, and they will be writing a blog post about it, as a guide.

This sounds like a very approachable developer, and I’m excited to perhaps have found a product that will integrate easily with Kirby!

If you have had any experience with Snipcart, please give us some feedback.

thanks for your input. OP did not mention a shopping cart as a must have. paypal was just an example, i know there are several payment processors. personally i have been using paypal and saferpay (by sixpayments) and researched for other payment processors like stripe. Just for myself paypal being a good choice locally as most people use it by default. As far from what I have seen the rates for stripe were about 5,5% per transaction while paypal is only 2,9 to 3,4 % +15c ( no guarantee for actual pricing quotes ) paypal and saferpay offer several API to ensure payments are processed correctly to the right user, with the right price. On manual payment processing paypal is very easy, even for beginners to implement. my solution was by no means a complete tutorial but just a push into a direction. There are full fledged shops throughout where some of them are opensource and free.

It’s all really up to what OP wants to archive. What he wants to sell. In the end he has to decide whats the right thing for his needs.

Charles from Snipcart here, first, thanks for the great comments :slight_smile: Just wanted to let you guys know that we now support Australia Post out of the box, it can be activated in the dashboard.

With Snipcart it is actually possible. It requires some coding but we wrote a blog post about it. Maybe it can help!

We plan to support it out of the box in the next couple of months, but for now it can be done using our API and Webhooks.


Hey guys, glad to see e-commerce options & ideas are bubbling up inside the Kirby community. We took some time to craft a fun Kirby-Snipcart integration on our blog recently:

Integrating Snipcart with Kirby CMS to Enable E-Commerce

Thought some of you might enjoy, so there it is! Feel free to let us know if you have any questions / comments!