Updates on WooCommerce integration, ninkik-cli, documentation

Due to vacations we did not make it to fix all open issues we had planned but we are on a good way.

WooCommerce integration

We had started with the integration of WooCommerce into ninkik. After digging into WooCommerce’s and WooCommerce Subscriptions’ REST API the first work has been made to implement a Java client. We took a look into existing API wrappers like wc-api-java and java-woocommerce-client but decided against a usage of one of those:

  1. For the synchronization process we need bulk reading of orders and subscriptions. The available libraries don’t support it.
  2. The integration of WooCommerce Subscriptions is essential for ninkik. We had to implement it anyways.
  3. Our Gumroad API implementation uses Spring’s WebClient for fancy reactive stuff. We wanted to go with reactive and don’t rely on Jersey.

The API for orders, products and subscriptions is already implemented.

Essential API methods for ninkik

Maybe we will provide our own reactive WooCommerce REST API client as open source or as part of a ninkik subscription through ninkik itself.

ninkik-cli

After dealing with the customer’s user interface we had a longer talk about dealing with the administrator’s user interface. As you can see, the customer’s UI is not completely bad.

ninkik’s release overview. UI/UX is hard.

But the development and “design process” took us a lot of time.

Instead, we decided that for the administrator’s UI we will go with a CLI first. The CLI is based upon Spring Shell and uses ninkik’s REST API. This gives us the advantage to implement a usable UI relatively fast and we can integration testing the REST API in a “production” way.

As for our other libraries, ninkik-cli makes use of Spring WebClient in a reactive way. A larger issue has been the upload of Multipart files.

Documentation

The documentation is also live at docs.ninkik.com. Whoop!

For the last documentation projects we have been using daux.io. For ninkik we are relying on grav – which has been awesome so far.

Continuous Integration and Deployment process

This part has been easy. Thomas had set up a project in Rancher/Kubernetes for ninkik. GitHub Actions uses Helm 3 to do deployments into Kubernetes. We get notified through Telegram.

Our ninkik workload in Rancher.

Next steps

Our 1.0 milestone is due with end of December. Until then we will integrate basic workflows into ninkik-cli and have to improve the synchronization with Gumroad.