Commit graph

13 commits

Author SHA1 Message Date
isUnknown
aa873e117f Fix cart initialization and ShopifyCart loading
- Wait for ShopifyCart to be available before initializing structured data
- Add getCart() method to retrieve existing cart from Shopify API
- Load cart state on page load to display correct initial cart contents

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-21 11:06:28 +01:00
isUnknown
f3f302513e Improve Open Graph meta tags with default description
All checks were successful
Deploy / Deploy to Production (push) Successful in 7s
Add default descriptions for social sharing cards:
- FR: "Boutique de Index, ONG d'investigation indépendante"
- EN: "Index shop, independent investigative NGO"

Changes:
- Add language-specific default descriptions
- Fix description excerpt handling
- Add OG image generation helper (create-og-image.html)
- Use favicon as temporary OG image (TODO: create proper 1200x630 image)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-16 17:08:24 +01:00
isUnknown
9eb8d08bcc Add comprehensive SEO optimization
All checks were successful
Deploy / Deploy to Production (push) Successful in 6s
Implement complete SEO setup for virtual product pages with:
- Meta tags (title, description, canonical, hreflang)
- Open Graph protocol for social sharing
- Twitter Card tags
- Schema.org structured data (JSON-LD) for products
- XML sitemap including virtual pages
- Dynamic meta tag updates via JavaScript

Changes:
- Create SEO snippet with all meta tags
- Add structured data snippet for products
- Generate sitemap.xml with products and hreflang
- Update meta tags dynamically when Shopify data loads
- Remove noindex/nofollow (was blocking all indexing)
- Add product-specific OG tags (price, availability)

All pages now properly indexed with correct multilingual setup.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-16 17:02:27 +01:00
isUnknown
4987c4830f Add Shopify variant options selector with circular radio buttons
All checks were successful
Deploy / Deploy to Production (push) Successful in 7s
- Implement dynamic option rendering from Shopify variant data
- Generate circular radio buttons for product variants (sizes, colors, etc.)
- Disable add-to-cart button until option is selected
- Display "Choisissez une option" text when option required
- Update button text and enable on option selection
- Add is-selected class to chosen option
- Handle disabled state for out-of-stock variants
- Restore btn__default button style with icon and text structure
- Add chooseOption translation key in FR/EN

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-16 12:15:28 +01:00
isUnknown
ad699f0365 Migrate product data from Kirby to Shopify Storefront API
- Add product loaders (product-loader.js, products-list-loader.js) to fetch data from Shopify
- Extend Shopify API client with getProductByHandle() and getAllProducts() methods
- Integrate Shopify metafields for multilingual support (custom.title_en, custom.description_en)
- Refactor product.php and home.php templates to load content dynamically
- Simplify product blueprint to minimal routing configuration
- Create generic buy-button.php snippet with variant selection
- Update footer.php with conditional script loading
- Refactor _section--product.scss for better Sass structure
- Add translations for loading states and product errors
- Clean up old Kirby product content files

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-16 12:03:20 +01:00
isUnknown
957cf79e45 Add cart button to header with item count
Add a cart button in the header (right of language switcher) that displays the number of items in parentheses when cart is not empty. Button opens the cart drawer on click and count updates dynamically when items are added/removed.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-14 12:06:26 +01:00
isUnknown
b3940bba08 Add i18n support and cart total to Shopify integration
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>
2026-01-14 12:02:55 +01:00
isUnknown
28501fec7c Implement custom Shopify cart with drawer UI
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>
2026-01-14 11:26:14 +01:00
isUnknown
010c4f6c20 thanks : style
All checks were successful
Deploy / Deploy to Production (push) Successful in 10s
2025-12-22 10:07:03 +01:00
isUnknown
44ed53aae0 prevent css cache
All checks were successful
Deploy / Deploy to Production (push) Successful in 7s
2025-12-12 11:08:09 +01:00
isUnknown
30d09d6104 Add responsive image optimization with WebP support
- Configure thumbs presets in config.php (quality 85%, WebP format)
- Create picture snippet with srcset and WebP support
- Add product-card and product-detail presets
- Update templates to use optimized images
- Implement native lazy loading for product cards
- Add aspect-ratio CSS for layout stability

Improvements over reference project:
- Complete PHPDoc documentation
- Native CSS aspect-ratio support
- Optimized lazy loading strategy
- Product-specific image presets

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-10 16:00:58 +01:00
isUnknown
9c91a87720 Refactor: Extract header and footer into reusable snippets
All checks were successful
Deploy / Deploy to Production (push) Successful in 7s
- Created site/snippets/header.php with parameterized title and template
- Created site/snippets/footer.php with optional additional scripts
- Updated home.php and product.php to use the new snippets
- Reduces code duplication and improves maintainability

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-10 15:54:25 +01:00
isUnknown
a3620a1f5f first commit
Some checks are pending
Deploy / Deploy to Production (push) Waiting to run
2025-12-10 15:12:06 +01:00