Skip to main content

documentation

Documentation

How to bring a store you already run across to Nesta Market, and what happens to it once it's here.

Getting Started

  1. 1

    Request access

    Nesta Market is invite-only. Request access and we'll be in touch. Invited members aren't charged and we don't collect card details.

  2. 2

    Point it at your store

    Give it the URL of a live store you already run. It detects the platform and picks the right adapter.

  3. 3

    The storefront comes across

    Products with their full image galleries, categories, content and legal pages, navigation menus, theme and branding, homepage layout, promotional banners, blog posts, SEO metadata, social links, shipping zones and methods, tax rules and store settings.

  4. 4

    Review what landed

    Every step of the clone reports back as ok, partial, skipped or failed, and a job that finishes with something missing is marked “completed with gaps” rather than simply “completed”. Fix the gaps before you go live.

  5. 5

    Publish and parity-check

    The storefront is published, then a parity check fetches the cloned pages and images to confirm they actually render. Connect your own domain, verified with a DNS record, or use a Nesta Market subdomain.

What comes across, by source

Coverage is not the same everywhere. These are the three tiers, and they are the honest picture rather than a marketing one.

Ecwid and Shift4Shop

Dedicated adapters with the fullest coverage: catalogue and image galleries, categories, content and legal pages, navigation, theme and branding, homepage layout, banners, blog, SEO, shipping, tax and store settings.

Shopify

Catalogue and content only. Theme and branding, homepage layout, promotional banners, shipping and tax are not cloned from Shopify — you set those up here.

Everything else

WooCommerce, Squarespace, BigCommerce, a custom storefront — these have no dedicated adapter and fall back to a best-effort browser scrape: products, basic branding, navigation, pages and SEO metadata. Results vary with how the source store is built.

What does not come across live

Some things are deliberately not carried over, because guessing at them would cost you money.

Payment methods

Imported as disabled placeholders with no credentials. You reconnect each provider yourself before taking money.

Carrier-quoted shipping

Rates the source store quoted live through a carrier import disabled — never as free shipping, and never as an invented flat rate.

Very large variant sets

Options and variants do come across — sizes and colours are rebuilt as sellable variants with their own price steps. A product whose options multiply out past a thousand combinations is reported rather than materialised, so you can simplify it instead of us guessing.

Customers and orders

A clone brings across the storefront, not your trading history. Order and customer records stay with the source platform.

Order webhooks: handle refunds

If your app grants something when an order is paid (access, a licence, a download, credits), a refund is your cue to take it back. Treat refunds as an entitlement event, not just an accounting one.

  • You must handle both order.partially_refunded and order.refunded.
  • When refund.revoke_entitlements is true, take back whatever the purchase granted. When it is false, leave it alone.
  • refund.lines says which items were refunded. Use it for partial refunds, and take back only those items. An empty list on a full refund means the whole purchase.
  • Deliveries can arrive out of order, so a refund can reach you before order.paid. If the refund is for an order you have never heard of, do not grant anything.
  • Each partial refund is its own delivery. Dedupe on refund.id, not on the order.

What the refund carries

  • refund.id — our id for this refund.
  • refund.amount and refund.currency — how much was refunded this time, and in what currency.
  • refund.tax and refund.shipping — the tax and shipping inside that amount.
  • refund.destination — original, store_credit, split or outside.
  • refund.reason_code — customer_request, duplicate, test, not_delivered, damaged, fraud or other.
  • refund.revoke_entitlements — true or false, as above.
  • refund.lines[] — each entry has order_item_id, product_id, sku, name, quantity, amount and tax. Empty for an amount-only refund.
  • order.refunded_amount — the total refunded on the order so far, and order.fully_refunded — true once the whole order is refunded.

Once you're here

AI Product Analysis

Upload a product photo and AI drafts the name, description, category, pricing and tags. You edit before saving.

Theme and homepage editing

Adjust the cloned theme and rebuild the homepage section by section in the visual builder.

Inventory Management

Track stock levels and manage variants across your catalogue.

Payment Processing

Connect your own PayPal account and take payment through it.

Custom Domains

Use your own domain name, verified with a DNS record, or start with a Nesta Market subdomain.