Rocky_Mountain_Vending/docs/operations/SITE_CONFIGURATION.md

3.3 KiB

Site Configuration Guide

This document explains how to configure the site to show different manufacturer sets across three different websites.

Overview

The system supports three site tiers with different manufacturer counts:

  1. rockymountainvending.com (Tier 1) - Least manufacturers (7 top manufacturers)
  2. vending.support (Tier 2) - Medium manufacturers (15 manufacturers)
  3. quickfreshvending.com (Tier 3) - All manufacturers

Environment Variable Setup

Set the NEXT_PUBLIC_SITE_DOMAIN environment variable to configure which site tier to use.

For rockymountainvending.com (Tier 1)

NEXT_PUBLIC_SITE_DOMAIN=rockymountainvending.com

Manufacturers included:

  • Crane (includes BevMax, Merchant-Series)
  • Royal Vendors
  • GPL
  • AP (Automatic Products)
  • Dixie-Narco
  • USI
  • Vendo
  • Payment Components (Coin-Mechs, Bill-Mechs, Card-Readers)

Minimum manual count: 3 per manufacturer

For vending.support (Tier 2)

NEXT_PUBLIC_SITE_DOMAIN=vending.support

Manufacturers included:

  • All Tier 1 manufacturers, plus:
  • Merchant-Series
  • BevMax
  • DSVending
  • Seaga
  • AMS
  • Rowe
  • Payment Components (Coin-Mechs, Bill-Mechs, Card-Readers)

Minimum manual count: 2 per manufacturer

For quickfreshvending.com (Tier 3)

NEXT_PUBLIC_SITE_DOMAIN=quickfreshvending.com

Manufacturers included:

  • ALL manufacturers including:
    • All from Tier 1 and Tier 2
    • Other folder (uncategorized)
    • Savamco, Cavalier, Wurlitzer, Vendcraft, Hot, Fastcorp, FRD, etc.

Minimum manual count: 1 per manufacturer

Configuration Files

site-manufacturer-mapping.json

This file contains the complete mapping of manufacturers to each site tier. It's located at:

code/lib/site-manufacturer-mapping.json

site-config.ts

This file provides helper functions to:

  • Get the current site domain
  • Get allowed manufacturers for a site
  • Get minimum manual count
  • Handle manufacturer alias matching

How It Works

  1. The system reads NEXT_PUBLIC_SITE_DOMAIN environment variable (defaults to rockymountainvending.com)
  2. It loads the site configuration from site-manufacturer-mapping.json
  3. Manuals are filtered in this order:
    • Filter by MDB compatibility (existing)
    • Filter by site tier/allowed manufacturers (new)
    • Filter by minimum manual count per manufacturer (new)
  4. Only manuals matching all criteria are displayed

Deployment

For each site deployment, set the appropriate environment variable:

Vercel/Netlify

Add the environment variable in your deployment platform's settings:

  • Key: NEXT_PUBLIC_SITE_DOMAIN
  • Value: rockymountainvending.com, vending.support, or quickfreshvending.com

Local Development

Create a .env.local file in the code directory:

NEXT_PUBLIC_SITE_DOMAIN=rockymountainvending.com

Manufacturer Aliases

The system automatically handles manufacturer name variations using aliases defined in site-manufacturer-mapping.json. For example:

  • "Royal-Vendors" (directory name) → "Royal Vendors" (canonical)
  • "BevMax" → "Crane"
  • "Merchant-Series" → "Crane"

This ensures manuals are correctly matched regardless of how the manufacturer name appears in directory or file names.

Payment Components

Payment components (Coin-Mechs, Bill-Mechs, Card-Readers) are included on all sites as they are universal and work with all vending machines.