Canvas Documentation
Bubble Best Practices
v6.0
v6.0
  • Introduction
  • Key Features
  • What's New
  • Canvas Design System Figma File
  • CANVAS FUNCTIONALITY
    • Getting Started
    • Branding & Design
    • Marketing Pages
    • Page
    • Bubble Pages & Blocks
    • Roles & Permissions
    • Menus & Navigation
    • Data & Workflows
    • Emails & Alerts
      • Mail merge terms
    • Miscellaneous
      • Setting up two factor authentication
      • Cookie and consent banner
      • Setting your password policy
      • Set up Payment info on Account page
      • Loading screen
      • Configuring multiple languages
      • Customizing your app's portal page colors
    • Reference
      • Pages
        • Index
        • Product homepage
        • Marketplace homepage
        • SaaS homepage
        • About us
        • Pricing
        • Admin Portal
        • Account
          • Account deletion
        • Login
        • Legal
        • Reset Password
        • 404
      • Reusable elements
        • Header
        • Footer
        • Signup & Log in
        • Cookies Permission
        • Widgets
          • App security
          • Header Widgets
          • Workflow Widgets
        • Admin Portal
          • Admin analytics
          • Admin email & templates
          • Admin header & footer
          • Admin legal popups
          • Admin branding, setup checklist, and settings
          • Admin options app variables
        • Menu Focus Elements
        • Sidebar tab
      • Data types
      • Option Sets
      • Backend Workflows
      • Design standards
        • Manually Building UI
  • Canvas library
    • Updating asset RG data source
    • UI Patterns
      • Simple Dashboard Page
      • Product Marketplace Dashboard Page
      • Labor Marketplace Profile Page
      • Social Network Profile Page
      • Simple Events Search Page
      • Events Search Page
      • Ecommerce Search Page
      • Labor Marketplace Search Page
    • Page templates
      • Basic Bubble Marketing Page
      • Chat Messenger Page
      • Form Builder Page
      • Centered Profile Page
      • Left-Justified Profile Page
      • Standard page
      • Toggle Tabs Page
      • Menu Page
      • Mobile Menu Page
      • Video List Page
      • Horizontal Tabs Portal / Dashboard Page
      • Standard Portal / Dashboard Page
      • Simple Portal / Dashboard Page with Icons
      • Double Sidebar Portal Page Template
      • Search Page
      • Map Search Page with Toggle and Filters
      • Floating Map Search Page
      • Search Bar Page
      • Multi-Step Page With Progress Bar
      • Standard Multi-Step Process Page
      • Multi-Step Process Page with Sidebar
      • Gallery Profile or Product Page
      • Sidebar Profile Page with Tabs
      • 2-Column Menu Tabs Page
      • 2-Column Checkout Page
      • 2-Column Video Chat Page
      • Vertical Multi-Step Page Template
    • Blocks
      • Pagination
      • Monthly Calendar Scheduling Widget
      • No Reply Comments Thread
      • Nested Comments Thread (with Like and Reply)
      • Placeholder Group
      • List with Circular Progress Bar Repeating Group
      • Top Input Chat Widget
      • Bottom Input Chat Widget
      • Toggle Tabs Group
      • Single-Select or Multi-Select Pill Tabs Group
      • Settings Group
      • Order Confirmation Group
      • To-Do List Repeating Group
      • Title Group with Button and Filters
      • Product Details Group With Progress Bar
      • Listing details with Icons and Menu Focus Group
      • Week Daily Availability Group
      • Frequently Asked Questions (FAQ) Repeating Group
      • Dismissible Module
      • Video Group
      • About Group
      • Add to Cart Group
      • Full Width Map with Directions Link
      • Location Module (Map and Directions)
      • Drag and Drop Repeating Group
      • Infinite Columns Horizontal Scroll Data Table with Fixed First Column (Repeating Group)
      • Nested Data Table (Repeating Group)
      • Standard Data Table (Repeating Group)
      • Standard Data Table (Table Element)
      • Mobile-Friendly Data Table (Repeating Group)
      • Mobile-Friendly Data Table (Table Element)
      • Infinite Columns Horizontal Scroll Data Table (Repeating Group)
      • Infinite Columns Horizontal Scroll Data Table (Table Element)
      • Activity Feed
      • Social Feed
      • Nested Repeating Group
      • Advanced Form Inputs Group
      • Reviews with Ratings Summary and Images
      • Reviews Repeating Group with User Images
      • Reviews (Text Only) Repeating Group
      • Standard Repeating Group with Image
      • Search Bar Group
      • Listing Details Group
      • Post Group with Upvoting UI
      • Large Chart Dashboard Widget
      • Chart With Key Metrics Dashboard Widget
      • 2-Column Table and Key Metrics Dashboard Widgets
      • 2-Column Large Metrics Dashboard Widgets
      • 4-Column Large Metrics Dashboard Widgets
      • Main Image with Thumbnails
      • Centered Profile Block
      • Left-justified Profile Block
      • Tile Image Gallery and Popup
      • Image Feed with Nested Comments Thread
      • 1-Column Standard Form Inputs Group
      • 2-Column Slideshow Tiles Repeating Group
      • 2-Column Repeating Group (Text, Link, Image, and Description)
      • 2-Column Repeating Group (Link, Text, and Button)
      • 2-Column Repeating Group with Actions
      • 2-Column Grid Tiles Repeating Group
      • 2-Column Form Group
      • 4-Column Tiles Repeating Group
      • Expiration timer
    • Popups
      • Edit Drawer
      • Map Location Details Drawer
      • Details and Comments Drawer
      • Confirmation Popup
      • Message Popup
      • Image Popup
      • Video Popup
      • Vertical Scroll Popup
      • Permissions popup
      • Multimedia Slideshow Popup
      • Edit Popup
      • Standard Form Popup
      • Subscribe Popup
      • Feedback / Contact Popup
      • Details Popup
      • Add List Popup
      • Advanced Form Popup
      • Rating Popup
      • Toggle Tabs Popup
      • Share Popup
      • Multi-Step Popup
      • Invoice Popup
      • Stripe Credit Card Purchase Popup
      • View Profile Popup
      • Send Message Popup
      • Multi-Select Pill Tabs Popup
      • Net Promoter Score (NPS) Popup
      • Pricing Plans Popup
    • Reusables
      • Multimage uploader
      • Sidebar_icontab
      • Doublesidebar_tab
