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 page builder and no plugins: the spreadsheet you already know is the product catalog, a light merchant dashboard covers store setup and order tracking, and everything else — the storefront, the cart, 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 - card payments through your own Stripe, PayPal checkout, crypto via NOWPayments, cash on delivery or per-product payment links - so the money always settles in your own account and 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
Using an AI assistant to write your catalogue? Give it the prompt from spreadfront.com/ai first: it teaches the assistant these columns and the image rules, so the table it returns pastes straight into the template. In-browser agents can also call the get_sheet_schema and validate_product_rows tools on spreadfront.com.
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
Image cells hold a link, pasted as text, never a picture inserted into the cell (Insert, then Image). Google does not expose inserted pictures to any external service, so a link is the only way. Two ways to get a link:
Option A: upload in your dashboard (simplest, no other account needed)
- Open your store in the dashboard and scroll to Files & images (or use "Files" in the "On this page" menu).
- Choose a photo or short video clip and click Upload. Up to 50 MB per file; total space is 100 MB on Free, 500 MB on Starter, 2 GB on Pro.
- A confirmation appears with the file's link and a Copy button. The same link is also shown in the file list under "Use it": click it to select, then copy.
- In your sheet, paste the link into the product's Thumbnail cell (main photo) or one of the Image1 to Image4 cells (gallery).
- Save. The store picks the change up at the next sync, usually within a minute.
Tip: upload all photos first, then copy the links from the file list in one go. Name the files after the product (red-mug.jpg) so the list is easy to read.
Option B: a link from somewhere else
- 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.
- 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.
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 100 MB, Starter 500 MB, Pro 2 GB):
- Images and short video clips (JPG, PNG, WebP, MP4, WebM…): 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. Step by step in "Product images & videos" above. When you upload, you can also choose explicitly whether a file is a public link for the sheet or a private digital product.
- 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.)
Facebook & Instagram Shops. Since September 2025 Meta sends Shop buyers to the seller's own website with the cart in the link, so every Shop needs a checkout URL that can read it. SpreadFront does this natively: see "Sell on Facebook & Instagram with SpreadFront" below. Background reading: why Square Online carts arrive empty from a Facebook or Instagram Shop.
Sell on Facebook & Instagram with SpreadFront
Your sheet stays the only catalog. SpreadFront publishes it as a catalog feed that Meta fetches every hour, and receives Meta's checkout hand-off into your store's normal cart, with whatever payment methods you use (card, PayPal, bank, cash on delivery, crypto, NBS IPS). The feed works on every plan; the checkout URL is part of Starter and Pro.
Set-up, once (about 20 minutes):
- In your store dashboard open Facebook & Instagram (link at the top of the store page) and switch the channel on. You get a feed URL and a checkout URL. Set the default Google product category on the same page: Meta needs a category for every item before it shows it in a Shop.
- Create or open your Shop. You need a Facebook Page for the business and, for Instagram, a professional (Business) account connected to that Page; both in one business portfolio at business.facebook.com. If you already have a Shop, open Commerce Manager and pick it. If not: Get started → Create a shop, choose Checkout on another website when asked for the checkout method (since September 2025 this is the only method; some accounts no longer see the question), pick your Page and Instagram account as sales channels, create a catalog of type E-commerce or pick an existing one, enter your business email, return window and your store address, accept the Seller Agreement and Submit for review. Review can take from hours to a couple of weeks; you can finish the steps below while you wait.
- Domain verification (only if Meta asks). In Business settings → Brand safety → Domains → Add, choose Meta-tag verification, copy the tag and paste it into the "Domain verification" field on your dashboard's Facebook & Instagram page. SpreadFront puts it into every page of your store at once; then press Verify in Meta. On a custom domain you can use the DNS TXT method instead.
- In the catalog: Data sources → Add items → Data feed → Scheduled feed. Paste the feed URL, choose hourly or daily, save. Item errors, if any, appear per item in the same screen.
- In your Shop: Settings → Checkout → Checkout on another website, paste the checkout URL, then run Meta's Test checkout URL. It opens your URL with two products and a coupon and checks that all of it arrives. Press Test my checkout link in your dashboard first: it does the same check and shows what arrived.
- Keep the Shop in Preview (Settings → General) until the test passes and your own test order went through, then publish it.
What the feed sends. One row per purchasable item: products with an Options column get one row per combination (size, colour and so on), grouped under the product. Rows marked hidden or draft in Availability are never sent; subscription products are skipped (Meta cannot bill recurring items). Prices use your store currency; the discounted price goes out as the sale price; a numeric Stock cell goes out as the quantity.
Item ids. Fill the SKU column and the id is your SKU, so renaming a product keeps its id. Without a SKU the id comes from the product name, and a rename makes Meta see a new item (old ads and tags stop matching). The nightly check warns you when many ids disappeared after sheet edits.
What buyers see. They tap Checkout in the Shop and land on your cart with exactly the items, quantities and the coupon they picked, then pay with any method your store offers. Sold-out or removed items are listed with the reason; an invalid coupon is reported and the buyer can continue without it. Orders from Meta show Source: Instagram Shop (or Facebook Shop) in your order list, and you can filter the list to them.
Countries. Facebook and Instagram Shops are available only in countries Meta supports, and buyers can pay only with the methods your store offers. Where Shops aren't available, the same catalog still powers Meta catalog ads that link to your product pages.
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.
- Card payments through your own bank, Serbia and Hungary (paid plans): if you have, or want, an e-commerce acquiring contract with OTP banka Srbija, UniCredit Bank Srbija, UniCredit Bank Hungary (Nexi VPOS gateway), Banca Intesa Beograd (NestPay gateway) or Alta Pay Group (Payten MerchantSafe Unipay gateway), pick the bank under Payment methods → Card payments via your bank. Buyers pay Visa, Mastercard, DinaCard (and Maestro / American Express where the bank accepts them) on the bank's own secure page (3-D Secure); the money settles to your business account and SpreadFront takes 0%. Choosing a bank reveals a Legal identity section (company name, matični broj / PIB or cégjegyzékszám / adószám, VAT status, address, customer-service phone and email) and a go-live checklist with exactly what the bank's reviewer looks for: store currency in RSD (HUF for Hungary), generated legal pages, consent checkbox, card and bank marks in the footer. Press Generate legal pages to create the terms of sale, delivery, returns & complaints, privacy and card-payment pages in Serbian (plus English when the store is not in Serbian), pre-filled with your data and the statements banks require (conversion, transaction security, refunds to the card only, VAT). The method's on/off switch appears once the checklist is complete. Until the bank sends your production keys, leave Test mode on. With OTP, UniCredit and Alta Pay, checkout then runs against the bank's shared test shop or test terminal automatically. With Banca Intesa (NestPay) the bank gives you separate test credentials - a Merchant ID, a Store key and an API user created in its Merchant Center - which you paste into the Test credentials row; the production row takes the live ones plus the bank's gateway host. Alta Pay's production row takes the Merchant ID, the API user (e-mail + password) and the secret key from its welcome pack; in its MSU merchant portal (Settings → Profile) set the Merchant Notification Service URL to
https://<your store address>/api/bank-notify, so a payment finished after the buyer closed the browser still reaches the order. The bank's test cards are in its welcome pack. Use made-up buyer and cardholder names while testing: the banks watch their test systems, and your own name or company should not appear there. Before going live the bank inspects your storefront against this same checklist and asks for the test-transaction table exported from Merchant Center.
When is the card charged? The default, reserve at purchase and charge when shipped, is what card schemes require for goods you ship later: the amount is reserved on the buyer's card at checkout and SpreadFront books it automatically when you set the order to shipped or completed (there is also a Book payment now button on each order). The bank guarantees the reservation for 7 calendar days (168 hours); after that the booking can be refused and the sale is lost, so ship within a week or book manually before the deadline, which the order list counts down for you. Charge immediately books the full amount the same evening without any action; use it only for things the buyer gets right away (downloads, tickets, services). AIK banka is listed as coming soon. The banks also require that no prohibited goods are on sale (weapons, drugs, medicines, pornography, unlicensed gambling, hazardous materials, protected species, organs): a flagged catalogue blocks the checklist until it is cleaned up. Keep proof of delivery for three years; the bank asks for it in a dispute.
- Bank transfer / NBS IPS QR (Serbian stores in RSD): the buyer sees an NBS IPS QR code on the thank-you page to scan in any m-banking app, and gets a filled-in payment slip (opšta uplatnica) as a PDF, attached to the confirmation email and downloadable. Set it up under Payment methods → Bank transfer / NBS IPS QR: your account number (checked against the bank control digits), recipient name and address (pre-filled from your legal identity), the payment code (121 by default, the QR uses the cashless 221), and the reference model: keep model 97, because banks only guarantee to pass on a reference computed that way, and it is how you recognise the order on your statement. The order stays new until the money arrives - payments by NBS IPS QR land within minutes, any day; slips paid at a bank or post office are booked in bank hours (Mon-Fri), so a Friday-evening payment shows up on Monday. When you see it, set the order to paid. The order row shows the reference to look for. 0% commission, no contract with anyone.
- 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.
Recovering abandoned carts and unpaid orders
Most carts are abandoned before the buyer ever types an email address, so SpreadFront concentrates on the cases where something can still be done, without pop-ups or exit discounts:
- Unpaid online payments. When a buyer presses "Place order" with a card, PayPal or crypto method and never finishes on the payment page, the order stays in your list as new. After 30 minutes you get a push notification; after an hour the buyer gets one reminder email (paid plans) with a signed pay link that reopens the payment for that order, valid for 7 days. Nothing else is sent. The same link appears in the order row ("awaiting payment · pay link") together with one-click email, WhatsApp and Viber nudges, so you can follow up personally with the message already written.
- "Email me my cart". On the cart page buyers can send themselves a link that restores the cart on any device (paid plans). The link carries only product ids and quantities; prices always come from your sheet.
- Come-back bar. A visitor who returns with items still in the cart sees a quiet bar under the header with a checkout button. It can be dismissed and never covers the page.
- Funnel. The store statistics show, for the last 30 days, how many visits added to cart, reached the checkout form, placed an order and paid, so you can see where buyers leave.
- Retargeting. If you use the Meta pixel, it already reports add-to-cart and checkout events, which lets you build a retargeting audience in Ads Manager without anything else from us.
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.
Pickup locations
When Pickup in store is switched on, you can list up to 5 pickup locations in the same Delivery methods section: a name, the address (and opening hours, if you like) and, optionally, a Google Maps link or the "Embed a map" code from Google Maps. With one location, its address is shown at checkout, on the thank-you page and in the order emails. With several, the buyer picks one at checkout and the choice is saved with the order, so you always know where to hand it over. Product pages show a short "Pickup available at: …" line for physical products.
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.
Tracking, notes and the evidence pack
Every order has a small toolbox under its status: tracking (carrier and number; the link is filled in automatically for common carriers and goes into the "shipped" email to the buyer), notes (paste what the buyer wrote or what you agreed on the phone), and a timeline of everything that happened: when the order was placed and from which country, when the payment was confirmed, every status change and every email we sent. Evidence pack downloads all of it as one text file, including the checkout IP address, the time the buyer accepted your terms, and for card payments the authorisation and 3-D Secure result. It is laid out the way Stripe's dispute form and the banks' chargeback procedures ask for the information. Two more statuses, refunded and disputed, keep the history honest, and the order list shows a buyer badge: first order here, or how many orders and whether any ended refunded, disputed or cancelled. Only this store's own history is used.
Protecting yourself from refund fraud
"Refund-as-a-service" is real: people hire others to talk merchants into refunds while keeping the goods. The defence is boring and works: evidence and a policy that does not refund on a story.
- Never refund on a phone call or a chat; ask for the claim in writing and use the notes field.
- Do not refund before the returned item is back and inspected; the generated Returns page already says so.
- For "damaged" claims ask for photos of the item and the packaging within 48 hours, and keep the carrier's delivery record (signature or photo). Use tracked shipping, with signature on delivery above an amount you choose.
- "The package was empty" or "it never arrived" is decided by the carrier's record and the tracking you saved, not by the buyer's photo. A police report can be checked by calling the station yourself.
- For pickup orders, check an ID against the buyer name.
- Refund only to the original payment method, never cash or a different card, and keep delivery proof for three years (the banks require it).
- Make the phone number mandatory above an order value in Checkout fields; disposable email addresses are refused at checkout automatically.
- The checkout itself follows what converts best: order summary beside the form (shipping shown before the address is typed, "add X more for free shipping" when you set a threshold), a structured delivery address (street and number, postal code, city, country pre-selected from where the buyer is) that is required together with a phone number whenever the buyer picks delivery - pickup and downloads ask for neither - browser autofill on every field, errors shown under the field, the discount code behind a link, a "remember my details on this device" tick that needs no account, and a line under the payment choice saying card details are entered on the bank's or Stripe's page. Set a delivery time under Delivery methods ("2-4 working days"): it appears next to the delivery option, because not knowing when the parcel comes is the second most common reason buyers leave.
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, on the Pro plan you can add your own Google Analytics or Meta Pixel ID - see "Analytics & pixels".
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, 25 products, 50 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 you pass the monthly order limit nothing breaks: buyers keep ordering for 14 days of grace while you get an email nudge; after that, new orders are politely asked to try later or contact you directly, and the counter resets with the new month. Orders placed while the store is in Test Mode, and orders you place yourself, never count.
Starter (1 store, 300 products, 300 orders/month, 500 MB) and Pro (3 stores, 2,000 products per store, 1,500 orders/month shared, 2 GB) add 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.