eCommerce

GoHighLevel eCommerce Store Setup: Complete Step-by-Step Guide

A complete 14-step guide to building, customizing, and launching your GoHighLevel eCommerce store — products, collections, shipping, payments, abandoned cart, and post-purchase automation.

📋 14 steps ⏱ ~42 min 📅 Updated 2026-04-07

What you will learn

This guide covers the complete setup of a GoHighLevel eCommerce Store — from creating products through post-purchase automation. It is written for the sub-account owner or an agency configuring a store for a client.

The GHL eCommerce Store is built directly inside a website (not a funnel) and supports one-time product sales with Stripe, Apple Pay, and Google Pay. It includes built-in abandoned cart recovery, inventory tracking, shipping zones, coupon codes, and direct integration with GHL's automation workflows.

Step-by-step guide

1

Confirm prerequisites before building

Three things must be in place before you build the store. Check all three first — skipping this step causes problems later that are harder to fix.

  1. Stripe connected: Navigate to Settings → Integrations and confirm Stripe shows as Active. If not, click 'Connect with Stripe' and follow the OAuth prompts. Stripe is required for card payments, Apple Pay, and Google Pay at checkout.
  2. Domain connected: Navigate to Settings → Domains and confirm a domain is connected to the sub-account. Your store will live on this domain. If no domain is connected, add and verify one before continuing.
  3. Website exists: Navigate to Sites → Websites and confirm a website exists. The eCommerce Store can only be added to a website — not to a funnel. If no website exists, click 'New Website', choose a template, name it, and click 'Create Website'.
⚠️ Important: Only one-time payment products can be sold through the native eCommerce Store. Recurring subscriptions must be sold through Funnels and Order Forms instead.
2

Create and configure your products

Products are created in the Payments section and then displayed in the store. Build your entire product catalog here before touching the store builder.

  1. Navigate to Payments → Products and click 'Create Product'.
  2. Enter the Product Name and write a rich text description. Use the formatting toolbar — bold, bullet lists, and tables are supported. This description auto-populates on the Product Details page in the store.
  3. Upload multiple product images and/or videos by clicking the image upload area. High-quality images from multiple angles significantly improve conversion rates.
  4. Set the Price. Set a Compare-At Price (the original/crossed-out price) if you want to display a discount and create urgency.
  5. If the product comes in different options, click 'Add Variant' to create variants such as Size, Color, or Material. Each variant can have its own custom price.
  6. For physical products, fill in weight, dimensions, and SKU if you plan to use weight-based shipping rates.
  7. At the top of the product editor, locate the 'Show in Online Store' toggle and turn it ON. Existing products are hidden from the store by default — this must be enabled individually per product.
  8. Click 'Save'. Repeat for all products.
✅ Migrating from Shopify? Use Payments → Products → Import (Shopify Migration). Importing via CSV: click 'Import as CSV', download the sample template, fill it in, then upload.
3

Organize products into collections

