Skip to content

Configure

Everything that is not a secret is in apps/pressline/pressline.config.ts, validated at boot. Edit, commit, redeploy; the Operator View never edits configuration.

export default defineConfig({
name: 'My Shop',
currency: 'USD',
engines: [{ slug: 'sample', baseUrl: 'https://engine.example' }],
catalog: {
offers: [
{
slug: 'tee-black-front',
name: 'Black tee, front print',
catalogProductId: 71, // Printful catalog product
placement: 'front',
technique: 'dtg',
retailPrice: 2500, // minor units, tax excluded
variants: {
'black-m': { catalogVariantId: 4017, label: 'Black / M', color: 'Black', size: 'M' },
},
},
],
},
branding: { logoUrl: 'https://cdn.example/logo.svg', accent: '#0a7d5a', accentText: '#ffffff' },
legal: { termsUrl: '', privacyUrl: '', contactEmail: 'hello@example' },
email: { from: 'My Shop <orders@example>', operator: 'me@example' },
checkout: { publicUrl: 'https://shop.example' },
})
  • Offers point at Printful catalog variants; pressline catalog search "staple" prints a ready-made snippet with the variant IDs and the Printfile Spec each placement implies. pressline catalog check verifies every Offer resolves.
  • Engines are trusted apps you configure with a slug and base URL; each has its own shared secret ENGINE_SECRET_<SLUG> in the platform env.
  • Retail prices are fixed per Offer; shipping is quoted live from Printful (optionally marked up with shipping.markupPercent); tax is Stripe’s.
  • The full schema is in the configuration reference.