Merx – Plugin to create online shops with Kirby 3

One day I recklessly said “building online shops couldn’t be that difficult” (Everyone laughed, because they knew). However the agency I’m working for gave me the opportunity to build an online shop with Kirby 3.

Years Months later I came back with a Kirby plugin, which I want to share with you:

I/we would be more than happy to hear what you think about it. If you have any questions or feature request please feel free to post them here in the forum or, if you prefer, you can send me a mail.


Thanks, Tobias! This looks like a great start. How customizable are the product options? For example, is it possible to add shipping and inventory to a product?

A couple of more advanced feature requests: digital product downloads and country-specific shipping prices.

Thanks for your reply.

Shipping costs are not part of this plugin. However, the plugin is meant to be extensible, so adding shipping costs, inventory and digital product donwload should definitely be possible – and documented in the Cookbooks.

Let me think about it and I’ll write cookbook recipes for these things.

I’m not sure if product options are possible with the current state of the plugin, if not it definitely will be added in a future release of Merx.

1 Like

@brooklet here is a cookbook including the source code of a working example.

Stock Management – Merx Cookbook

1 Like

Great! I’ll definitely be keeping an eye on this and plan to give it a try.

Digital Product Downloads

After the payment the user is sent to a unique order page (e.g. where you can offer a unique download link (e.g. And/or you can sent a mail with the unique download.


If you think shipping as an own product you can create a shipping “product” and add this “product” to the cart. Maybe this is not the ideal solutions but it works for now. If you think this is too shaky and unintuitive we can think of another solution for the shipping problem. We are open for your feedback.

Product Variants

Product Variants – Cookbook


The shipping is a really tricky thing. It would be ideal to have though, because this is why my paypal-Buttons are always coming short.

I think, what could work would be a shipping per product in 3 categories: domestic, continent, worldwide.
This could be defined as a general shipping somewhere and overwritten for each product if necessary.

The only thing i can’t really get my head around is a clever way of bundling products into one shipping. maybe there could be a way to define discounts when certain combined shipping costs are reached.

I’m really interested in how Merx will develop over time, it looks like a great plugin already.
To have a elegant way of adding shipping would be definately essential for me :slight_smile:

The plugin looks great, but I also think that a country-specific shipping option is crucial for every online shop.

Thanks for your feedback @possible_books and @img2001.
We will think about a solution for shipping costs that is flexible enough to meet all requirements. But this might take some time, because we want to be careful with such things in order to do it right.

As far as I can see, we need to find a solution for these cases:

  • Shipping costs per product depending on country, postal code, Shipping Service Provider
  • Shipping costs per order depending on country, postal code, Shipping Service Provider
  • Free shipping when cart sum is over $ XXX
  • Free shipping when cart contains X items
  • Free “shipping” for people who pick up the order in the shop

I can think of another one. If its a store that sells Physical books and E-Books for example, you don’t want the digital products counting against the free shipping for X amount of products, in case someone has both types of product in their basket, or against the free shipping for £xxx purchase.

Hi Tobias,
i’d be happy to beta-test :slight_smile:

At the moment, a definition of item / country would be ideal, and if this could be simplified to regions even better.

From there, it can be optional as complicated as people want it. Me personally wouldn’t want to define specific shippings based on Provider / Country / Postal Code. Just Country (or region) would be enough :slight_smile:

But if you want to differentiate providers: In most usecases this would mean Normal shipping versus Overnight.

Anyways, please please let us know here when you made progress in that area.

Hi @tobiasfabian I’m trying Merx, and so far it looks really good! But I’m having a little problem, I used as starting point files from the babyreport demo site. In localhost everyting is working fine, but in my my dev server I get an Unknown Server Error. when I try to add a product to the cart. I think it can be related with AJAX?

In web inspector I get the following.

URL solicitada:http://myurl/shop-api/add-to-cart
Método solicitado:POST
Dirección remota:
Código de estado: 404

SyntaxError: "JSON.parse: unexpected character at line 1 column 1 of the JSON data"

Thanks in advance

Hi @guidoferreyra.
Thanks for giving Merx a chance.

You should have a look at the response body of http://myurl/shop-api/add-to-cart. There should be more information about what’s going wrong.

@possible_books @jimbobrjames @img2001

We pre-released Merx 1.1.0 today.

We added a cart hook which enables you to add a Shipping Product to your cart. Read more about that in the Shipping Costs and Discounts Cookbook

I’m curious what you’ll think about it.