Basic file structure for custom WordPress plug-in with multiple Gutenberg blocks

Ever so often you need to build WordPress plug-ins with not just one but a collection of Gutenberg blocks. The @wordpress/create-block package is very handy in term of getting the build off the ground quickly. However the file structure created by @wordpress/create-block can be frustrating and confusing especially for the beginners because it’s optimised forContinueContinue reading “Basic file structure for custom WordPress plug-in with multiple Gutenberg blocks”

The path from CRM to eCommerce

I have a great deal of experiences in CRM. When I ask tasked to design a ecommerce solution I couldn’t stop thinking about the similarity between CRM and ecommerce. I guess the execs at Salesforce were probably thinking about the same thing when they acquire Demandware in 2016 for $2.8B. Some might argue there wereContinueContinue reading “The path from CRM to eCommerce”

Transforming digital sales (4) – Special discounts for Special products

LEGO technic is generally quite popular among fans. But the sale of the top gear rally car set is consistently 20 ~ 30% below average in 2020. Amazon and Argos are currently selling it at half price. This is a much better off than the 30% discount BBB offers to its employee. BBB cannot matchContinueContinue reading “Transforming digital sales (4) – Special discounts for Special products”

Transforming digital sales (3) – First step toward dynamic pricing

Ant Logistics is BBB’s business partner. Their home delivery arm works hard to deliver BBB’s customers’ online orders. As a good will gesture (well, it’s part of the contract negotiation) Shane decided to offer AL’ employee 25% discount of all BBB’s products through the partner sales portal. Although it’s not as generous as BBB’s ownContinueContinue reading “Transforming digital sales (3) – First step toward dynamic pricing”

Transforming digital sales (2) – A simple approach to manage discount

It is not uncommon to master products in a CRM system. Ken knew BrickByBrick’s problem was in the way product pricing was managed. In SuiteCRM – in fact in many CRM systems – Price is a just a simple attribute of the Products. The way BBB manage discounts was just to clone the products andContinueContinue reading “Transforming digital sales (2) – A simple approach to manage discount”

Transforming digital sales (1) – the fable

BrickByBrick Ltd. BrickByBrick Ltd. (BBB) was an old school toy retailer. The majority of their revenue comes from high street shops and shops in major shopping malls. Covid-19 was bad news. Same as many high street retailers they were forced to shut down many shops. Shane Smith, the newly appointed CEO was given the taskContinueContinue reading “Transforming digital sales (1) – the fable”

Subscribe to Salesforce Streaming Api in NodeJs

Salesforce streaming Api is an application programming interface. Hard to argue about that. But it’s not the Restful Api or SOAP api we know. It’s better because it allows us to sync whatever happened in Salesforce to wherever you want in almost real-time. Yes, Salesforce calls it Api but in fact, streaming Api is anContinueContinue reading “Subscribe to Salesforce Streaming Api in NodeJs”

Mimicking Heroku in Azure (2) – Data Add-ons

I wrote a script in Powershell to automate the deployment of a serverless apps and its CI pipeline to Azure with a single command (see A Step Toward DevOps Friendly Azure. That was my first attempt to mimic Heroku’s functions in Azure. Today I’ll extend the script to support the concept of database add-on. HerokuContinueContinue reading “Mimicking Heroku in Azure (2) – Data Add-ons”

Mimicking Heroku in Azure (1) – Create an App

Inspired by the simplicity of Heroku (See a comparative study between Azure and Heroku) I wrote a script to create everything a DevOps engineer needs in Azure to turn her / his code into apps. The script is so easy to use that any developers can run it in a command line. I decided toContinueContinue reading “Mimicking Heroku in Azure (1) – Create an App”