How to Build a Personalized Cart System in Glide

If you’re building an e-commerce app with Glide and want to go beyond the basics, one of the most powerful features you can implement is a personalized cart system. As someone who’s been working with Glide since 2020, I can confidently say that mastering this aspect opens the door to creating real, scalable applications for serious clients.

In this post, I’ll walk you through the principles and techniques I used to build a multi-cart system for individual users, without writing a single line of code. This is not just another online store example. We’re talking about a dynamic, user-specific experience where each person interacts with their own cart, can add multiple items, manage quantities, and proceed to checkout—all within Glide.

Step 1: Set Up Your Product Inventory

Start with a simple product table. I used Google Sheets for this, then imported it into Glide. My table includes:

  • Product name
  • Description
  • Image
  • Price

This inventory will later be referenced when building the cart. Keep things tidy: name your table something intuitive like Products or Inventory.


Step 2: Create a Carts Table

Next, create a new table called Carts. Each row here represents a unique shopping cart session. For each cart, include:

  • A unique Row ID
  • User email (who owns this cart)
  • Timestamp
  • Optional: Order number for tracking

Use Glide’s user profiles to tie the current user to their own cart using relations and rollups. You can also store the current cart ID inside the user profile for easy reference throughout the app.


Step 3: Build the Cart Items Table

Create another table, something like Products in Cart. This is your line-item table, where every product added to a cart is logged. You’ll need:

  • Row ID
  • Cart ID
  • Product ID
  • Product Name (optional)
  • Product Image (can be looked up)
  • Price (store a fixed price snapshot)
  • Quantity
  • Timestamp
  • User email (who added it)

Avoid relying too heavily on lookups for key data like price. If a product price changes after someone adds it to their cart, their price should remain unchanged. Store the price at the time it was added.


Step 4: Add Products to the Cart

Here’s where the fun begins. Using Glide’s custom actions, you can create workflows like:

  1. If the user doesn’t have an active cart, create one.
  2. Store the cart ID in the user’s profile.
  3. Add the selected product to the Products in Cart table.

Make sure to use user-specific columns for things like temporary values (current product, quantity input) so multiple users can interact with the same UI at the same time without conflict.


Step 5: Edit Product Quantities

After a product is added, redirect the user to an edit screen where they can set the desired quantity. Use number pickers with a range (e.g. 1–10) and plus/minus buttons for better UX. You can conditionally show the edit button only if the product was added within the same day, or based on other business rules.


Step 6: Display the Cart

Now that you have a functioning cart system, create a new screen that displays all products in the current cart. Use filters to show only items with a Cart ID matching the current cart. Add a rollup to calculate the total price, multiplying quantity by price.

Bonus: You can even add tax, shipping, or discount logic with a few extra columns and math.


Step 7: Admin View (Optional)

If you’re building an app where someone manages orders, like a shop owner or admin, you can set role-based visibility. Admins can:

  • View all users and their carts
  • Change order statuses
  • Edit or delete items manually if needed

Just add a role field in the Users table and use visibility filters across screens and components.


Step 8: Prepare for Checkout

This part depends on your payment system. Whether you’re using Stripe, PayHere, or a custom integration with Make/Zapier, you’ll need a table for Payments where you can log:

  • Cart ID
  • User email
  • Amount paid
  • Timestamp

Once payment is confirmed (manually or via webhook), you can flag the cart as “Paid” and hide or archive it from the active list.

6 Likes

Awesome!!!

1 Like

Thank you (:smile:

1 Like