How is it Saturday already?! This week has seen no actual code changes. Both my work and personal agenda have been completely filled, so there was too little time to sit down and write some actual code. That doesn’t mean nothing happened this week though.
My available brainwaves this week have been spent on getting my mind around how integrations with eCommerce platforms, like WooCommerce for example, would work. Last week I briefly touched on the integrations concept already, but my ideas at that time were quite short-sighted. The ideal situation is that integrations with other plugins that offer their own ‘product’-like post type, simply replace the default product post type that Lapisense offers. This sounds simple enough, right?
Yes, it is quite simple (and I do have to be careful not to over-engineer this again, as I did in the past), but there are a couple caveats. Even though I’m working on getting a working MVP out the door as soon as possible, I don’t want to make the code ‘ugly’, or impossible to maintain. There is a lot of potential for overlapping code – be it in meta boxes or logic that deals with the actual post – because it has to work with multiple post types. This also happens in the database schema. I hope the coming week will allow me to spend more time on this and properly document my game plan.
Something cool happened offline as well this week, related to the Lapisense project. Jaime stopped by at our Level Level office this week and briefly mentioned that he actually might have a use case already for Lapisense! At that moment, I was still busy with all sorts of things and didn’t fully understand or appreciate how cool this was: Jaime is actually tracking the project and wants to work with it. Thank you Jaime, this was the prod in the right direction that I needed – very much appreciated!
This week already was one of the weeks that I dreaded having, since I committed to the idea of weekly updates. In order to have something to show, something needs to happen. So in this weeks update, only two minor changes that both setup the foundation for the rest of the plugin:
- Admin menu and page handlers
In the first official pull request of the new repository, I have introduced the administration panel menu and the corresponding page handlers. The corresponding pages are still empty and have no function, but should get some logic of showing their respective sets of data soon enough.
- Default post type and relation to keys
Next up, was the implementation of the default post type that will resemble the products that you will be adding licenses to. This default post type can be replaced by integrations (more on that later) with eCommerce plugins or other platforms.
Speaking of integrations, I already have the first basic fundamental plugins ready for the WooCommerce and Easy Digital Downloads integrations ready. Using one of these, would mean that you can simply connect your existing products in your store to the Lapisense plugin and start selling actual licenses right from you store.
A lot more of the foundation needs to be build into the core plugin for these integrations to actually start functioning, but there is a start!
Welcome to the first Friday Facts of the Lapisense project, ironically enough published on a Sunday morning… I know. The point of doing Friday Facts is to have a consistent flow of updates coming to everyone following the project. This is the first update, marking this as new beginnings.
Today I have published a rough setup of the basic structure of the plugin and marked the GitHub repository public. There is not much to see there, to be honest, but this gives me a starting point to move forward. The issue tracker can now also be used, both by myself and hopefully other contributors.
If anything, this Friday Facts update is the start of something new, something fresh. I am very much motivated to make something really pretty out of Lapisense, so I might just as well do it in public.