Product information
The pim preset installs a catalog with sales channels, translations and public product media, plus custom fields, imports, bulk edits, tags, saved views and search.
The pim preset is for product information management in the style of
Akeneo or Salsify. A team keeps one catalog, translates it, decides what
each sales channel lists, and publishes images that any storefront can load.
Config
import { defineConfig } from "better-supabase/config";
export default defineConfig({
preset: "pim",
blocks: { catalog: { options: { locales: ["en", "de", "fr"] } } },
});blocks.catalog.options.locales lists the languages the catalog keeps; the
first is the default. npx better-supabase init --preset pim starts a new
project from it, and npx better-supabase add --preset pim adds it to one
you have (CLI).
Blocks
The preset is saas plus these blocks, and
whatever they require:
| Block | Role in the app |
|---|---|
| catalog | Products, variants, channels, translations and media |
| attachments | The product images, served by public URL |
| custom-fields | Product attributes that the team defines |
| imports | Supplier spreadsheets, mapped and checked in a dry run |
| bulk-actions | One change to many products at once |
| tags | Labels such as season or campaign |
| saved-views | Saved filters, such as products missing a translation |
| search | Search across the catalog |
How the blocks connect
A sales channel lists the products it sells and can take its prices from a price list (channels). Each product and variant keeps a title and description per locale (locales and translations). With attachments installed, a product keeps an ordered gallery with alt text per locale (product media).
The preset makes the attachments bucket public
(blocks.attachments.options.publicBuckets with requireScan: false), so a
storefront loads each image from attachments.publicUrl(). Every file in
that bucket is readable by anyone who has its path. Keep supplier contracts
and other private files out of it, or set publicBuckets: [] and serve
images from a bucket of their own.
With ReUI
- Data Grid for the product list, with Filters on channel, tag and a missing translation.
- A sortable gallery for the product media, saved with
catalog.reorderProductMedia. - A Badge on each product for the channels that list it.
Last updated on
ERP
The erp preset installs parties, a catalog, stock by location, quotes priced from the catalog, orders that invoice when paid, employees with time and leave, and expenses.
Property management
The property preset installs units in assets, leases with rent and deposits on the ledger, maintenance requests, tenants with a portal and attachments.