Use site()->visit() to properly set language context for virtual pages.
This ensures UI translations and language-specific content work correctly
on both /slug (French) and /en/slug (English) routes.
Changes:
- Add site()->visit($page, $lang) in routes to set page language
- Create product controller for language detection
- Fix add-to-cart button to update text in .txt div instead of button
- Remove broken hooks approach
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Implement multilingual support for shop interface and add total calculation to cart drawer:
- Add FR/EN translations for all shop-related texts (cart, checkout, stock status)
- Update templates and JavaScript to use translation system
- Add cart total calculation with formatted currency display
- Refactor cart drawer styles to SASS with improved button styling (black borders on +/-)
- Fix English product content (replace JSON with proper HTML)
- Extract cart drawer to separate snippet for better organization
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Replace Shopify Buy Button iframe with custom implementation using Storefront API 2026-01. Create interactive cart drawer with full product management capabilities (add, remove, update quantities) and seamless checkout flow.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Create thank you page template with bilingual content (FR/EN)
- Add automatic redirect to /thanks after successful payment
- Fix webhook: move kirby()->impersonate() before product update
- Add error handling in webhook with try-catch
- Pass order token to thank you page for future enhancements
- Update thank you page styling for better UX
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Disable hover animation on disabled add-to-cart button
- Display "Choisissez une option" message when button is disabled
- Add cursor: not-allowed and opacity styling for disabled state
- Format SCSS for better code consistency
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add route handler for /validate.json to enable Snipcart product validation
- Update product gallery to display all product images instead of just the first one
- Fix CSS styling for product gallery list items
- Update home page to use first sorted image as product cover
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>