This project was my inventory management system before I created the my IMS web app. The functionality was similar: process purchase emails, update data; but everything stayed in Google's Suite of products.

  1. Gmail - all inventory purchases went to a Gmail email address
  2. Google Apps Script - I used Apps Script to process the email
  3. Google Sheets - This was my "database"

This was a fun project with plenty of quirks that met my needs short term. I wanted a quick and "easy" way to track inventory with my vintage reselling business, so this was the product. Gmail -> Apps Script -> Sheets. Each item got a new row and the it's lifecycle was tracked and updated in that row along the way.

  1. Platform Purchase Email -> Row created, data populated (as best as I could from email data), status set to "Purchased"
  2. Platform Delivered Email -> Row's status gets updated to "Delivered" and date added
  3. Manual data manipulation -> I would tag the items based on the row ID, create the item description, and set the price. Status updated to "Processed"
  4. Photograph -> Every item gets photographed with the tag, statuses updated to "Photographed"
  5. Listing -> I would list items in curated batches, so I'd get the list of IDs for the batch, add them to a table, and run a separate Apps Script that would then update each row's status to "Posted" and add the assigned date
  6. Selling -> I created custom transactional emails through Shopify mark items as "Sold" when they were purchased.
  7. Shipping -> After processing items in either Shopify or Pirate Ship, I would use the transactional email from that event to mark the row as Shipping.

Obviously this project came with a million pit falls, but it kick started my current inventory management system. I could have used different tech stacks with queues and listeners, but why complicate it when it works?