Powered by GitBook
On this page
  • Overview
  • Structure
  • How to set up

Was this helpful?

  1. Canvas library
  2. Page templates

2-Column Checkout Page

Use this for checkout or numbered multi-step experiences.

Previous2-Column Menu Tabs PageNext2-Column Video Chat Page

Was this helpful?

Overview

Responsive layout for a generic two-column product checkout page. Includes a sidebar for displaying the number of items in your cart, cart amount, and the ability to add a promo/discount code.

Please make sure you have added the Stripe plugin by Bubble in order to use the add payment method feature. Go to the Bubble editor of your app > Plugins tab > + Add plugins.

Structure

  • When this page is added to your app, it will come with three main groups:

    • Group Main checkout flow - This group contains the responsive settings for all checkout modules:

      • Group Main cart (step 1)_number This group allows users to review the items they have added to their carts. It includes common UI components for editing the quantity of an item and deleting an item from the user's cart. Clicking on Button SAVE/NEXT CART will hide Group Collapsible cart items and move the user to the next step of the checkout process. However, the user can always go back to edit his cart information by clicking on Button Edit cart.

      • Group Main shipping info (step 2)_number This group allows users to add or edit their shipping information. Clicking on Button SAVE/NEXT SHIPPING will hide Group Collapsible shipping and move the user to the next step of the checkout process. However, the user can always go back to edit his shipping information by clicking on Button Edit shipping.

      • Group Main shipping method (step 3)_number This group allows users to select a shipping method. Clicking on Button SAVE/NEXT METHOD will hide Group Collapsible method and move the user to the next step of the checkout process. However, the user can always go back to change his shipping method by clicking on Button Edit method.

      • Group Main payment method (step 4)_number This group allows users to add a credit card using the Stripe plugin built by Bubble. Users can click on Button Edit payment to add or edit their payment method in the stripe popup.

    • Group Responsive order confirmation - This group contains two main groups:

      • Group Main confirmation (step 5)_number This groups allows users to review their order information after placing an order. Users can click on Button CONTINUE SHOPPING to navigate away from this page (you would need to add workflows to the buttons).

      • Group page860Group - All additional modules you add to this page will be placed into this group.

    • FloatingGroup Main order summary sidebar - This group contains UI components for your order summary:

      • Group Inner promo code includes an input where users can enter a promo code

      • Group Inner promo code response includes UI for letting users know whether the promo code they've entered is valid or not

      • Group Main place order is for placing orders (you will need to add a workflow to this button later)

      • Group Sidebar PLACEHOLDER is a placeholder group in case you want to add more elements to the sidebar

      • Note: In order for the sidebar to display correctly, the top of the floating group should always be touching the top of the page. The bottom of the floating group should always touch the bottom of the page.

  • This page comes with one popup:

    • Popup Hidden Variables contains three groups:

      • var - Website object This group stores the website object (e.g., app name, primary color, and etc.)

      • var - dummy data A placeholder group in case you want to use any hidden variable groups later.

      • var - step This group stores a number. It represents the checkout process step (and it gets its value from the page parameter step).

