โš™๏ธ Administrator Dashboard Guide

Complete guide to managing your Renewed Renaissance e-commerce platform

๐Ÿš€ Deployment Guide ๐Ÿงช Testing Guide ๐Ÿ”ง Troubleshooting

๐Ÿ” Access Your Dashboard

๐Ÿ”‘ Login Information

Contact your system administrator for login credentials.

โš ๏ธ Security Notice: Never share your credentials. Use strong, unique passwords.

๐Ÿ“ฆ Product Management

Adding New Products

1 Navigate to Products

Click "Products" in the left sidebar โ†’ "Add Product"

2 Enter Product Details
  • Name: Clear, descriptive product title
  • Description: Detailed product information (supports rich text)
  • Category: Select appropriate category (Vintage, Renaissance, etc.)
  • Product Type: Define attributes (size, color, material)
3 Upload Images

Add high-quality images (recommended: 1200x1200px minimum)

  • First image becomes the main product photo
  • Drag to reorder images
  • Add alt text for accessibility
4 Set Pricing & Inventory
  • Base Price: Regular selling price
  • Compare at Price: Original price (for showing discounts)
  • SKU: Stock keeping unit (unique identifier)
  • Inventory: Track quantity, set low stock alerts
5 Configure Variants

For products with multiple options (sizes, colors):

  • Add variant attributes
  • Set individual pricing and SKUs
  • Track inventory per variant
6 Publish Product

Set visibility, publication date, and channel availability

๐Ÿ’ก Pro Tip: Use the staging environment to test new products before publishing to production!

๏ฟฝ๏ธ Command-Line Product Management

For bulk operations and automation, use the CLI scripts located in src/scripts/:

Available Scripts

Script Purpose
add_product.py Add single products via GraphQL API
manage_products.py Manage products via Django shell (list, fix pricing, update stock)
import_products.py Bulk import products from a directory

Prerequisites

1 Install Dependencies

pip install requests pyyaml

2 Navigate to Scripts Directory

cd src/scripts/

Adding Products via CLI

1 Add default sample product

python add_product.py --env dev

2 Add product from markdown file

python add_product.py --env prod --product-file products/eternal-flight-origami-crane.md

Managing Existing Products

List all products

python manage_products.py --env prod --action list

Fix variant pricing

python manage_products.py --env prod --action fix-pricing --sku "Ete/pri/4in" --price 85.00

Update stock quantity

python manage_products.py --env prod --action update-stock --sku "Ete/pri/4in" --quantity 25

Add variant to existing product

python manage_products.py --env prod --action add-variant --product-slug eternal-flight-handcrafted-origami-crane-print --sku "NEW-SKU" --price 99.00

Bulk Import Products

Import all products from directory

python import_products.py --env dev --source-dir ./products/

Dry run (preview without changes)

python import_products.py --env prod --source-dir ./products/ --dry-run

Environment Configuration

Environment API URL Public URL
dev localhost:10080 dev.renewed-renaissance.com
stage localhost:9080 stage.renewed-renaissance.com
prod localhost:8080 www.renewed-renaissance.com

Product Markdown Format

Products can be defined in markdown files with YAML frontmatter:

---
name: "Product Name"
sku: "SKU-123"
description: "Product description..."
regular_price: "100"
sale_price: "80"
stock_status: "instock"
categories: "art > prints"
---

Product body text (used if description not in frontmatter)
            

Sample Products Included

โš ๏ธ Recommended Workflow:
  1. Test product addition in dev environment first
  2. Validate in stage environment
  3. Deploy to prod when ready

๏ฟฝ๐Ÿ“‹ Order Management

Processing Orders

Order Status Action Required Next Step
Unfulfilled Review order details Create fulfillment โ†’ Mark items as fulfilled
Partially Fulfilled Complete remaining items Fulfill remaining products
Fulfilled Ship products Add tracking number โ†’ Notify customer
Returned Process refund Inspect items โ†’ Issue refund/credit

Fulfillment Workflow

1 Open Order

Navigate to Orders โ†’ Click order number

2 Verify Payment

Confirm payment status is "Paid" or "Authorized"

3 Create Fulfillment

Click "Fulfill" โ†’ Select items to ship โ†’ Save

4 Add Tracking

Enter carrier and tracking number โ†’ Customer receives email automatically

5 Mark as Sent

Update fulfillment status when package is shipped

