Files
craft2prints/.claude/settings.local.json
T
Andymick c476f92a66 Feature: Royal Mail tracking integration (hybrid approach)
Add ability to sync shipment tracking data from Royal Mail API:

- Create Royal Mail API service (src/lib/royalmail.ts) to fetch tracking status
- Add sync-tracking endpoint to pull latest status from Royal Mail
- Create SyncRoyalMailButton component for admin panel
- Add 'Sync from Royal Mail' button on order detail page
- Auto-update order status based on Royal Mail tracking status

Admin workflow:
1. Create shipping label in Royal Mail Click & Drop
2. Copy tracking number into tracking form
3. Click 'Sync from Royal Mail' to fetch and update status
4. System maps Royal Mail status to our order status (SHIPPED, DELIVERED, etc)

Uses Royal Mail's public tracking API - no special credentials required.
Supports manual label creation workflow (hybrid approach).
2026-07-18 20:36:40 +01:00

84 lines
5.4 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\\) *)"
]
}
}