Posted on

A huge problem emerged just a minute before our costumers tests our first WooCommerce virtual store

When we just finished up our local tests of our first online WooCommerce store, when it was online and ready for our first costumers to test it out a huge problem emerged. When we use native WordPress functions and the WooCoommerce plugin for quick attach an virtual store to our wp site, we must adapt the data managements to a mix of combined patterns of both, wp and woo, they are all good, but have problems for scalability.

WooCoommerce stores in the same table products and orders (side to side with WordPress blog posts, pages, menus…) it is quickly for deploys new stores, but in few moments everything can become a mess of data, stored mixed. The problem is when we have to update only certain product data, like stock quantity, and of course keep orders preserved, it is impossible to do (without temporary lock down live site for maintence) with bult-in WordPress, WooCommerce or even SQL commands, it is basic a lock-up.

To break that, the solution we take is a dirty little hack, that is only acceptable by expert users, who fully understand what we suggested and coded as a solution. We just released or fist hack plugin, it is avaiable on github and soons as we make a good documentation we will submit to wp plugins directory:

What F5 Sites | Woocommerce shop_order Tables does?

It creates a hack table on database called 9woo + wp prefix + shop_order + endpoint (posts or postmeta), and (by using hooks) whenever WordPress or WooCommerce asks for orders data it force $wpdb object to get if from another tables. It is a hack, you must have a deep understand about hook and wp core functions before you can take the most of our solution.

Posted on

Our first public and opensource WordPress plugin

plugin: f5sites-shared-post-tables-and-uploads-folders

After almost 9 months of tests and improvements, a lot of risk taken, we got in alpha stage of development for Shared WordPress Post Type and Taxonomies + Uploads Folder. The projects uncertainty itself seems not enough, if it was about risk taken, that new plugin initiative was a big all in, because I it stopped every single project for more 6-9 months, again, latening market entrance.

Years ago, 2014, a recent bachelor programmer said to me that WordPress data model was a mess, I took it personally and go look for more informations and sadly find out that he was partially correct, the simplicity of it’s model was very good for some situation, but locks out the developer in some scalability problems, if not well configured.

WordPress development is already fast, it has dozen of bult-in functions and integration, for start a new project is easy as use Fantastic or other script installer to get site ready in seconds. But for quickest deployment ever it was a prision, one installation for each project is the start of a big mess.

So the first step of rearrangement was simple using one single install for all blogs, and take the code dependency management to the next level, using Composer. Next is share all the users across single installations, it was a huge progress, and finally why don’t share blog posts too? In that point we can start answering where is the “mess”.

Objects are stored mixed in database schema, blog posts is stored as the same global type of products, pages, menus, contact forms, and every object called post_type. To make things more complicated there is a separated table for postmeta, it is a relational table with same index (post ID), so you must let wp address it’s number, and using a second table will make unique identifiers desync, it is very hard schema to break.

But came to me that the solution was easy, don’t take me too long to realize that it is actually better than worst, I can now share pages, menus, contact forms, midia, products, everything, withou losing control of some data stored in single databases, for each single installation. It was just a question to make it works well, sharing post_types and don’t break-up WordPress, all of it without touching core code, just by enabling/disabling a plugin, and after 9 months of intensive tests and twice almost abandoned it, finally it get stabilized and ready for refinements.

For separate singe install shared data I used a category, and for automatized more the process the category is exactly the domain name, so just check the domains when creating a blog post, and will be displayed only in that domain. For products it works even better, it list all products and just indicates and redirects the user to the correct store domain, it was great.

It also inaugurate a new era of development, focusing most effort in making public open-source software, hosted primary on open Github configuration, for free download and re-utilization, we perceive a new paradigm of value on it initiative. It stills in alpha, but already available for public.

Posted on

We Are Going To The Ocean

When you are a guepardo you can always say the other animals in nature is very slow, but if you think deeply you will perceive that the guepardo cant hunt slowly, for the guepardo it is not a good idea to hunt without reaching top speed, they did not choose to be fast, they were made to be fast.

As a CEO and developer I can always choose the pace of the projects, it is good have a good schedule and nice budget, but is not guarantee of success. In the first look you can bet the guepardo speed as a better option than turtle speed for project pace, but what are you considering, just the speed?

Turtles can live up to 200 years, the don’t need many food and they spend most of theirs time relaxing on the sun or surfing good waves. To guarantee the specie survivoring along the years they put dozen of eggs yearly, a lot of slow turtles, fragiles, being served as food for other species, but a few survive.

The baby turtles learn quickly they need to make their own way to have their food, in other hand the guepardo is always hunting dinner for children, one day without feeding the babies can put they in danger. Think if the mother is sick and dies it is probable the end for the children too. But where is startups in that animal talk? Our startups it the little turtles, we are sending many of them to ocean right now, some of them was already eaten, most not even touched the water, most of them are breaking it’s eggs toward the ocean.

Posted on

SSL Certification Concluded

Without strong walls why the gate? Securing data is a big concern for today servers managers, data collecting and storage is crucial, we are living in the beginning of big data era. Some of that data are no for public access, and some information is very confidential, how to deal with that needs a complex answer.

Security access is the basics, it is more than have strong passwords, it is to give right people the right information and keeping not-authorized ones out. As a server admin I can say our servers security is high, but for strictly security performance the server admin words doesn’t guarantee nothing, we need third parties specialists to confirm it.

When a site or domain have SSL certification they have guaranteed that the interception of data between the final user and server is way difficult, all protocols and security norms is followed, and the constat renewal of SSL certificates guarantee the servers is always updated with most recent security standards. That is certainly a big mark for all our projects.

Posted on

Looking For Next Level English Content Writing

Attending our objectives for high quality content we are now putting more efforts on final text english quality. As a non-native speaker, I try to push myself to best, but for a native speaker the minimum quality expected is to attend grammatical norms, at last

The fact is that for now I am the only author, but the idea is to expand our team, se one of the ideas is to look for a native speakers to join our team for 2017. At these moment we are just improving the system, it is about to make a triad stands, information engineering, content writing and personalized costumer experience.

After the system is “ok” will be easy for authors and employees to join in writing periodically content.