Compensa?
보충제·선크림·보습제·기저귀·화장지·세제·사료를 용량당 가격으로 비교
Open-source headless SvelteKit storefront for 26 commerce backends — Medusa, Shopify, Saleor, Vendure, WooCommerce, Litekart and more — plus GoCommerce via an early connector.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Website · Running in production · Backends · Themes · Docs
Svelte Commerce is a production-ready open-source headless ecommerce storefront built with SvelteKit and TypeScript. It connects to commerce backends through APIs, so you can build fast, SEO-friendly storefronts independently of your ecommerce backend — Shopify, WooCommerce, Vendure, Saleor, Medusa and 21 more.
Svelte Commerce talks to any backend through a connector package. No file in this repo names a
connector. Every service resolves through $lib/core/services, and which connector answers is
decided by what package.json installs. Switching backends is two steps:
1. Install the connector in place of the stock one, so npm i — and any Docker build, which
installs from package.json alone — resolves it:
npm uninstall @misiki/litekart-connector
npm i @misiki/shopify-connector # or vendure, medusa, saleor, ...
2. Set that backend's env in .env — PUBLIC_SHOPIFY_API_URL, PUBLIC_MEDUSA_API_URL, the
PUBLIC_LITEKART_* trio, and so on. The convention is PUBLIC_<BACKEND>_API_URL, with any extra
credentials read from the same prefix, so a connector this repo has never heard of configures
itself the same way. Per-backend guides are in docs/.
There is no third step, and nothing to uncomment. vite.config.ts resolves whichever
@misiki/*-connector is installed and exposes it as $connector;
src/lib/core/connectors/active.ts is the one module that wraps it, for every backend. Set
PUBLIC_CONNECTOR to override that — to attach a connector this repo has never heard of
(PUBLIC_CONNECTOR='@my-co/custom-connector'), or to choose when several are installed.
@misiki/kitcommerce-core imports @misiki/litekart-connector by name — its peerDependency — so
a shim in vite.config.ts redirects that specifier onto the connector you installed. It does
nothing while Litekart is installed.
Each connector maps one platform's API onto a shared 43-service surface (product, cart,
checkout, order, auth, address, …). Coverage below is measured, not asserted: a script
traces which services actually reach the HTTP layer, following each connector's own request helpers.
Every endpoint was written by reading the platform's authoritative source — the OpenAPI spec, the RAML, the router registration, or the controller code itself. We did not guess routes, and where a route could not be verified we left an explicit placeholder rather than ship a plausible-looking path that 404s in a merchant's store.
But none of these have been run against a live production instance. That is the single biggest gap, and the one thing platform maintainers can fix that we cannot.
| Platform | npm package | Coverage | Cart | Checkout | Order | Auth | Help wanted with |
|---|---|---|---|---|---|---|---|
| Litekart | @misiki/litekart-connector | 39/43 | ✅ | ✅ | ✅ | ✅ | — |
| Vendure | @misiki/vendure-connector | 39/43 | ✅ | ✅ | ✅ | ✅ | — |
| Medusa | @misiki/medusa-connector | 31/43 | — | ✅ | ✅ | ⛔ | address, auth, cart, category, payment-method, product, search, user |
| Broadleaf Commerce | @misiki/broadleaf-connector | 28/43 | ✅ | ✅ | ✅ | ✅ | — |
| Saleor | @misiki/saleor-connector | 28/43 | — | — | — | ⛔ |
✅ wired · ⛔ throws NotSupportedError — the platform has no real endpoint, and a stub that
mints a session for any password is an auth bypass, not a placeholder · — not yet wired
A low number is often the correct answer, not a to-do. OpenCart core ships exactly ten API
controllers — cart, coupon, currency, customer, login, order, payment, reward, shipping, voucher —
and no product, category or search controller at all. Its 9/43 is the honest ceiling for that API.
Services excluded from "help wanted" are Litekart-native concepts (reels, deals, chat,
gallery, popularity, banner, …) that have no equivalent on any third-party platform.
If you build or maintain one of these platforms, in priority order:
spree.readthedocs.io,
api.sylius.com, django-oscar-api's route page) and we fell back to reading source.Per-platform open questions are in CONNECTORS.md —
e.g. does Shopware's Store API have standalone voucher lookup? Is REST planned for
Magento_Review/Magento_Wishlist, which ship no webapi.xml? Is listing → Product the mapping
Sharetribe would recommend?
Open an issue or PR on the connector repo under github.com/misiki-in, or start a discussion. We will credit you in the connector README.
| Capability | Litekart | Shopify | Medusa | Vendure | Saleor | WooCommerce |
|---|---|---|---|---|---|---|
| Product listing / search | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Product detail page | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Categories / collections | ✅ | ✅ | ✅ | ✅ | ❓ | ✅ |
| Cart | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Checkout | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Payment methods | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Order placement | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Order history / detail | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Auth / registration | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Addresses | ✅ | ✅ | ✅ |
✅ supported · ❌ not implemented yet · ❓ untested
Litekart is the reference implementation and is the most complete. The Medusa, Vendure and Saleor connectors cover the core commerce path — browse, product, cart, checkout, order — and are actively being extended. PRs welcome.
Maintainers of these platforms: we would rather ask than guess. The fastest way to help is a sandbox instance we can point a storefront at, or ten minutes telling us our endpoint idioms are wrong. Specific open questions per platform are in CONNECTORS.md.
Each backend needs a few settings changed before the storefront will work end to end.
Vendure
authOptions.requireVerification → falseSee VENDURE.md for the full Vendure setup guide (env, store identity, architecture, limitations, troubleshooting).
Saleor
falseisPhoneMandatory → falseSee SALEOR.md for the full Saleor setup guide.
Medusa
See MEDUSA.md for the full Medusa setup guide.
| Backend | Demo |
|---|---|
| Litekart | https://arialshop.com/ |
| Medusa | add URL |
| Vendure | add URL |
| Saleor | add URL |
git clone https://github.com/itswadesh/svelte-commerce.git
cd svelte-commerce
cp .env.example .env
npm install
npm run dev
.env.example points at the public Litekart demo API, so the storefront works straight away. Edit
.env to point at your own backend, and see Backend support to switch connectors.
Open http://localhost:5173 — your storefront should be up and running.
Other useful scripts:
npm run build # production build
npm run preview # preview the production build locally
npm start # run the built app with the Node adapter
npm run check # sync connector types + svelte-check
Two files: kitcommerce.config.ts and .env.
kitcommerce.config.ts's default export holds overrides (name, logo,
favicon, currency, menus, plugins, cssVariables), merged over
src/lib/core/connectors/default-store.json. Leave it {} on Litekart: the API serves all of it..env.example to .env. Each backend's variables are listed in its
platform guide.Full docs live in docs/, including a setup guide for every one of the 26
supported backends:
Click on the button to directly deploy to Netlify, Vercel or ZopDay. Zero configuration required.
We also support docker images, use the following command to pull the latest docker image and deploy it:
docker run -d -p 3000:3000 ghcr.io/itswadesh/svelte-commerce:latest
| address, auth, cart, category, checkout, coupon, order, page, payment-method, search, user |
| Shopware | @misiki/shopware-connector | 28/43 | ✅ | ✅ | ✅ | ✅ | coupon |
| Virto Commerce | @misiki/virto-connector | 28/43 | ✅ | ✅ | ✅ | ✅ | — |
| WooCommerce | @misiki/woocommerce-connector | 27/43 | ✅ | ✅ | ✅ | ⛔ | auth, wishlist |
| Magento Open Source | @misiki/magento-connector | 26/43 | ✅ | ✅ | ✅ | ✅ | review, wishlist |
| Spree Commerce | @misiki/spree-connector | 26/43 | ✅ | ✅ | ✅ | ✅ | review |
| X-Cart | @misiki/x-cart-connector | 26/43 | ✅ | ✅ | ✅ | ✅ | vendor |
| EverShop | @misiki/evershop-connector | 25/43 | ✅ | ✅ | ✅ | ✅ | review, vendor, wishlist |
| Spryker | @misiki/spryker-connector | 25/43 | ✅ | ✅ | ✅ | ✅ | coupon |
| nopCommerce | @misiki/nopcommerce-connector | 24/43 | ✅ | ✅ | ✅ | ✅ | coupon, currency |
| PrestaShop | @misiki/prestashop-connector | 24/43 | ✅ | ✅ | ✅ | ⛔ | auth, payment-method, review, wishlist |
| Sylius | @misiki/sylius-connector | 24/43 | ✅ | ✅ | ✅ | ✅ | page, vendor, wishlist |
| Swell | @misiki/swell-connector | 23/43 | ✅ | ✅ | ✅ | ✅ | review, state, vendor, wishlist |
| Bagisto | @misiki/bagisto-connector | 22/43 | ✅ | ✅ | ✅ | ✅ | coupon, page, payment-method, vendor |
| commercetools | @misiki/commercetools-connector | 21/43 | ✅ | ✅ | ✅ | ✅ | country, currency, page, vendor |
| OroCommerce | @misiki/orocommerce-connector | 21/43 | ✅ | ✅ | ✅ | ✅ | currency, review, vendor, wishlist |
| Sharetribe | @misiki/sharetribe-connector | 21/43 | — | ✅ | ✅ | ✅ | address, cart, country, coupon, state, wishlist |
| CS-Cart | @misiki/cs-cart-connector | 20/43 | ✅ | ✅ | ✅ | ⛔ | address, auth, country, coupon, currency, state, wishlist |
| Shuup | @misiki/shuup-connector | 19/43 | ✅ | ✅ | ✅ | ✅ | country, coupon, page, review, state, wishlist |
| Shopify | @misiki/shopify-connector | 16/27 | ✅ | ✅ | ✅ | ✅ | country, page, profile, review, vendor, wishlist |
| Django Oscar | @misiki/oscar-connector | 15/43 | ✅ | ✅ | ✅ | ✅ | coupon, currency, page, payment-method, review, search, state, vendor, wishlist |
| OpenCart | @misiki/opencart-connector | 9/43 | ✅ | ✅ | ✅ | ⛔ | address, auth, category, coupon, page, profile, search, user, vendor, wishlist |
| ✅ |
| ✅ |
| ✅ |
| Customer profile | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Wishlist | ✅ | ❓ | ❓ | ❌ | ❓ | ❓ |
| Reviews | ✅ | ❓ | ❓ | ❌ | ❓ | ❓ |
| Coupons / promotions | ✅ | ❓ | ❓ | ❌ | ❓ | ❓ |
| Multi-currency / regions | ✅ | ✅ | ❓ | ❌ | ❓ | ❓ |
| Faceted search (Meilisearch) | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
| CMS pages, blog, banners, FAQ | ✅ | ❓ | ❓ | ❌ | ❌ | ❓ |
| Multi-vendor / marketplace | ✅ | ✅ | ❌ | ❌ | ❌ | ❓ |