Shopkit commerce plugin


The alternative would be a flat structure without a hierarchy if there is absolutely no way to categorize them uniquely. It certainly doesn’t make sense to duplicate content in multiple folders, and it doesn’t make sense to force categorize them in some sort of arbitrary way that is not logical. What sort of products are you talking about?


The products are crystal glassware (wine glasses, vases, etc.). I’m working to create the US version of this site

Each item lives in at least two categories. For example…

Drinkware > Wine Glasses > Wine Master White Wine Glasses


Collections > Drinkware > Wine Glasses > Wine Master White Wine Glasses

Same product found/navigated-to two different ways, through two different categories.

It seems as though I need to store all products in 1 folder, id/tag/categorize them, and use routes to produce the friendly URLs. Now I’m taking less about Shopkit and more about categories here. This post is starting to resurface in my mind. Maybe that’s my ticket to pulling this off. Offering multiple languages not a challenge I have to overcome.


I’d still put them into the two main categories Drinkware and Homeware (and their subcategories, and then add additional categories/tags for the collections. I wine glass is a wine glass after all, no matter where you put it.


Thanks for your input.


*whispers* There’s an alpha dev preview of Shopkit v2.0 available now.

If you enjoy the thrill of testing an unstable release and reporting bugs, this is for you!

This is also your last chance to ask for new features that might – might – just make it into the final release.

Please file issues on GitHub, message me on this forum, or email if you find any bugs. I am also very interested to hear about how the upgrade process goes for existing Shopkit sites, and especially how it breaks your custom themes :wink:

So far, the changelog looks like this:

- Panel
    - Consolidate Shop options into Site options page
    - New Site options
        - Set default country
        - Show quantity in stock on Product pages
        - Number formatting (decimal and thousands separator)
    - Remove slider option from Product blueprints
    - Replace structure fields with snippetfield plugin (better entry summaries)
    - Replace Visual Markdown with WYSIWYG editor
- Widgets
    - Basic visitor stats (forked from [Fabian Sperrle](
    - Aggregate order stats (abandoned, pending, paid & shipped)
- New cart handling
    - Store cart details in transaction file instead of session variable
    - Rename `order.create` snippet to `order.process`
    - New transaction status: "abandoned"
- New theme
    - Remove the UIKit framework
    - Use normal URLs instead of data-URIs for product photos
    - AJAX quantity selector on Cart page
    - AJAX product slideshow
    - Tag cloud in sidebar
    - Shop by Brand in the sidebar
    - Use radio buttons instead of select box for shipping options on Cart page
    - Remove base colour in colour options (only link and accent colour can be edited from Site options)
    - Product-specific page descriptions for better SEO
    - New frontend admin buttons
- Easier to change default language in `config.php`
- Bug fixes
    - Fix false error message on registration
    - Fix multiple orders bug (#131)
- Performance enhancements
    - Limit use of `index()`
    - Limit re-declaration of `site()` and `page()`
    - Faster font loading
    - Consolidate most logic into `shopkit.php`

I’m all ears! :rabbit:


Shopkit v2.0 beta

After two weeks of bug fixes, I’m confident enough to present the beta of Shopkit v2.0. If you want to test it out, please clone from the dev branch at

v2.0 includes a new payment gateway, Square. I am using it on the Shopkit site now, so if you want to get a feel for the user experience, just try to make a purchase.

Note: Square requires that the currency matches the country where your business is registered. For this reason, Shopkit licenses are now $25 Canadian Dollars instead of $19 USD.

Speaking of the Shopkit website, it is running v2.0 beta so you can explore the new theme. It should be faster, smoother, and easier to modify than before!

And a reminder, if you want to get involved in this beta test, I’ll give you a free license key.

Thanks everyone!


v2.0 is here :cherries:

This is a major release with new features, a new payment gateway, lots of bugfixes, and a brand new theme (and new logo too)!


  • New gateway: Square
  • New widgets: visitor stats and order stats
  • Replace Visual Markdown editor with WYSIWYG editor
  • New theme which removed UIKit framework and reduced total page weight by 75%
  • Performance and usability improvements

Download Shopkit v2.0

View the full changelog here:

This is a big release! Upgrading your existing Shopkit installation will probably cause some merge conflicts. If you only want bugfixes, run git checkout v1-stable to upgrade to v1.1.7 instead. The v1-stable branch will continue getting bugfixes only, and will not be updated to work with Kirby 2.5 when it is eventually released.

Thank you to everyone who helped me during the beta phase!

Now I’m off to a birthday party, so no difficult questions until tomorrow please :stuck_out_tongue_winking_eye:


v2.0.1 is here :bread:

Just a couple small bug fixes, and some form validation messages for the shop/confirm page.

Download it here:


v2.1 is here :lollipop:

Some bug fixes and improved multilanguage features.

Download it here:

  • Moved translation files to site/plugins/shopkit/languages
  • Bug fixes
    • Stop reverting to default language through the checkout process
    • Explicit type casting to prvent PHP warnings
  • Updated dependencies
    • Kirby and Panel (2.5.2)
    • Stripe SDK (v5.1.1)
    • Square SDK (2.0.2)
    • Multiselect field (2.1.1)
    • Color field (now packaged as a plugin)
  • Added local config files for development environments (debugging enabled, whoops disabled)

If you have custom templates or snippets that override Shopkit’s default, you’ll want to make sure to update any calls to l::get($key) or l($key). Shopkit v2.1 now uses a new function, _t($key), to return translated strings.

This new function makes it possible to compartmentalize Shopkit’s language files within the plugin folder. The other benefit is that it allows you to override those defaults by setting your own strings through l::set().

More information:


v2.2 is here :headphones:

Download it here:

  • :zap:️ Update Kirby and Panel to 2.5.5
  • :framed_picture: (image: ) kirbytag generates responsive images
  • New features
    • :high_heel: Product details table: add unlimited key-value pairs to product page
    • :envelope_with_arrow: Add direct download links to customer emails
  • Bug fixes
    • Fix non-numeric value error when calculating cart total
    • Fix reference to $site in page update hook


I have a question: Do you shrink the images on upload ? And if yes where ? I need to show the product images in full width and the quality of them seems to be lowered somewhere.


I think this hook is responsible for the image shrinking:


Yes, @thguenther is right. I should probably include a config setting for changing the maximum image size.


v2.3 is here :space_invader:

Download it here:

This release includes the security update to Kirby 2.5.7, a bunch of bug fixes, and an important long-requested feature: tax-inclusive pricing!

You’ll find this new option under the Shipping & Tax tab of Site Options.

  • Update Kirby and Panel to 2.5.7
  • Update dompdf dependency
  • Improved German translation (danke @andreasfehn)
  • Config option to override maximum image upload size
  • New features
    • Tax-inclusive pricing
    • License keys
    • Add checkbox with validation to terms and conditions notice on the Cart page
    • Allow $0 sale price
    • Skip gateways when cart total is $0
  • Bug fixes
    • Add HTTPS certificate and update IPN endpoints for PayPal
    • Set utf-8 encoding when submitting PayPal IPN call
    • Hide download links unless the transaction is paid or shipped
    • Remove ability to disable the Pay Later gateway (it was causing problems with gift card / discount code purchases)
    • Ensure the transaction file records the correct number of decimal places depending on currency in Site Options
    • Fix duplicate tax summary display issue on Orders page
    • Fix slideshow issues with products in the shop root
    • Ensure long hex codes are in compiled CSS file (short hex codes won’t be picked up by Shopkit’s themeing functions)