WordPress plugin for WooCommerce custom paintings

2 months ago · views · 3 min read

About the client/business

TablouriColorate is a small business based in Târgu Mureș, Romania, with expertise in custom printing products. They print photos on canvas material and help their customers to create their custom products in the most innovative, simple, and fun way possible.

The problem

After a migration from a custom e-commerce limited platform to WooCommerce, the main challenge was to create a way that the customers can create their custom products while having more options to choose and customize their photos like choosing where to upload the picture from (either device or social media), painting size, finishing, packaging, photo filters, and retouching services. The WooCommerce market was a bit limited in this direction, so the best solution was to implement a custom plugin that allows all of these.

My custom plugin

This is where my custom WordPress plugin takes the stage. An earlier version of it was based on jQuery, but unfortunately, it turned out to be really slow when users were uploading their photos. How many users, and that many photo sizes, so it was a bit frustrating. The next journey was to rewrite this plugin and introduce something new, like a ReactJS interface. Said and done. I have rewritten the plugin and started to develop a ReactJS application. After some magic tricks, the solution was done, faster and very nicely designed.

Show results

The proposed solution seemed to perfectly fit for TablouriColorate and after that, we have gone further and "complicated" things a bit. I have implemented another similar page for posters, banners, and stickers and a nice thing was a page for customized photo collages. It lets the user upload many photos in the same frame in 8 different patterns like the below:

Customized photo collageCustomized photo collage

Some technical details

The WordPress plugin was developed following the official WPCS guidelines, and the ReactJS application was implemented as a standalone application, built on moved in the plugin directory. For the ReactJS application, I used the MaterialUI elements and Webpack.