How to set up

  • Shopping Cart Section

    • Update the text data source in Group Collapsible cart details

    • Update the data source of RepeatingGroup Cart Dummy.

    • Modify the elements within the repeating group to refer to current cell's data.

    • For demo purposes, the elements within the repeating group all have conditional statements (e.g., if current cell's index is 2 then change text to chair or keychain). Please remove all of those conditional statements.

    • Add workflows to Group Subtract item and Group Subtract item

    • Add workflow to Group delete item

    • Add workflows to update the cart information when Button SAVE/NEXT CART is clicked.

  • Shipping Information Section

    • Update the text elements and the display text data sources

    • Modify the input types if needed

    • Add workflows to save shipping information when Button SAVE/NEXT SHIPPING is clicked.

  • Shipping Method Section

    • Update the text elements and the display text data sources

    • Update the data source of RepeatingGroup Shipping Dummy

    • For demo purposes, the elements within the repeating group all have conditional statements (e.g., if current cell's index is 2 then change text expedited shipping). Please remove all of those conditional statements.

    • Add workflows to save shipping method when Button SAVE/NEXT METHOD is clicked.

  • Payment Method Section

    • Update the display text data sources

  • Sidebar Place Order

    • Update the display text data sources

    • Add workflow to Button Apply

    • Edit the text in Group Inner response bg color

    • Add workflows to Button PLACE ORDER

  • Order Confirmation Section

    • Update the data sources of the text elements

    • Add workflow to Button CONTINUE SHOPPING (or hide it if not needed)

  • [Optional] Processing screen Often times, you may need to integrate a third-party payments solution for checkout. Many of these would likely need to navigate the user to a separate page before redirecting the user back this page (e.g. Stripe). In the redirect flow, you may want to add a url parameter for 'tab=processing'. Additionally, you would include a conditional statement on Group Main processing tab (optional) similar to below:

  • The end result of what this UI would look like:

    • User presses PLACE ORDER

    • User is redirected to a separate page for payments

    • User is taken back to the checkout page with the '?tab=processing' url parameter

    • The processing tab shows up briefly (so they won't see the cart UI again)

    • User sees order confirmation screen

This page contains a lot of PLACEHOLDER groups. These groups are included to make it is easier for you to add new elements to existing groups. You would simply resize the placeholder groups to make space for the new elements. If you do add more elements, please ensure that no elements are overlapping with the placeholder groups otherwise responsiveness will not work properly on the page.

This page will come with the reusable element.

header