๐Ÿ‘ฅ Customer Management

Customer Information

View and manage customer accounts:

Creating Customer Accounts

1 Navigate to Customers โ†’ Add Customer
2 Enter customer details (email required)
3 Optionally send welcome email with login instructions

Customer Groups

Segment customers for targeted marketing:

๐Ÿ’ฐ Discounts & Promotions

Creating Discount Codes

1 Navigate to Discounts

Click "Discounts" โ†’ "Create Voucher"

2 Set Discount Details
  • Code: Customer-facing code (e.g., SUMMER25)
  • Type: Percentage, Fixed amount, or Free shipping
  • Value: Discount amount
3 Set Conditions
  • Minimum purchase amount
  • Specific products/categories
  • Customer eligibility
  • Usage limits (per customer or total)
4 Schedule Promotion

Set start and end dates/times

Sales & Promotions

Create automatic sales that apply to products:

๐Ÿ“Š Analytics & Reports

Available Reports

Report Type What It Shows Use Case
Sales Overview Revenue, orders, average order value Daily performance tracking
Product Performance Best sellers, slow movers Inventory planning
Customer Analytics New vs returning customers Marketing effectiveness
Traffic Sources Where customers come from Marketing ROI

Key Metrics to Monitor

โš™๏ธ Settings & Configuration

Store Settings

Payment Configuration

Configure payment gateways:

Email Templates

Customize automated emails:

๐Ÿ”ง Common Tasks Quick Reference

Task Navigation Path
Add new product Products โ†’ Add Product
Process refund Orders โ†’ [Order] โ†’ Refund
Create discount code Discounts โ†’ Create Voucher
Add customer Customers โ†’ Add Customer
View sales report Analytics โ†’ Sales
Update inventory Products โ†’ [Product] โ†’ Variants
Configure shipping Configuration โ†’ Shipping
Manage taxes Configuration โ†’ Taxes

๐Ÿ†˜ Troubleshooting

Common Issues & Solutions

Issue: Can't log in to dashboard
  • Verify you're using the correct environment URL
  • Check caps lock is off
  • Try password reset if needed
  • Clear browser cache and cookies
Issue: Product not appearing on storefront
  • Check product is published (not draft)
  • Verify channel assignment
  • Ensure product has available inventory
  • Check publication date hasn't passed
Issue: Customer not receiving emails
  • Verify email address is correct
  • Check spam/junk folders
  • Confirm email notifications are enabled
  • Test with different email address
Issue: Discount code not working
  • Check code is active (dates correct)
  • Verify minimum purchase requirements met
  • Ensure usage limit not exceeded
  • Confirm products are eligible

๐Ÿ“ž Support Resources

Need Help?

  • Developer Support: See Developer Documentation
  • System Status: Check infrastructure health on main dashboard
  • GraphQL API: Test queries at /graphql endpoint

โš ๏ธ Before Making Changes in Production

  • Always test changes in staging environment first
  • Back up data before bulk operations
  • Schedule major changes during low-traffic periods
  • Communicate changes to your team

๐Ÿš€ Deployment Pipeline & Promotion

Changes flow through three environments: Dev โ†’ Stage โ†’ Production. Each promotion includes automated testing to ensure quality.

๐ŸŒ Environment Overview

Environment URL Purpose Port
๐ŸŸข Development dev.renewed-renaissance.com Testing new features, integration testing 10080
๐ŸŸก Staging stage.renewed-renaissance.com Pre-production validation, acceptance testing 9080
๐Ÿ”ด Production www.renewed-renaissance.com Live customer-facing site 8080

๐Ÿ“‹ Promotion Process

1 Deploy to Development

From the project root directory:

cd deploy/01_dev
docker compose up -d --build
2 Run Integration Tests (Dev)

Verify the deployment with automated tests:

cd /path/to/renewed-renaissance-saleor
npx vitest run --config vitest.integration.config.ts tests/integration/dev.test.ts
โœ… Expected: All 9 tests should pass (API health, products, categories, storefront)
3 Promote to Staging

After dev tests pass:

cd deploy/02_stage
docker compose up -d --build
4 Run Integration Tests (Stage)
npx vitest run --config vitest.integration.config.ts tests/integration/stage.test.ts
5 Run Acceptance Tests (Stage)

Full user journey and performance validation:

