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.

Payments 9 modules

Fulfillment 11 modules

Email and SMS 4 modules

Retention 6 modules

Commerce and content 12 modules

Migration 2 modules

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.

Chat on WhatsApp