Features: - React + TypeScript frontend with Tailwind CSS - Node.js + Express backend with TypeScript - Comprehensive order tracking and management - Product catalog with inventory tracking - Customer data management - Expense tracking and categorization - Advanced Profit Analysis Dashboard with: - Real-time profit metrics and KPI visualization - Detailed order-level profit breakdown - Product performance analysis - Enhanced time range filtering (monthly, quarterly, yearly) - Interactive expandable order analysis - Performance categorization and color coding - CSV import functionality for Etsy statements - PDF parsing capabilities - Redux state management with persistence - Responsive design with mobile support - Australian date formatting and currency display
113 lines
No EOL
2.6 KiB
JavaScript
113 lines
No EOL
2.6 KiB
JavaScript
// Test data script - run in browser console to add sample data with printing costs
|
|
console.log('Adding test data with printing costs...');
|
|
|
|
// Sample products with printing costs
|
|
const sampleProducts = [
|
|
{
|
|
_id: 'prod1',
|
|
title: 'Custom Business Cards',
|
|
description: 'Professional business cards with custom design',
|
|
price: 25.00,
|
|
costOfGoods: 5.00,
|
|
printingCost: 3.50,
|
|
sku: 'BC001',
|
|
stockLevel: 100,
|
|
category: 'Business Cards'
|
|
},
|
|
{
|
|
_id: 'prod2',
|
|
title: 'Wedding Invitations',
|
|
description: 'Elegant wedding invitations with RSVP cards',
|
|
price: 45.00,
|
|
costOfGoods: 8.00,
|
|
printingCost: 6.00,
|
|
sku: 'WI001',
|
|
stockLevel: 50,
|
|
category: 'Invitations'
|
|
},
|
|
{
|
|
_id: 'prod3',
|
|
title: 'Photo Prints 8x10',
|
|
description: 'High quality photo prints',
|
|
price: 15.00,
|
|
costOfGoods: 2.00,
|
|
printingCost: 4.50,
|
|
sku: 'PP001',
|
|
stockLevel: 200,
|
|
category: 'Photo Prints'
|
|
}
|
|
];
|
|
|
|
// Sample orders with printing costs
|
|
const sampleOrders = [
|
|
{
|
|
_id: 'order1',
|
|
orderNumber: '1001',
|
|
customer: {
|
|
name: 'John Smith',
|
|
email: 'john@example.com',
|
|
address: {
|
|
street1: '123 Main St',
|
|
city: 'New York',
|
|
state: 'NY',
|
|
postalCode: '10001',
|
|
country: 'US'
|
|
}
|
|
},
|
|
items: [
|
|
{
|
|
title: 'Custom Business Cards',
|
|
quantity: 2,
|
|
price: 25.00,
|
|
printingCost: 3.50,
|
|
costOfGoods: 5.00
|
|
}
|
|
],
|
|
total: 50.00,
|
|
status: 'completed',
|
|
dateOrdered: new Date().toISOString()
|
|
},
|
|
{
|
|
_id: 'order2',
|
|
orderNumber: '1002',
|
|
customer: {
|
|
name: 'Sarah Johnson',
|
|
email: 'sarah@example.com',
|
|
address: {
|
|
street1: '456 Oak Ave',
|
|
city: 'Los Angeles',
|
|
state: 'CA',
|
|
postalCode: '90210',
|
|
country: 'US'
|
|
}
|
|
},
|
|
items: [
|
|
{
|
|
title: 'Wedding Invitations',
|
|
quantity: 1,
|
|
price: 45.00,
|
|
printingCost: 6.00,
|
|
costOfGoods: 8.00
|
|
},
|
|
{
|
|
title: 'Photo Prints 8x10',
|
|
quantity: 3,
|
|
price: 15.00,
|
|
printingCost: 4.50,
|
|
costOfGoods: 2.00
|
|
}
|
|
],
|
|
total: 90.00,
|
|
status: 'processing',
|
|
dateOrdered: new Date(Date.now() - 24*60*60*1000).toISOString()
|
|
}
|
|
];
|
|
|
|
// Add to localStorage
|
|
localStorage.setItem('etsy-tracker-products', JSON.stringify(sampleProducts));
|
|
localStorage.setItem('etsy-tracker-orders', JSON.stringify(sampleOrders));
|
|
|
|
// Dispatch Redux actions to update state
|
|
window.location.reload();
|
|
|
|
console.log('Test data added! Page will reload to update the state.'); |