44 modules, in their own words
Every name below is a directory under ext/ in the GoCommerce repository. Each description is the first sentence of that package's own doc comment, read from the source when this page was built — so it says what the code says, not what a brochure would.
- 9 payments
- 11 fulfillment
- 4 email and sms
- 6 retention
- 12 commerce and content
- 2 migration
Payments 9 modules
-
Adyen takes payments through Adyen.
ext/payments-adyen - Creem takes payments through Creem.
ext/payments-creem - Helcim takes payments through Helcim.
ext/payments-helcim - Hyperswitch takes payments through Hyperswitch.
ext/payments-hyperswitch -
Lemon Squeezy takes payments through Lemon Squeezy.
ext/payments-lemonsqueezy -
Paddle takes payments through Paddle Billing.
ext/payments-paddle -
Razorpay takes payments through Razorpay.
ext/payments-razorpay -
RevenueCat takes payments through RevenueCat Web Billing.
ext/payments-revenuecat -
Stripe takes card payments through Stripe.
ext/payments-stripe
Fulfillment 11 modules
- Delhivery books shipments through Delhivery.
ext/fulfill-delhivery - Easyship books shipments through Easyship.
ext/fulfill-easyship - India Post records shipments handed to India Post.
ext/fulfill-indiapost - NimbusPost books shipments through NimbusPost.
ext/fulfill-nimbuspost - Onfleet dispatches deliveries through Onfleet.
ext/fulfill-onfleet - Shippit books shipments through Shippit.
ext/fulfill-shippit - Shippo buys shipping labels through Shippo.
ext/fulfill-shippo - Shiprocket books shipments through Shiprocket.
ext/fulfill-shiprocket - ShipStation buys shipping labels through ShipStation.
ext/fulfill-shipstation -
USPS buys shipping labels directly from the United States Postal Service.
ext/fulfill-usps - Veeqo records shipments against a Veeqo order.
ext/fulfill-veeqo
Email and SMS 4 modules
- MSG91 delivers gocommerce notifications as SMS through MSG91.
ext/notify-msg91 -
Resend delivers gocommerce notifications as email through Resend.
ext/notify-resend -
SendGrid delivers gocommerce notifications as email through SendGrid.
ext/notify-sendgrid -
Twilio carries the store's SMS through Twilio's REST API.
ext/notify-twilio
Retention 6 modules
- Cart recovery chases a basket somebody gave up on.
ext/cart-recovery - Product feeds publishes the catalogue in the shapes advertising platforms read: Google Merchant Center's RSS feed and Meta's catalogue CSV.
ext/feeds - Klaviyo tells Klaviyo what happens in this store, so its flows — abandoned cart, post-purchase, win-back — have something to run on.
ext/klaviyo - Newsletter is the signup box: who asked to hear from the store, and who asked to stop.
ext/newsletter - Reviews is what shoppers say about a product: a rating out of five and some words, moderated before it shows.
ext/reviews - Wishlist is what shoppers wanted and did not buy yet.
ext/wishlist
Commerce and content 12 modules
- CMS adds content pages — about, terms, delivery, a landing page — to a gocommerce store.
ext/cms - Contact is the storefront's contact form and the inbox behind it.
ext/contact - FAQ is the questions a shop is asked often, and its answers.
ext/faq - Identity adds shopper accounts to a gocommerce store.
ext/identity - IndexNow tells search engines a page changed, the moment it does.
ext/indexnow - Invoices issues a numbered invoice for every paid order.
ext/invoices - MCP exposes a gocommerce store to AI agents over the Model Context Protocol.
ext/mcp - Navigation is the storefront's menus: a header, a footer, a sidebar, each a tree of items an operator arranges by hand.
ext/navigation -
Search (Meilisearch) keeps a Meilisearch index of the catalogue and answers storefront searches from it.
ext/search-meilisearch - Sitemaps publishes the storefront's sitemap: every active product, every active collection, and every published page when the cms module is installed, each with the time it last changed.
ext/sitemaps - Translations serves catalog content in the language a shopper asked for.
ext/translations - Webhooks delivers this store's events to somebody else's server.
ext/webhooks
Migration 2 modules
- Amazon import imports a product from an Amazon listing.
ext/import-amazon - Shopify import imports a whole Shopify catalogue in one go.
ext/import-shopify
How a module is installed
Import it, construct it, pass it in. A module you did not import is not in your binary.
main.go
import (
"github.com/itswadesh/gocommerce/core"
stripe "github.com/itswadesh/gocommerce/ext/payments-stripe"
shiprocket "github.com/itswadesh/gocommerce/ext/fulfill-shiprocket"
)
modules := []gocommerce.Module{
stripe.New(stripe.Config{}),
shiprocket.New(shiprocket.Config{}),
} Module path github.com/itswadesh/gocommerce, the repository it lives in. Modifying a module · Modules on the GoCommerce page
Partner
One, and the distinction matters: a partner hosts this website, an integration is a module that speaks to a provider's API.
FAQ
Questions about modules
What is a module?
A Go package under ext/ in the GoCommerce repository that you import and pass to the app at start-up. It is compiled into your binary only if you import it; a module you leave out contributes no code, no routes and no tables. There is no runtime plugin loading.
Where do these descriptions come from?
Each is the first sentence of that package’s own doc comment, extracted from the source at build time. They are the code describing itself, not marketing copy about it.
Are these partnerships or endorsements?
No. A module speaks to a provider’s public API. None of the providers listed endorses GoCommerce, and the only partner of this website is the one named at the bottom of the page: Cloudflare hosts it.
Is there a module I need that is not here?
Then it does not exist yet. Modules follow one pattern — read any of the payment or fulfillment packages as the template — and a new one does not change the core.
Start with none, add the one an order asks for
The default store transacts with no modules installed. These are what you reach for afterwards.