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:
merx.wagnerwagner.de

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.

23 Likes

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.

1 Like

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. my-digital-product.com/orders/olcubwajdrqu4fcy) where you can offer a unique download link (e.g. my-digital-product.com/download/olcubwajdrqu4fcy). And/or you can sent a mail with the unique download.

Shipping

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

2 Likes

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.

1 Like

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.

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

formBuy.js:30:15
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.

1 Like

Working on implementing a ticket purchase system for a theatre production, and have tested Merx locally so far, works great. :wink:

Just uploaded to my test site, to test stripe payments. Unfortunately couldn’t complete test transaction, due to SCA requirements in Europe.

Couldn’t find anything on your plugin site, but do you have any thoughts?

Hi Oliver,

Merx’ credit-card payment method relies on Stripe Charges which unfortunately doesn’t support SCA.

If you need a fast solution you can create a Custom Payment Gateway with Stripe Payment Intents.

I’ll take a closer look into this within in the next few weeks.

1 Like

Hi @Oliver,

I’ve pre-released Merx 1.2 which integrates support for Stripe Payment Intents. Hope this solves your issues.

I’ve wrote a litte cookbook: Checkout with Stripe’s Payment Intents

Looking forward to see how you’ll integrate this on your shop.

3 Likes

Hello Tobias,
i am trying to understand how Merx works, but i have a hard time to wrap my head around it. The documentation on your site seems to need a lot of preconceptions on how for example a “put-in-cart-process” works.
Is there a very basic but complete example of your shop, in which i have one product that i can put into a cart?
I tried around with the example you offer (https://www.babyreport.de/) but it is impossible for me to work back this already extremely complicated setup (5 different config files) to just make a simple paypal sandbox transaction.
I don’t want to criticize your example, it just seems to only be understandable for an very experienced programmer. I was hoping that the Merx-Shop would be something i could handle :slight_smile:

1 Like

Thank you Matthias, I appreciate your feedback.

Since you are not the only one who came up with such a request, I took the time and created a very simple example.

Source Code

Live Example
plainkit-merx.wagnerwagner.de

4 Likes

Hi Tobias,
this plugin looks promising. I also don’t understand how the cart really works after I put a product into it. I’d expect a preview of the cart in a modal with the choice to proceed checkout or to continue shopping.
If i continue shopping, there is a cart icon on my page that shows current subtotal or the amount of products in it. Am I missing something or do I have to develop these things on my own?
Also: Are the cart informations stored in a cookie until I go to checkout?