notshop-bundle/CONFIGURE.md
2026-04-26 16:34:56 +00:00

2.8 KiB

NoShop Configuration Guide

This guide covers common customizations after forking.


1. Store name & branding

client/src/index.css — change the CSS custom properties to match your brand colors:

:root {
  --primary: 222 47% 20%;       /* main button / link color (HSL format) */
  --background: 0 0% 100%;      /* page background */
  /* ... */
}

.env / Replit Secrets:

STORE_NAME=Acme Supplements
STORE_EMAIL_FROM=orders@acmesupplements.com

client/src/components/layout/Footer.tsx — update footer links, tagline.


2. Payment gateways

Authorize.net (default)

NoShop uses Authorize.net Accept.js for PCI-compliant checkout — card data never touches your server.

  1. Create a sandbox account at developer.authorize.net
  2. Get your API Login ID, Transaction Key, and Public Client Key from the sandbox dashboard
  3. Set secrets: AUTHORIZE_NET_API_LOGIN_ID, AUTHORIZE_NET_TRANSACTION_KEY, AUTHORIZE_NET_PUBLIC_CLIENT_KEY
  4. Set AUTHORIZE_NET_SANDBOX=true while testing, false for live

Stripe (optional)

Set STRIPE_SECRET_KEY and STRIPE_PUBLISHABLE_KEY in secrets. When both are present, customers see a "Stripe" tab at checkout. Leave them empty to disable Stripe entirely.


3. Email

NoShop uses Resend for transactional email (magic-link login, order confirmations).

  1. Create a free Resend account
  2. Verify your sending domain
  3. Set RESEND_API_KEY and STORE_EMAIL_FROM

Edit server/email.ts to customize email templates.


4. Adding products

Products can be added via:

  • Admin panel — visit /admin/products, click "New product"
  • Bulk import — write a migration script that INSERTs into the products table with Drizzle, or use psql / pgAdmin directly

The product schema lives in shared/schema.ts. Key fields:

  • handle — URL slug (e.g. omega-3-fish-oil/products/omega-3-fish-oil)
  • images — array of image URLs (text[])
  • statusactive | draft | archived
  • hsaFsa — boolean, shows HSA/FSA badge

5. Custom domain on Replit

  1. In your Replit project, go to Settings → Custom domain
  2. Add your domain and follow the DNS instructions
  3. Replit handles TLS automatically

6. Database migrations

After editing shared/schema.ts, run:

npm run db:push

For a new Replit project with no existing data:

npm run db:push    # applies schema to a fresh DB
npm run db:seed    # creates your first admin user

7. Admin credentials

The first admin is created by npm run db:seed. Set these secrets before running:

ADMIN_EMAIL=you@yourdomain.com
ADMIN_PASSWORD=your-secure-password

Additional admin users can be added directly to the admin_users table, or you can add an "invite admin" route in server/routes.ts.