Collections group related products into browsable categories — similar to Shopify collections or WooCommerce categories. They also power the Collections List element in the store builder.

  1. Navigate to Payments → Products and click the 'Collections' tab at the top of the page.
  2. Click 'Create Collection' and give it a clear, descriptive name (e.g. 'Men's Apparel', 'Cleaning Supplies', 'Best Sellers').
  3. Add the relevant products to the collection by selecting them from your product list.
  4. Click 'Save'. Repeat for all product categories you want to display.
💡 In the Store Builder, the Collections List element supports double-clicking items on the canvas to map them. Unmapped items will open a selection drawer automatically.
4

Add the store to your website

Adding the Store element to your website triggers GHL to automatically generate all five core store pages. You do not build them individually — they are created in one click.

  1. Navigate to Sites → Websites and click on your website to open it.
  2. Open any existing page in the Page Builder (or create a new page), then click the '+' (Add Elements) icon.
  3. In the elements panel, locate and select 'Store', then click 'Add to Site'.
  4. GHL will automatically generate and add these 5 core store pages to your website:
    • Products List Page — displays all store products
    • Product Details Page — full product info, images, variants, Add to Cart button
    • Cart Page — summary of items, quantity adjustment, remove items
    • Checkout Page — shipping info, coupon codes, payment (card, Apple Pay, Google Pay)
    • Thank You Page — order confirmation after successful purchase
✅ You can create multiple separate stores within the same sub-account if the business needs distinct storefronts.
5

Customize and brand all five store pages

Each of the five store pages is fully customizable in the page builder. Customize them to match the brand before going live.

  1. Navigate to Sites → Websites and open the website. Click 'Edit' next to each of the five store pages one at a time.
  2. Products List Page: customize the grid layout (number of columns), product card style, sort/filter options, and surrounding content such as a hero banner. Add a Search Bar element so customers can search by product name.
  3. Product Details Page: customize the image gallery layout, variant selector styling, and placement of the Add to Cart and Buy Now buttons. Add a Related Products element below the main product to recommend additional items.
  4. Cart Page: review the cart summary layout. Confirm the coupon code field is visible if you plan to offer discount codes.
  5. Checkout Page: confirm your connected payment methods display correctly — Stripe, Apple Pay, Google Pay. For Buy Now Pay Later (Affirm, Klarna, AfterPay), these are enabled in your Stripe Dashboard under Payment Methods and appear at checkout automatically.
  6. Thank You Page: add a personalized confirmation message, a related offer, or a link back to the store. This page is ideal for a review request CTA.
  7. On all pages, click the 'SEO Meta Data' button in the top left of the page builder and fill in title, meta description, and keywords for each store page.
  8. Click 'Save' after editing each page. Click 'Publish' when ready to go live.
✅ Product Labels and Ribbons (e.g. 'New', 'Sale', 'Best Seller') can be added to product cards via Payments → Products → [product editor] in the product settings.
6

Configure shipping and delivery rates

GHL's shipping system supports region-specific zones with flat rates, weight-based rates, and conditional price-based rates. A General Shipping Profile automatically covers any product not assigned a custom profile.

  1. Navigate to Payments → Settings → Shipping & Delivery.
  2. Click 'Add Zone'. Name the zone (e.g. 'Domestic — US') and select the countries, states, or provinces it covers.
  3. Within the zone, click 'Add Rate' and choose one of:
    • Flat Rate — fixed cost regardless of order (e.g. $5.99)
    • Free Shipping — no charge to the customer
    • Conditional by Order Price — e.g. free on orders over $100, otherwise $8.99
    • Conditional by Item Weight — e.g. $0 under 5kg, $12 over 5kg
  4. Click 'Save'. Add as many zones and rates as needed.
  5. For product-specific rates: navigate to Payments → Settings → Shipping & Delivery → Custom Profiles → click 'Add Custom' → name it, select the store(s), assign products, define zones/rates → click 'Save'.
  6. To connect Shippo for live carrier rates: navigate to Settings → Integrations, find Shippo, click 'Connect'. USPS, UPS, and FedEx live rates will auto-sync to checkout.
  7. To connect Printful for print-on-demand: navigate to Settings → Integrations, find Printful, and connect your account. Fulfillment is handled automatically.
  8. Place test orders using different shipping addresses to confirm the correct rates display at checkout.
💡 When a cart contains products from multiple shipping profiles, GHL automatically combines all applicable rates into a single shipping line at checkout.
7

Configure payment settings and order emails

Ensure all payment methods are enabled and customers receive order confirmation emails before going live.

  1. Confirm Stripe is active under Settings → Integrations. Apple Pay and Google Pay are enabled automatically once Stripe is connected — no additional setup needed.
  2. To enable Buy Now Pay Later (Affirm, Klarna, AfterPay): log in to your Stripe DashboardPayment Methods → enable each BNPL option. Once enabled in Stripe, they appear at GHL checkout automatically.
  3. To accept manual payment (cash, check, bank transfer): navigate to Payments → Settings → find the Manual Payment Method option → enable it → add a description of your manual payment instructions.
  4. Navigate to Payments → Settings → Notifications and confirm the 'Enable Order Confirmation Email' toggle is ON. This is required for customers to receive their order confirmation and digital product download links.
  5. To configure taxes: navigate to Payments → Settings → Taxes → add tax rates by region. Taxes will be calculated and displayed at checkout automatically.
✅ To create coupon codes: navigate to Payments → Coupons → Create Coupon. Set discount type (percentage or fixed), usage limits, and expiry date. Customers enter the code on the Checkout page.
8

Set up abandoned cart recovery emails

Approximately 70% of shopping carts are abandoned before purchase. GHL's built-in abandoned cart email automatically re-engages those customers and recovers lost revenue without any manual effort.

  1. Navigate to Payments → Settings → Notifications.
  2. Locate the Abandoned Cart / Abandoned Checkout settings and toggle the feature ON.
  3. Click the email editor to open it. Update the subject line, body copy, and branding to match the business voice.
  4. In the email editor toolbar, click the Custom Value icon and select 'Ecommerce' from the category dropdown. Insert the {{ ecom_checkout_page_url }} field to create a direct link back to the customer's abandoned cart.
  5. Drag a Shopping Cart element into the email body from the elements panel. This automatically displays the exact products the customer abandoned — including images, names, prices, and quantities.
  6. Optionally include a limited-time discount code in the email body to incentivize completion.
  7. Set the send delay — how long after abandonment before the email sends (recommended: 1 hour).
  8. Click 'Save' to activate.
✅ For a more advanced multi-step sequence (email + SMS over 24–48 hours), build a Workflow using the 'Abandoned Checkout' trigger under Automation → Workflows.
9

Set up post-purchase automation workflows

Post-purchase automations run on autopilot and are one of the highest-ROI setups in GHL — they build customer loyalty, generate reviews, and drive repeat purchases without manual effort.

  1. Navigate to Automation → Workflows and click 'Create Workflow' (from scratch or from a template).
  2. Order Confirmation Workflow: Trigger = Order Submitted. Add an immediate Email or SMS action thanking the customer and confirming order details. Add the Shopping Cart email element to auto-populate purchased line items.
  3. Shipping Update Workflow: Trigger = Order Fulfilled (fires when you mark an order fulfilled and add tracking info). Send an automated Email or SMS with the tracking number and a link to track the shipment.
  4. Review Request Workflow: After the Order Fulfilled trigger, add a Wait step of 5–7 days (enough time for delivery), then send an SMS or email requesting a Google or Facebook review with a direct link to your review page.
  5. Upsell / Cross-sell Workflow: After a purchase, add a 3–7 day delay, then send an email or SMS recommending related products. Use Custom Values to personalize based on what the customer bought.
  6. Win-Back Campaign: Use a date-based trigger to identify customers who have not purchased in 60–90 days. Automatically send a re-engagement offer or discount code.
  7. Toggle each workflow from 'Draft' to 'Published' and click 'Save'.
10

Manage and fulfill orders

All orders are managed in the Payments section. By default, new orders are Unfulfilled until manually marked otherwise.

  1. Navigate to Payments → Orders to view all orders. Each entry shows customer name, products, total, payment status, and fulfillment status.
  2. Click any order to open the Order Details view — full line items, shipping address, and payment info.
  3. To fulfill an order: click 'Fulfill Items', enter the tracking number, select the shipping carrier, and paste the tracking URL. The order status updates to Fulfilled automatically.
  4. To print a packing slip: open the order details and click 'Print Packing Slip'. This generates a printable document with order contents and customer address.
  5. To process a refund: navigate to Payments → Transactions, locate the transaction, and click the refund option. Refunds process back to the original payment method via Stripe.
✅ For print-on-demand orders via Printful, fulfillment is automatic — no manual action needed on your end once the Printful integration is connected.
11

Set up inventory tracking

Inventory tracking prevents overselling by automatically hiding the Add to Cart button when stock runs out.

  1. Navigate to Payments → Products and open an individual product.
  2. Locate the Inventory section and enter your current stock quantity.
  3. Enable the 'Track Inventory' toggle so GHL monitors stock levels as orders are placed.
  4. Set the 'Out of Stock' behavior: choose whether to continue allowing purchases when stock reaches zero, or automatically mark the product unavailable and hide the Add to Cart button.
  5. Regularly review stock levels by checking the inventory column at Payments → Products. Restock by editing the product and updating the quantity field.
✅ If a product is out of stock and a customer has it in an abandoned cart email, a 'Remove Item' CTA will automatically appear in the abandoned cart email instead of a checkout link.
12

Optimize store pages for SEO

Each store page and individual product needs SEO meta data filled in. This is what Google indexes and displays in search results.

  1. For each of the 5 store pages: open the page in the Page Builder and click the 'SEO Meta Data' button in the top left menu. Fill in the Page Title, Meta Description, and Keywords. Use natural search language (e.g. 'Buy Handmade Candles Online | [Business Name]').
  2. For individual products: navigate to Payments → Products and open each product. Scroll to the SEO section and add an SEO Title and SEO Description specific to that product.
  3. Before uploading product images, rename them descriptively (e.g. 'blue-ceramic-mug-12oz.jpg' not 'IMG_4823.jpg'). Descriptive file names improve image search indexing.
  4. Write thorough, keyword-rich product descriptions in the product editor. Detailed descriptions improve both search rankings and customer purchase confidence.
  5. After publishing your store, submit the website URL to Google Search Console to request indexing and monitor search performance.
13

Test the store end-to-end before launch

Test every step of the customer journey from browsing to confirmation before sending any traffic. This prevents lost sales and embarrassing issues on launch day.

  1. Visit the live Products List page on your domain. Confirm all products display correctly with the right images, prices, and descriptions.
  2. Click into a product. Confirm the Product Details page loads, variants are selectable, and the Add to Cart / Buy Now buttons work.
  3. Add products to cart and visit the Cart page. Confirm items display, quantities can be adjusted, and items can be removed.
  4. Proceed to Checkout. Enter test shipping details and confirm your configured shipping rates appear correctly.
  5. Apply a coupon code and confirm the discount is applied.
  6. Complete a test transaction using Stripe's test card: 4242 4242 4242 4242 — any future expiry date, any 3-digit CVC. Confirm the Thank You page appears and a confirmation email is received.
  7. Verify the test order appears in Payments → Orders with correct line items and payment status.
  8. Test the abandoned cart email: add items to cart, do not check out, wait for the configured delay, then confirm the email arrives with the correct products and checkout link.
⚠️ To delete a test store after testing: delete any one of the 5 store pages in the website builder. You will be prompted to confirm — all store data associated with that instance will be removed.
14

Drive traffic and promote the store

Once the store is live and tested, use GHL's built-in marketing tools to drive traffic and announce the launch.

  1. Link-in-Bio: Navigate to Sites → Websites, find the Link in Bio page, and add a button linking to your Products List page URL. Add this URL to all social media bios.
  2. Launch email: Navigate to Marketing → Emails → Campaigns and create a store launch announcement. Include product images, pricing, and a prominent 'Shop Now' button. Send to your existing contact database.
  3. SMS blast: Navigate to Marketing → SMS Campaigns and send a short announcement SMS with a direct store link. Keep it under 160 characters.
  4. Social posts: Navigate to Marketing → Social Planner and schedule product spotlight posts across all connected social platforms. Include product images, pricing, and store link.
  5. Paid ads: Run Facebook/Instagram or Google Ads pointing to your Products List or specific product pages. Track conversions in the GHL CRM.
  6. Coupon promotion: Create a launch discount under Payments → Coupons → Create Coupon and promote it via email, SMS, and social to drive urgency.
  7. Database reactivation: Use the Bulk SMS or Email feature to re-engage past customers in the existing contact database. Past buyers are the fastest path to early revenue.

Frequently asked questions

Can I sell subscription or recurring products through the GHL eCommerce Store?

No. The native eCommerce Store only supports one-time payment products. For recurring subscriptions or payment plans, you must use Funnels and Order Forms instead, which support all billing types.

Where do I create products in GoHighLevel?

Products are created under Payments → Products, not inside the store builder itself. You create and configure all products there first, then they become available to display in the store. Make sure to turn on the 'Show in Online Store' toggle for each product you want visible.

What happens if I want to delete the store and start over?

To remove the store, delete any one of the five automatically generated store pages in the website builder. GHL will prompt you to confirm the deletion — this removes all store data associated with that instance. You can then re-add the Store element to start fresh.

Have questions about GHL? 📅 Book a free call 🔥 Skool — $87/mo