Updates pricing logic to use correct price based on product type:
- Updated getEffectivePrice to accept priceType parameter ('base', 'plain', 'personalised')
- Updated toProductDTO to accept and use priceType when computing effective price
- Updated made-to-order pages to use 'personalised' price type
- Updated products catalog pages to use 'plain' price type
- Updated checkout logic to determine price type based on design
Pricing behavior:
- Personalised orders (with design): use personalisedPrice if set, else basePrice
- Plain/blank orders (no design): use plainPrice if set, else basePrice
- Ready-made orders (no design, no plainPrice): use basePrice
All prices now correctly reflect the product variant being purchased.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
142 lines
10 KiB
JSON
142 lines
10 KiB
JSON
{
|
|
"permissions": {
|
|
"allow": [
|
|
"Skill(update-config)",
|
|
"Skill(update-config:*)",
|
|
"Bash(npx prisma *)",
|
|
"Bash(xargs grep -l \"effectivePrice\")",
|
|
"Bash(npx tsc *)",
|
|
"Bash(powershell -Command \"Get-ChildItem D:\\\\Craft2Prints -Filter '.env*' -Force | Select-Object Name\")",
|
|
"Bash(dir /a D:\\\\Craft2Prints\\\\.env*)",
|
|
"Bash(git add *)",
|
|
"Bash(git restore *)",
|
|
"Bash(git reset *)",
|
|
"Bash(git checkout *)",
|
|
"Bash(git commit -m ' *)",
|
|
"Bash(git commit -m 'Remove AdminMenu from public site header *)",
|
|
"Bash(git push *)",
|
|
"Bash(rm -rf .next)",
|
|
"Bash(npm run *)",
|
|
"Bash(git commit -m 'Wire Stage 3 reports to real data *)",
|
|
"Bash(git config *)",
|
|
"Bash(Get-ChildItem \"D:\\\\Craft2Prints\" -Directory)",
|
|
"Bash(Select-Object Name)",
|
|
"Bash(Get-ChildItem \"D:\\\\\" -Directory -Filter \"*craft*\" -Force | Select-Object Name)",
|
|
"Bash(npm install *)",
|
|
"PowerShell(Stop-Process -Id 22068 -Force -ErrorAction SilentlyContinue)",
|
|
"Bash(netstat -ano)",
|
|
"Bash(findstr :3000)",
|
|
"Bash(Start-Sleep -Seconds 3)",
|
|
"PowerShell(\\(Get-Content \"D:\\\\Craft2Prints\\\\src\\\\app\\\\api\\\\checkout\\\\route.ts\" | Measure-Object -Line\\).Lines)",
|
|
"Bash(git commit *)",
|
|
"PowerShell(Get-Item \"D:\\\\Craft2Prints\\\\dev.db\" -ErrorAction SilentlyContinue | Select-Object FullName, @{Name=\"SizeKB\";Expression={$_.Length/1KB}}, LastWriteTime)",
|
|
"Bash(sqlite3 -json \"SELECT designJson FROM order_items LIMIT 1;\")",
|
|
"Bash(node -e ' *)",
|
|
"Bash(git diff *)",
|
|
"Bash(xargs grep -l \"ProductDTO\")",
|
|
"Bash(npx tsx -e ' *)",
|
|
"Bash(psql -U postgres -d craft2prints -c \"SELECT id, name, \\\\\"referenceWidthCm\\\\\", \\\\\"referenceHeightCm\\\\\" FROM \\\\\"Product\\\\\" LIMIT 1;\")",
|
|
"Bash(npx ts-node *)",
|
|
"Bash(node \"C:\\\\Users\\\\Lyons\\\\AppData\\\\Local\\\\Temp\\\\claude\\\\D--Craft2Prints\\\\7f0f7e09-1d03-4e4a-b5dc-529896c9a855\\\\scratchpad\\\\query_product.js\")",
|
|
"Bash(sqlite3 \"D:\\\\Craft2Prints\\\\prisma\\\\dev.db\" \"SELECT id, name, referenceWidthCm, referenceHeightCm FROM Product WHERE slug = 'classic-t-shirt';\")",
|
|
"Bash(xargs grep -l \"prisma.order.create\")",
|
|
"Bash(node -e \"const fs = require\\('fs'\\); const content = fs.readFileSync\\('src/components/DesignCanvas.tsx', 'utf8'\\); console.log\\('File read successfully, length:', content.length\\)\")",
|
|
"Bash(python3)",
|
|
"Bash(pkill -f \"node.*next\")",
|
|
"Bash(rm -rf .next node_modules/.cache)",
|
|
"Bash(git commit -m 'Fix JSX syntax errors in DesignCanvas - close bracket issues *)",
|
|
"Bash(rm -rf craft2prints)",
|
|
"Bash(git commit -m 'Add design approval workflow and per-image dimension tracking *)",
|
|
"Bash(git commit -m 'Remove feedback messages to simplify design canvas layout *)",
|
|
"Bash(git commit -m 'Remove reviews section from product pages *)",
|
|
"Bash(git commit -m 'Reorganize design canvas layout to be more compact *)",
|
|
"Bash(git commit -m 'Make image dimensions and font properties collapsible sections *)",
|
|
"Bash(rm -rf \"D:\\\\Craft2Prints\\\\src\\\\app\\\\api\\\\designs\\\\[id]\\\\delete\" && echo \"Deleted unnecessary delete folder\")",
|
|
"Bash(git commit -m 'Add customer approval status messages and admin delete option *)",
|
|
"Bash(grep -n '`' \"D:\\\\Craft2Prints\\\\src\\\\components\\\\DesignCanvas.tsx\")",
|
|
"Bash(npx prettier *)",
|
|
"Bash(git commit -m 'Add design approval workflow infrastructure: PATCH endpoint, email notifications, and message types *)",
|
|
"Bash(mv \"src/app/admin/designs/[id]/edit/page.tsx\" \"src/app/admin/designs/[id]/edit/page.tsx.bak\")",
|
|
"Bash(mv \"src/app/admin/designs/[id]/edit/page.tsx.bak\" \"src/app/admin/designs/[id]/edit/page.tsx\")",
|
|
"Bash(rm \"D:\\\\Craft2Prints\\\\src\\\\app\\\\admin\\\\designs\\\\[id]\\\\edit\\\\page.tsx\")",
|
|
"Bash(rm \"D:\\\\Craft2Prints\\\\src\\\\app\\\\admin\\\\designs\\\\[id]\\\\send-button.tsx\")",
|
|
"Bash(git show *)",
|
|
"Bash(git status *)",
|
|
"Bash(git revert *)",
|
|
"Bash(git commit -m 'Fix price display issues and layout in design review page *)",
|
|
"Bash(git commit -m 'Fix: Calculate effectivePrice in design API endpoints *)",
|
|
"Bash(git commit -m 'Fix: Handle designJson as string in checkout API *)",
|
|
"Bash(git commit -m 'Fix: Use personalised price in design approval cart add *)",
|
|
"Bash(git commit -m 'Fix: Safely access designJson properties in admin orders page *)",
|
|
"Bash(git commit -m 'Fix: Show personalised price on design review page *)",
|
|
"Bash(git commit -m 'Fix: Safely parse designJson in admin order detail page *)",
|
|
"Bash(xargs grep -l \"design-spec\")",
|
|
"Bash(git commit -m 'Improve: Design specification sheet now shows previews and info *)",
|
|
"Bash(git commit -m 'Fix: Handle undefined designElements in design spec SVG rendering *)",
|
|
"Bash(git commit -m 'Fix: Ensure cart is completely cleared after payment success *)",
|
|
"Bash(git commit -m 'Fix: Update order status to PAID on checkout success page *)",
|
|
"Bash(git commit -m 'Improve: Cart clearing on success page with better state management *)",
|
|
"Bash(git commit -m 'Feature: Add order tracking and shipping status updates *)",
|
|
"Bash(git commit -m 'Feature: Royal Mail tracking integration \\(hybrid approach\\) *)",
|
|
"Bash(git commit -m 'Fix: Refresh page after updating order tracking details *)",
|
|
"Bash(git commit -m 'Fix: Remove function prop from client component *)",
|
|
"Bash(git commit -m 'Fix: Import revalidatePath from correct module *)",
|
|
"Bash(git commit -m 'Fix: Route photo requests to design canvas instead of approval upload *)",
|
|
"Bash(git commit -m 'Fix: Pass photo request ID instead of data URL *)",
|
|
"Bash(git commit -m 'Feature: Add product selection when starting design from photo request *)",
|
|
"Bash(git commit -m 'Refactor: Move start design server action to separate file *)",
|
|
"Bash(git commit -m 'Add: Prominent '\\\\''Shop plain items'\\\\'' section to homepage *)",
|
|
"Bash(git commit -m 'Feature: Royal Mail shipping integration with weight-based postage *)",
|
|
"Bash(git commit -m 'Add: Weight field to product admin pages *)",
|
|
"Bash(git commit -m 'Add: Shipping selector component and checkout integration *)",
|
|
"Bash(node clear-pending-orders.js)",
|
|
"mcp__visualize__read_me",
|
|
"mcp__visualize__show_widget",
|
|
"Bash(git branch *)",
|
|
"Bash(git remote *)",
|
|
"Bash(git commit -m 'Fix: Remove duplicate success variable in admin orders page *)",
|
|
"Bash(git commit -m 'UX: Reorder admin menu to highlight Design Approvals and Shipping rates *)",
|
|
"Bash(git commit -m 'Fix: Add Design Approvals and Shipping rates to admin dropdown menu *)",
|
|
"Bash(git log *)",
|
|
"Bash(git commit -m 'Fix: Set Classic Tee photoRecolorable to false for proper image display *)",
|
|
"Bash(git commit -m 'Fix: Remove encType from product edit form with Server Action *)",
|
|
"Bash(git commit -m 'Feature: Add file removal and print area edit toggles to photo upload *)",
|
|
"Bash(git commit -m 'Fix: Show Remove and Modify print area buttons for existing images *)",
|
|
"Bash(git commit -m 'Fix: Handle image removal in product editor *)",
|
|
"Bash(git commit -m 'Refactor: Move image display into PhotoPrintAreaField component *)",
|
|
"Bash(git commit -m 'Optimize: Skip color photo processing when not uploading new photos *)",
|
|
"Bash(git commit -m 'Optimize: Fetch only necessary fields from database *)",
|
|
"Bash(git commit -m 'Fix: Always update print area coordinates when editing product *)",
|
|
"Bash(git commit -m 'Fix: Include imageUrl/imageUrlBack in database select query *)",
|
|
"Bash(xargs grep -l \"printArea\\\\|DesignCanvas\")",
|
|
"Bash(ls -la \"C:\\\\Program Files\\\\PostgreSQL\\\\\" 2>/dev/null || echo \"PostgreSQL not found in standard location\")",
|
|
"PowerShell(cd \"D:\\\\Craft2Prints\"; powershell -ExecutionPolicy Bypass -File .\\\\backup-database.ps1)",
|
|
"PowerShell($action = New-ScheduledTaskAction -Execute \"powershell.exe\" -Argument \"-ExecutionPolicy Bypass -File `\"D:\\\\Craft2Prints\\\\backup-database.ps1`\"\" -WorkingDirectory \"D:\\\\Craft2Prints\"; $trigger = New-ScheduledTaskTrigger -Daily -At 2am; $principal = New-ScheduledTaskPrincipal -UserID \"SYSTEM\" -LogonType ServiceAccount -RunLevel Highest; Register-ScheduledTask -Action $action -Trigger $trigger -Principal $principal -TaskName \"Craft2Prints Database Backup\" -Description \"Daily backup of Craft2Prints database\" -Force | Select-Object -Property TaskName, State)",
|
|
"Bash(ls -la ~/.ssh/ 2>/dev/null || echo \"No .ssh directory found\")",
|
|
"Bash(ssh -vvv -i ~/.ssh/sshkey git@192.168.0.190 -p 3000 \"echo test\")",
|
|
"Bash(echo \"database-backups/\")",
|
|
"Bash(git commit -m 'Chore: Exclude database backups from version control *)",
|
|
"Skill(run)",
|
|
"Skill(run:*)",
|
|
"Bash(cat > *)",
|
|
"Bash(git commit -m 'Chore: Implement database optimization quick start *)",
|
|
"Bash(git commit -m 'Chore: Update handoff document with latest features and improvements *)",
|
|
"Bash(git commit -m 'Chore: Update local settings with command history *)",
|
|
"Bash(cp \"prisma/dev.db\" \"prisma/dev.db.backup.$\\(date +%Y%m%d_%H%M%S\\)\")",
|
|
"Bash(rm \"prisma/dev.db\")",
|
|
"Bash(rm -f \"prisma/dev.db-journal\")",
|
|
"Bash(git commit -m 'Chore: Migrate database from SQLite to PostgreSQL on VM *)",
|
|
"Bash(git pull *)",
|
|
"Bash(git rm *)",
|
|
"Bash(git commit -m 'Chore: Remove .env from version control for security *)",
|
|
"Bash(git fetch *)",
|
|
"Bash(git ls-remote *)",
|
|
"Bash(timeout 30 git push origin main --force)",
|
|
"Bash(GIT_TRACE=1 git push origin main --force)",
|
|
"Bash(pkill -f \"node.exe\")",
|
|
"PowerShell(Stop-Process -Name node -Force -ErrorAction SilentlyContinue)",
|
|
"Bash(find \"D:\\\\Craft2Prints\\\\src\\\\app\" -path \"*/\\\\[slug\\\\]/*\" -name \"page.tsx\" | head -10)"
|
|
]
|
|
}
|
|
}
|