Skip to content
Revianto
Back to portfolio

Olsera online stores: the customer purchase flow, from login to payment

Overview

At Olsera I worked on the purchase flow that customers of online stores go through: sign in, choose products, enter a shipping address, then pay and ship. The online stores cover both web and mobile, with the same flow on each. I worked on the backend of both: the web store and the mobile store apps, the mobile side written in Go. Now and then I was also asked to work on Olsera's backoffice, in PHP with Laravel.

The flow

A customer moves through these steps, in this order:

  • Sign in. The customer logs in to their account.
  • Product list. The customer browses the store and picks what they want.
  • Shipping address. The customer creates the address the order will be sent to.
  • Payment and shipping. With the products and the address in place, the customer chooses shipping and pays.

What I built

Backend for both web and mobile. I worked on the backend of this whole flow, for the web store and for the mobile apps: sign-in, the product list, creating shipping addresses, and payment and shipping. The mobile side is written in Go and has its own API, separate from the web store's. Both follow the same order of steps, so a customer gets the same experience on mobile and on the web.

Third-party integrations. Payment and shipping depend on third-party services, and I built those integrations on the backend, for both web and mobile. Which services they are and how they work stays out of this write-up on purpose.

WebSocket integration. The backend also includes a WebSocket integration alongside the regular API.

Custom apps. Some customers wanted a custom app: still an online store at its core, but with needs more personal to that customer. I worked on these as well. I cannot go into detail about them, so I only mention that they exist.

Backoffice work in Laravel. Occasionally I was asked to work on Olsera's backoffice in PHP with Laravel. It was a small part of my work, and because the backoffice is internal I do not link to it or describe it here.

What was hard

The hardest part was the third-party integrations. Each service comes with its own documentation, and there was a lot to learn from it. I read it closely, and for every integration I turned what I learned into a package. When another project needs the same service, it can reuse that package by copying it instead of starting from the documentation again.

Result

Many online stores, on web and mobile, run on this system. The store data belongs to Olsera and stays internal, so I show no screenshots or numbers here: what I built is the system, not the stores' content. Some of the public apps are listed below.

Public apps

Stack

Go, Gin, GORM, MySQL, Redis (cache and OTP), WebSocket, PHP, Laravel.

Contact me
View CV