npx vitest run --config vitest.integration.config.ts tests/acceptance/stage.test.ts
โœ… Expected: 8 acceptance tests covering browsing, checkout, performance, and security
6 Run DAST Security Scan (Stage) โš ๏ธ REQUIRED

Before promoting to production, run a security scan:

# Pull ZAP scanner (first time only)
docker pull ghcr.io/zaproxy/zaproxy:stable

# Run ZAP baseline scan
docker run --rm \
  -v $(pwd)/security-reports:/zap/wrk:rw \
  -t ghcr.io/zaproxy/zaproxy:stable \
  zap-baseline.py \
  -t https://stage.renewed-renaissance.com \
  -r zap-report.html \
  -J zap-report.json \
  -I
โš ๏ธ GATE: Must show 0 FAIL results to proceed to production
Reports: Check security-reports/zap-report.html for details
7 Promote to Production

After DAST scan passes (0 FAIL results):

cd deploy/03_prod
docker compose up -d --build
8 Run Integration Tests (Prod)

Verify production deployment:

npx vitest run --config vitest.integration.config.ts tests/integration/prod.test.ts

โš ๏ธ Promotion Checklist

  • โœ… All integration tests pass in staging
  • โœ… All acceptance tests pass in staging
  • โœ… DAST security scan shows 0 FAIL results
  • โœ… DAST WARN results reviewed and documented
  • โœ… Review any error logs: docker compose logs api
  • โœ… Verify product images load correctly
  • โœ… Test checkout flow manually if making payment changes
  • โœ… Schedule production deployments during low-traffic periods

๐Ÿงช Running Tests

Test Types

Test Type Location Purpose Required for Prod?
Unit Tests src/saleor-product-manager/tests/ Individual component functionality Recommended
Integration Tests tests/integration/ API endpoints, service connectivity โœ… Required
Acceptance Tests tests/acceptance/ User journeys, performance, security โœ… Required
๐Ÿ”’ DAST Security Scan security-reports/ OWASP ZAP vulnerability scanning โš ๏ธ REQUIRED (0 FAIL)

Quick Commands

Run All Unit Tests
cd src/saleor-product-manager
npm test
Run All Integration Tests (All Environments)
npx vitest run --config vitest.integration.config.ts tests/integration/
Run Tests for Specific Environment
# Dev only
npx vitest run --config vitest.integration.config.ts tests/integration/dev.test.ts

# Stage only
npx vitest run --config vitest.integration.config.ts tests/integration/stage.test.ts

# Prod only
npx vitest run --config vitest.integration.config.ts tests/integration/prod.test.ts
Run Acceptance Tests
npx vitest run --config vitest.integration.config.ts tests/acceptance/stage.test.ts

What the Tests Verify

Integration Tests (per environment)

Acceptance Tests

โœ… Test Coverage Summary

  • Unit Tests: 174 tests, 75.93% code coverage
  • Integration Tests: 26 tests across 3 environments
  • Acceptance Tests: 8 tests for user journeys
  • DAST Security Scan: 53+ OWASP ZAP checks

๐Ÿ”’ Security Gate for Production

The following must pass before deploying to production:

  • โœ… Integration Tests (stage) - All pass
  • โœ… Acceptance Tests (stage) - All pass
  • โš ๏ธ DAST Security Scan - 0 FAIL results

See security-reports/SCAN_RESULTS.md for scan documentation.

๐Ÿ”ง Deployment Troubleshooting

Issue: Container won't start
# Check logs
docker compose logs api

# Force rebuild
docker compose up -d --build --force-recreate
Issue: Images not loading

Verify environment variables are set:

# Check env vars in container
docker exec saleor-api-dev env | grep -E "ENABLE_SSL|PUBLIC_URL"

# Should show:
# ENABLE_SSL=True
# PUBLIC_URL=https://dev.renewed-renaissance.com

If missing, restart with docker compose up -d --force-recreate api

Issue: Tests failing
  • Check container is running: docker compose ps
  • Verify health endpoint: curl https://dev.renewed-renaissance.com/health/
  • Check nginx routing: docker compose logs nginx
Issue: Database connection errors
# Restart database
docker compose restart db

# Wait for healthy status
docker compose ps

โš ๏ธ Common Pitfalls

  • Don't skip staging: Always test in stage before prod
  • Check disk space: Docker images can fill up disk
  • Watch for port conflicts: Ensure ports 8080, 9080, 10080 are available
  • Environment variables: Changes require container recreation, not just restart