The SpreadFront manual
Everything SpreadFront does, how it works, and when to use it. New here? The step-by-step setup guide gets you live first; this manual is the full reference.
What SpreadFront is
SpreadFront turns a Google Sheet into a complete online store. One row in your sheet is one product in your shop. There is no admin panel to learn, no page builder, no plugins: the spreadsheet you already know is the product catalog, and everything else — the storefront, the cart, orders, notifications, analytics — is handled for you.
Three principles shape every feature:
- Your data stays yours. The product sheet lives in your Google Drive. SpreadFront only reads it through a public view link and never asks for access to your Google account or files. Sign-in with Google is used purely to know who you are.
- 0% commission. Payments go directly to you, through cash on delivery or your own payment link. Your money never passes through SpreadFront.
- Fast and visible. Stores are rendered as real HTML at the network edge, with full structured data. Search engines and AI assistants can actually read your shop — most website builders can't say that.
The sheet is your catalog
How syncing works
When someone visits your store, SpreadFront serves a cached copy of your catalog. If that copy is older than about a minute, it quietly re-reads your sheet. In practice: edit the sheet, and your store updates within a minute. No publish button, no deploy step.
If you want a change visible instantly (say, you just fixed a price), open your store in the dashboard and press Refresh products from sheet now.
If Google Sheets is ever unreachable, your store does not go down: SpreadFront keeps serving the last good copy of your catalog for up to 24 hours. A hiccup on Google's side never closes your shop.
Product columns
Your sheet needs a header row; column order does not matter, and names are matched case-insensitively. Sheets made for store.link work without changes.
- Name (required): the product title. Rows without a name are skipped.
- Price (required): plain number or with a currency symbol. Both "12.90" and "12,90" work, as do "1,234.56" and "1.234,56".
- Discounted Price: a sale price. Shown big, with the regular price struck through. Must be lower than Price, otherwise it is ignored.
- Description: shown on the product page. Plain text works as-is; see "Rich descriptions" below for formatting.
- Category: products get clickable filter chips on your store's home page, one per category.
- Brand: when more than one brand exists, buyers get a brand filter.
- Tag: a small badge on the product photo ("Bestseller", "New", "-20%").
- Availability: write "Sold Out", "No" or "Hidden" to disable ordering; anything else (or empty) means available. Sold-out products stay visible but cannot be bought.
- Stock: a number; 0 marks the product sold out automatically.
- Thumbnail and Image1 to Image4: photo links, pasted as text. The thumbnail is the main photo; extra images build a gallery on the product page. A video link (.mp4 or .webm) works in any of these cells too - see "Product images & videos".
- Options (or "Variants"): choices the buyer picks before adding to cart, like sizes or colors. Format:
Size: S, M, L | Color: Red, Blue- each group isName: value, value, ..., groups separated by|. Up to 3 groups with 12 values each. The chosen combination is saved with the order (e.g. "T-shirt (Size: M, Color: Red)"). All variants share the product's price; if a variant costs more, list it as its own row instead. - SKU: your internal product code; shown to search engines and in the machine-readable catalog.
- SEO Title and SEO Description: override what Google shows for a product page.
- File: the name of an uploaded digital file — makes the product digital (see "Uploading files").
- Interval: write weekly, monthly or yearly to turn the product into a subscription (see "Subscriptions").
- Payment Link: this product's own pay-by-link URL (Stripe Payment Link, PayPal.me, or any provider) — see "Getting paid".
Rich descriptions
On paid plans, descriptions support simple Markdown, so a candle maker can list burn times as bullets and a gadget shop can bold the specs (on the Free plan, descriptions render as plain text with line breaks preserved):
- bold with two asterisks, italic with one
- bullet lists with "- " or "* " at line start, numbered lists with "1. "
- headings with "## " for structuring long descriptions
- links with the usual
[text](https://...)form
Plain text stays plain: if you never type a Markdown character, your description renders exactly as written, line breaks included.
Product images & videos
Paste the image address as text into the image cells. All of these work:
- A direct image link (ends in .jpg, .png, .webp...)
- A Google Drive share link: upload photos to a Drive folder, right-click, Share, "Anyone with the link", copy link, paste. SpreadFront converts it to a fast direct link automatically. This is the recommended free option.
- A Dropbox share link (converted automatically too)
- Any photo already on your own website
Videos work too: paste a direct video link (ends in .mp4 or .webm) into the Thumbnail or any Image column. In the product grid it plays silently on a loop like an animated photo; on the product page it appears in the gallery with playback controls. Use a direct file link - a YouTube or Vimeo page link will not play. Keep clips short and small (a few MB) so the page stays fast.
One thing that cannot work: pictures inserted into sheet cells (Insert, then Image). Google does not expose inserted pictures to any external service, so always paste a link instead. Square photos around 800×800 pixels look best.
Uploading files: images and digital products
Every store has a Files & images section in its dashboard. Upload there and SpreadFront hosts the file for you (Free plan: 100 MB, paid plans more):
- Images (JPG, PNG, WebP…): after uploading, copy the link shown next to the file and paste it into your sheet's Thumbnail or Image columns. No external hosting needed.
- Digital products (paid plans; PDF, ZIP, EPUB, MP3, video…): upload the file, then write its exact file name into a File column in your sheet, on the product's row. That product is now digital.
How digital delivery works
Digital delivery is a paid-plan feature (it rides on buyer emails). Card orders deliver instantly - the moment the payment succeeds, the buyer's confirmation email includes the download links. For cash/manual orders, nothing is sent automatically at checkout — the moment you set the order's status to paid, confirmed, shipped or completed, the buyer automatically receives an email with secure download links.
Buyer lost the email, or the 7 days passed? Click ↻ Resend email next to the order - the buyer gets the same status email again with fresh download links, valid another 7 days. Links are personal to that order and expire after 7 days; if a buyer loses one, just set the status again to resend fresh links.
Use cases: an author selling an e-book, a photographer selling presets, a teacher selling worksheets — with cash-free delivery via a Stripe payment link, the whole shop runs itself.
Subscriptions
Pro plan - and billed through Stripe Connect card payments, which are available soon. The sheet column and the storefront display already work today, so you can prepare subscription products now; buyers will be able to order them the moment Connect card payments go live on your store.
Add an Interval column to your sheet and write weekly, monthly or yearly on a product's row — that product becomes a subscription. The storefront shows its price as "€12 / month", and at checkout the buyer's card is charged automatically every period through your own Stripe account until they cancel. Renewals, failed payments and cancellations are all handled inside your Stripe dashboard; every renewal pays out to you directly with 0% SpreadFront commission.
Every renewal also lands in your dashboard as a new paid order (and counts in your store analytics), so your order history shows recurring revenue without opening Stripe.
Rules to know:
- Subscriptions require card payments to be enabled on the store (paid plans; see "Getting paid"). Cash on delivery and payment links cannot bill repeatedly - so for subscription products, card is the only payment option shown at checkout.
- One billing period per order: a buyer cannot mix a weekly and a monthly product in the same checkout — they order them separately.
- Coupons do not apply to orders containing a subscription.
- One-time products can ride along in the same order as a subscription — they are simply charged once on the first bill (shipping too).
Use cases: a weekly veggie box, a coffee-refill club, a monthly membership with a digital download attached, yearly access to a workbook collection.
Your storefront
Large catalogs paginate automatically: the store shows 48 products per page (after any category, brand or search filter), with page links under the grid. Search engines index every page and every product individually, and AI shopping agents always see the full catalog regardless of pages - pagination only keeps the page fast for human visitors.
Every store lives at yourname.spreadfront.com: a real, fast, mobile-friendly website with your products in a grid, category chips, a brand filter, full-text search, product pages with photo galleries, and a shopping cart.
Currencies & languages
53 currencies: USD, EUR, GBP, RSD, BAM, MKD, CHF, SEK, NOK, DKK, PLN, CZK, HUF, RON, BGN, TRY, UAH, GEL, INR, IDR, MYR, SGD, THB, VND, PHP, KRW, JPY, CNY, HKD, TWD, AUD, NZD, CAD, MXN, BRL, ARS, CLP, COP, PEN, ZAR, NGN, KES, GHS, EGP, MAD, DZD, AED, SAR, ILS, IRR, PKR, BDT, LKR. Prices display correctly formatted for the chosen currency, and you can switch a store's currency at any time. Note: card payments support the currencies your own Stripe account can settle; a few (e.g. IRR) work for cash-on-delivery stores only.
7 storefront languages: English, Serbian, German, Spanish, Portuguese, French, Italian - the whole buyer journey (storefront, cart, checkout, buyer emails) runs in the language you pick per store in settings (one at a time), while your product texts stay exactly as written in the sheet. On the Pro plan, the storefront additionally shows a buyer-facing language switcher: you set the default, and each visitor can flip the store chrome to any of the 7 languages - a Swiss shop can genuinely serve German, French and Italian buyers at once.
Your own domain
Connect the www name, redirect the bare name. If you connect www.yourshop.com, also set up a redirect from the bare yourshop.com to it at your DNS host or registrar (usually called "URL forwarding" or "domain redirect"). People - and AI assistants - often type the address without the "www", and without the redirect that bare address goes nowhere.
On paid plans you can serve your store on your own domain (say shop.example.com) instead of the SpreadFront subdomain. In store settings, enter the domain, then add a CNAME record at your DNS provider:
- Name / Host: only the subdomain part - for shop.example.com enter just
shop, for www.example.com justwww(your provider appends the rest). - Target / Value:
customers.spreadfront.com
The HTTPS certificate is issued automatically within minutes and the settings page shows the live status. Once active, search engines are told your domain is the store's one true address and the old subdomain redirects to it automatically, so nothing you shared before breaks.
One DNS rule to know: a bare domain (example.com without www) cannot take a CNAME record. Use www.example.com as the store domain and add your registrar's web-forwarding from the bare domain to www - every registrar offers this.
Your own pages
On paid plans, every store can have up to 10 extra pages - About us, FAQ, shipping & returns, size guides… Create them in the dashboard ("Pages"), write the content in the same Markdown as product descriptions, and they appear as links in your storefront footer (and in your sitemap for search engines).
Analytics & pixels
On the Pro plan, paste your Google Analytics ID (G-…) or Meta/Facebook Pixel ID into store settings and the snippet is injected into every storefront page - so your ad campaigns and traffic reports work exactly as on any other site. Leave the fields empty and nothing is injected. (Independent of this, your dashboard always shows SpreadFront's built-in cookieless store analytics.)
WhatsApp & Viber orders
On paid plans, enter your WhatsApp and/or Viber number in store settings (international format, digits only, e.g. 381641234567) and every buyer sees chat buttons right after ordering - on the confirmation screen for cash orders and on the thank-you page for card orders. The WhatsApp button opens your chat with the order number, items and total pre-filled; the Viber button opens your chat directly (Viber does not support pre-filled messages). Perfect for arranging delivery details where commerce lives in chat.
Look and feel
In store settings you control:
- Theme: four looks — Classic (clean and light), Noir (dark and bold), Boutique (warm cream and terracotta, lovely for crafts and food), Mono (stark black and white, great for fashion and design).
- Logo: shown in the header and used as your store's browser icon.
- Banner: a wide image across the top of the store.
- Store description: a short introduction under the header, also used for search engines.
- Currency: 53 currencies (full list under "Currencies & languages" above), and unlike some competitors you can change it any time.
- Language: the storefront's buttons, cart, checkout and buyer emails can run in English, Serbian, German, Spanish, Portuguese, French or Italian — pick per store in settings. Your product texts stay exactly as you wrote them in the sheet.
Changing your store address
You can rename your store's address (the yourshop in yourshop.spreadfront.com) any time from the store page, as long as the new name is free.
What happens to the old address depends on your plan:
- Paid plans: the old address keeps working forever as an automatic redirect to the new one. Links you have shared, QR codes on printed flyers, and your Google ranking all carry over. You can rename as often as you like; every previous address keeps redirecting.
- Free plan: the old address stops working immediately, is not redirected, and becomes available for anyone else to register. Shared links will break, so tell your customers. If you have open orders (new, confirmed or shipped), finish or cancel them first — the emails those buyers received link to the old address.
Getting paid: 0% commission
SpreadFront never sits between you and your money. Several payment modes, usable together:
- Card payments at checkout (paid plans): connect your own Stripe account in the store's settings (each store can use a different Stripe account), tick "Accept card payments" and save, and buyers pay by card on Stripe's secure page without leaving the purchase flow. The money settles directly in your Stripe account; SpreadFront never touches it and takes 0%. The order flips to paid in your dashboard automatically the moment the payment succeeds — and if the order contains digital products, the buyer's download links are emailed instantly, with no action from you.
- Card payments with your own Stripe API key (paid plans, alternative to the connection flow): in your Stripe dashboard (Developers → API keys) create a restricted key with the permission Checkout Sessions: Write, and paste it into "your own Stripe API key" in store settings. It is stored encrypted and used only to create checkout sessions on your account. Payment is confirmed when the buyer lands on the thank-you page after paying. The connection flow above remains the recommended path (it confirms payments even if the buyer closes the browser immediately, and tracks subscription renewals in your dashboard) — the key option is there when you prefer not to link accounts.
- PayPal checkout (paid plans): in the PayPal Developer dashboard create a live app and paste its Client ID and Secret into store settings (stored encrypted). Buyers see a "Pay with PayPal" option, approve the payment on PayPal's page, and the order flips to paid the moment they return to your store - digital downloads deliver instantly. Money settles directly in your PayPal; SpreadFront takes 0%. One-time products only (subscription products remain card-only), and note PayPal supports fewer currencies than Stripe (no RSD, for example).
- Crypto payments (all plans, including Free): create a free account at NOWPayments, add the wallet you want paid out to, and in its store settings create an API key and generate an IPN secret - paste both into "Crypto payments" in store settings (stored encrypted). Buyers see "Pay with crypto", pick a coin on NOWPayments' hosted page (USDT, USDC, Bitcoin and 300+ others) and pay from their wallet. Stablecoins confirm in seconds; Bitcoin can take up to an hour. The order flips to paid automatically once the network confirms - even if the buyer closed the page - and you get the paid-order push notification. The coins settle in your wallet; SpreadFront takes 0% (NOWPayments charges about 0.5%). One-time products only. If a buyer sends the wrong amount (rare with stablecoins), the order stays unpaid and you get a notification with the details so you can resolve it in your NOWPayments dashboard and then mark the order paid yourself. On the Free plan, buyer confirmation emails are not sent - the buyer sees the confirmation on screen, and you reach them from the order's email address.
- Cash on delivery / pickup (on by default): the order arrives with the buyer's details, you arrange payment when you hand over the goods. Perfect for local sellers, farmers' markets, neighborhood delivery.
- Per-product payment links: providers like Stripe generate a separate link per product (you create the product with its price in their dashboard and get its URL). Use links that stay valid for more than one purchase, like Stripe's product Payment Links, not single-use links that expire after the first buyer. Put each product's link in a Payment Link column in your sheet and switch on "pay online" in store settings. After ordering, the buyer gets one pay button per item, plus their order number to reference. This is also the migration path if you already have pay-by-links from another provider — paste them straight into the column. The money lands in your account; SpreadFront takes nothing and never sees card details. Note: the pay-online option only appears when every product in the buyer's cart has a link.
Use case: a jewelry maker enables both — locals pick up and pay cash, international buyers click through to her per-product Stripe links.
Important with payment links: the payment happens entirely inside Stripe/PayPal, so SpreadFront cannot know whether it succeeded. Enable customer receipts and merchant notifications in your payment provider's settings — that way both sides get an instant email from Stripe/PayPal on every successful payment, and you match it to the order number the buyer was told to mention.
Shipping fees
In settings you can define:
- Shipping fee: a flat amount added to every order.
- Free shipping above: orders whose goods total (after any coupon) reaches this amount ship free.
The cart shows buyers the running math — subtotal, shipping, total — and nudges them naturally toward the free-shipping threshold ("add one more candle and shipping is free" is one of the oldest tricks in commerce, now yours).
Shipping never applies to digital (downloadable) products: an order containing only downloads pays no shipping, and a mixed order pays shipping only because of its physical items.
Coupons
Create discount codes in the store dashboard:
- Percent off (10%) or a fixed amount off (500 RSD)
- an optional minimum order before the code applies
- an optional expiry date (the code works through the end of that day)
- an optional maximum number of uses — after that many orders, the code stops working
- activate and deactivate codes any time
Buyers type the code in the cart and see the discount immediately; the final check happens again at order time, so an expired or exhausted code can never slip through.
Use cases: a WELCOME10 code in your Instagram bio; a MAJA20 code given to an influencer with 50 maximum uses, so you can count exactly how many sales she brought; a springtime -15% that expires on the season's last day. Active coupons per store: 3 on Free, 10 on Starter, 100 on Pro.
Custom checkout fields
Ask buyers for anything your business needs, right on the checkout form: up to four extra fields, each optional or required.
Use cases: a bakery asks for "Preferred delivery time" (required); a print shop asks for "Name to engrave"; a flower shop asks for "Card message". Answers appear with the order in your dashboard, in the notification email, and in the CSV export.
Orders
Where orders live
Every order is stored safely the moment it is placed and appears instantly in your dashboard, with the buyer's details, the items, and the full price breakdown (subtotal, coupon, shipping). Orders are never written into your public product sheet: buyer names and addresses are personal data and stay private.
Order statuses
Work through orders by setting their status: new → confirmed → shipped → completed (or cancelled). This is your lightweight fulfillment tracker. Card orders arrive already marked paid; you can also set an order to paid manually — handy when a bank transfer lands.
Monthly order limits count per calendar month and reset for everyone on the 1st. On paid plans the limit is shared across all your stores - a quiet store's unused orders are available to a busy one. Abandoned card checkouts (where the buyer never completed payment) do not count against your limit.
Notifications
- Push notification to your phone (all plans, free): your phone buzzes the moment an order arrives — see "The merchant app" below.
- One-click confirmation drafts (all plans): in the order list, the buyer's email address is a link. Clicking it opens a pre-written confirmation email in your mail app — order number, items, total, a thank-you — ready to edit and send from your own address. This is how free-plan merchants confirm orders.
- Automatic emails (paid plans): an email to you on every order, an automatic confirmation to the buyer (replies go to you, not to SpreadFront), and automatic status updates when you mark an order confirmed, shipped or cancelled.
- Payment receipts: if you accept payments through a Stripe or PayPal payment link, turn on customer receipts in your Stripe/PayPal settings — the payment provider then emails both you and the buyer the moment a payment succeeds, which SpreadFront itself cannot see.
CSV export
One click in the dashboard downloads all orders as a CSV for Excel or Google Sheets: numbers, dates, statuses, buyers, items, discounts, shipping, totals. Handy for bookkeeping and for your accountant.
The merchant app
Your dashboard at app.spreadfront.com is an installable app:
- On Android or desktop Chrome/Edge, click Install the SpreadFront app in the dashboard (or use the browser's install icon).
- On iPhone: open app.spreadfront.com in Safari, tap Share, then Add to Home Screen, then open the installed icon and sign in.
Once installed you get a real app icon, full-screen experience, and most importantly push notifications: tap "Enable order notifications on this device" and your phone buzzes the moment an order arrives — "New order #12 · Your Store — €49.00". You can enable this on several devices (phone and laptop, for example). On iPhone, notifications require installing first — that's an Apple rule for all web apps.
Store analytics
Each store's dashboard shows a Traffic panel with the last 30 days:
- Visits and product views (which products get looked at most)
- Added to cart and orders, so you can see where buyers drop off
- Order value and the visit-to-order conversion rate
- a daily visits chart, your most-viewed products, and your top referrers (which sites and searches send you traffic)
Two things make this analytics unusual and worth knowing:
- It is measured on the server, not with a tracking script. Your store stays fast, works with ad-blockers on, and needs no cookie banner — there are no cookies and no personal tracking. You get numbers; your buyers keep their privacy.
- Bots are filtered out. Search-engine crawlers and monitoring tools don't inflate your visit counts.
If you want your own tools as well, support for pasting your Google Analytics or Meta Pixel snippet is on the roadmap.
Bot protection at checkout
Checkout is protected by Cloudflare Turnstile, a privacy-friendly replacement for CAPTCHAs. Most buyers see at most a brief "verifying" moment — no traffic lights to click, no distorted text. What it prevents: automated junk orders that would flood your inbox and eat your monthly order quota. Every order in your dashboard was placed by a human.
Being found: SEO and AI readiness
This is where SpreadFront quietly outclasses the competition. Every store automatically ships with:
- Real HTML: your products exist on the page itself, not painted in later by JavaScript, so search engines index them reliably.
- Structured data (schema.org): each product page carries machine-readable Product and Offer markup — name, price, currency, availability, brand, shipping cost — the format Google uses for rich results (price and stock shown right in search listings). The store home page identifies itself as an OnlineStore with a product list.
- A sitemap listing every product page, regenerated automatically as your sheet changes, plus sensible page titles and descriptions (override them per product with the SEO columns).
- A machine-readable catalog at yourstore.spreadfront.com/products.json: your full product list in clean JSON. This is aimed at the near future of shopping, where AI assistants browse and compare on a buyer's behalf — your store is ready to be read by them today.
You don't configure any of this. It is simply how every SpreadFront store is built.
AI shopping agents (agentic commerce)
Every SpreadFront store is agentic commerce ready, on every plan. Stores register structured WebMCP tools with the browser, so AI assistants built into browsers can search your catalog, read product details (including variants), fill the buyer's cart and hand over to your normal checkout - instead of guessing at your pages. Payment is always completed by the human shopper on your checkout page, with all your payment options and bot protection intact.
There is nothing to set up: it is on by default (switch it off in store settings under "Agentic commerce" if you prefer). Agent support in browsers is rolling out - the standard is young - but stores that expose structured tools today are the ones AI assistants can already shop from. Combined with the machine-readable catalog every store serves at /products.json, a per-store /llms.txt map (the file AI assistants check first when someone pastes your store's link into a chat), and full product structured data, your store is as visible to AI assistants as it is to Google. Practical effect: a shopper can paste your store address into ChatGPT or Claude and ask "find me X under Y" - the assistant reads the catalog and answers with your product links, no setup needed, on every plan.
AI assistant endpoint (paid plans): your store also runs its own MCP endpoint at your-store-address/api/mcp - the Model Context Protocol that server-side AI assistants (Claude, ChatGPT and others) use to call external tools. Anyone can add your store's endpoint to their AI assistant as a remote MCP server; the assistant can then search your catalog and read product details directly, and hands the shopper your product and checkout links to complete the order on your storefront. In Claude, for example: Settings → Connectors → add your store's /api/mcp URL. The "Agentic commerce" switch in store settings controls both this endpoint and the browser tools; the endpoint appears within a minute of upgrading and is rate-limited against scraping.
Privacy and security
- Your Google account: never accessed. The only thing SpreadFront reads is the public view link of your product sheet. Sign-in proves your email address, nothing more.
- Your buyers' data: names, addresses and emails live in the order database and your notification emails — never in any public place, and never sold or used for advertising.
- Payments: card details never touch SpreadFront at all; they go to your own payment provider.
- The dashboard is not indexable by search engines, and all traffic is encrypted.
Plans and limits
Free (now): 1 store, 100 products, 100 orders per month, your address at yourshop.spreadfront.com, rich descriptions, coupons (3 active), shipping fees, custom checkout fields, order dashboard with CSV export, analytics, bot protection, the merchant app with push notifications. If your sheet has more rows than your plan's product limit, the store simply shows the first ones; nothing breaks.
When an order would exceed the monthly limit, the buyer is politely asked to try later or contact you directly — nothing breaks, and the counter resets with the new month.
Starter and Pro add more stores (3 / 10), bigger catalogs (1,000 / 3,000 products per store), higher order volumes, automatic email notifications, custom domain support (connect a domain you own - a free SSL certificate is included automatically), removal of SpreadFront branding, a multi-language storefront with buyer language switcher (Pro) and priority email support. Every paid plan starts with a 14-day free trial, and even after billing starts there is a 14-day no-questions-asked refund - 28 risk-free days in total.
Who SpreadFront fits
- Makers and crafters (candles, jewelry, prints): a beautiful boutique-themed store from the sheet where you already track your products; COD locally, payment link worldwide.
- Local food sellers (bakeries, farms, honey, weekly boxes): delivery-time checkout field, shipping fee with free-above threshold, buyer's phone number on every order.
- Fashion resellers and curators: Mono theme, tags like "Last piece", stock column so sold items mark themselves out.
- Anyone leaving store.link: your existing sheet works unchanged — paste the same link and you're live, with faster pages and better search visibility.
