5a9f44f3d1
Complete shop API consolidation to /api/v1/shop/* with middleware-based vendor context
...
## API Migration (Complete)
### New Shop API Endpoints Created
- **Products API** (app/api/v1/shop/products.py)
- GET /api/v1/shop/products - Product catalog with pagination/search/filters
- GET /api/v1/shop/products/{id} - Product details
- **Cart API** (app/api/v1/shop/cart.py)
- GET /api/v1/shop/cart/{session_id} - Get cart
- POST /api/v1/shop/cart/{session_id}/items - Add to cart
- PUT /api/v1/shop/cart/{session_id}/items/{product_id} - Update quantity
- DELETE /api/v1/shop/cart/{session_id}/items/{product_id} - Remove item
- DELETE /api/v1/shop/cart/{session_id} - Clear cart
- **Orders API** (app/api/v1/shop/orders.py)
- POST /api/v1/shop/orders - Place order (authenticated)
- GET /api/v1/shop/orders - Order history (authenticated)
- GET /api/v1/shop/orders/{id} - Order details (authenticated)
- **Auth API** (app/api/v1/shop/auth.py)
- POST /api/v1/shop/auth/register - Customer registration
- POST /api/v1/shop/auth/login - Customer login (sets cookie at path=/shop)
- POST /api/v1/shop/auth/logout - Customer logout
- POST /api/v1/shop/auth/forgot-password - Password reset request
- POST /api/v1/shop/auth/reset-password - Password reset
**Total: 18 new shop API endpoints**
### Middleware Enhancement
Updated VendorContextMiddleware (middleware/vendor_context.py):
- Added is_shop_api_request() to detect /api/v1/shop/* routes
- Added extract_vendor_from_referer() to extract vendor from Referer header
- Supports path-based: /vendors/wizamart/shop/* → wizamart
- Supports subdomain: wizamart.platform.com → wizamart
- Supports custom domain: customshop.com → customshop.com
- Modified dispatch() to handle shop API specially (no longer skips)
- Vendor context now injected into request.state.vendor for shop API calls
### Frontend Migration (Complete)
Updated all shop templates to use new API endpoints:
- app/templates/shop/account/login.html - Updated login endpoint
- app/templates/shop/account/register.html - Updated register endpoint
- app/templates/shop/product.html - Updated 4 API calls (products, cart)
- app/templates/shop/cart.html - Updated 3 API calls (get, update, delete)
- app/templates/shop/products.html - Activated product loading from API
**Total: 9 API endpoint migrations across 5 templates**
### Old Endpoint Cleanup (Complete)
Removed deprecated /api/v1/public/vendors/* shop endpoints:
- Deleted app/api/v1/public/vendors/auth.py
- Deleted app/api/v1/public/vendors/products.py
- Deleted app/api/v1/public/vendors/cart.py
- Deleted app/api/v1/public/vendors/orders.py
- Deleted app/api/v1/public/vendors/payments.py (empty)
- Deleted app/api/v1/public/vendors/search.py (empty)
- Deleted app/api/v1/public/vendors/shop.py (empty)
Updated app/api/v1/public/__init__.py to only include vendor lookup endpoints:
- GET /api/v1/public/vendors/by-code/{code}
- GET /api/v1/public/vendors/by-subdomain/{subdomain}
- GET /api/v1/public/vendors/{id}/info
**Result: Only 3 truly public endpoints remain**
### Error Page Improvements
Updated all shop error templates to use base_url:
- app/templates/shop/errors/*.html (10 files)
- Updated error_renderer.py to calculate base_url from vendor context
- Links now work correctly for path-based, subdomain, and custom domain access
### CMS Route Handler
Added catch-all CMS route to app/routes/vendor_pages.py:
- Handles /{vendor_code}/{slug} for content pages
- Uses content_page_service for two-tier lookup (vendor override → platform default)
### Template Architecture Fix
Updated app/templates/shop/base.html:
- Changed x-data to use {% block alpine_data %} for component override
- Allows pages to specify custom Alpine.js components
- Enables page-specific state while extending shared shopLayoutData()
### Documentation (Complete)
Created comprehensive documentation:
- docs/api/shop-api-reference.md - Complete API reference with examples
- docs/architecture/API_CONSOLIDATION_PROPOSAL.md - Analysis of 3 options
- docs/architecture/API_MIGRATION_STATUS.md - Migration tracking (100% complete)
- Updated docs/api/index.md - Added Shop API section
- Updated docs/frontend/shop/architecture.md - New API structure and component pattern
## Benefits Achieved
### Cleaner URLs (~40% shorter)
Before: /api/v1/public/vendors/{vendor_id}/products
After: /api/v1/shop/products
### Better Architecture
- Middleware-driven vendor context (no manual vendor_id passing)
- Proper separation of concerns (public vs shop vs vendor APIs)
- Consistent authentication pattern
- RESTful design
### Developer Experience
- No need to track vendor_id in frontend state
- Automatic vendor context from Referer header
- Simpler API calls
- Better documentation
## Testing
- Verified middleware extracts vendor from Referer correctly
- Tested all shop API endpoints with vendor context
- Confirmed products page loads and displays products
- Verified error pages show correct links
- No old API references remain in templates
Migration Status: ✅ 100% Complete (8/8 success criteria met)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-22 23:03:05 +01:00
0d7915c275
docs: update authentication dependency names across documentation
...
Updated all documentation to use correct authentication dependency names:
- HTML pages: get_current_admin_from_cookie_or_header, get_current_vendor_from_cookie_or_header, get_current_customer_from_cookie_or_header
- API endpoints: get_current_admin_api, get_current_vendor_api, get_current_customer_api
Changes:
- Updated authentication flow diagrams with correct dependency names for admin and vendor flows
- Added comprehensive customer/shop authentication flow documentation
- Updated cookie isolation architecture to show all three contexts (admin, vendor, shop)
- Expanded security boundary enforcement diagram to include shop routes
- Added customer cross-context prevention examples
- Updated all code examples in frontend and backend documentation
- Fixed import statements to use app.api.deps instead of app.core.auth
Files updated:
- docs/api/authentication-flow-diagrams.md (added customer flows)
- docs/frontend/admin/page-templates.md
- docs/frontend/admin/architecture.md
- docs/frontend/shared/ui-components.md
- docs/frontend/shared/sidebar.md
- docs/development/exception-handling.md
- docs/architecture/diagrams/vendor-domain-diagrams.md
- docs/backend/admin-integration-guide.md
- docs/backend/admin-feature-integration.md
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-22 18:21:23 +01:00
7a9c12dcdf
docs: fix broken link in auth dependencies guide
...
Fix MkDocs build error by removing markdown link to source code file.
Change from [API Dependencies](../app/api/deps.py) to plain text
reference to avoid strict mode warning about non-documentation files.
Fixes: Doc file contains a link to 'app/api/deps.py' not in docs
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-22 16:07:24 +01:00
ac1017928c
docs: add authentication dependencies guide
...
Add comprehensive guide explaining when to use each authentication
dependency:
- get_current_admin_from_cookie_or_header vs get_current_admin_api
- get_current_vendor_from_cookie_or_header vs get_current_vendor_api
- get_current_customer_from_cookie_or_header vs get_current_customer_api
Key distinctions:
- HTML pages (templates) → use _from_cookie_or_header (accepts cookies)
- API endpoints (JSON) → use _api (header-only, no cookies, CSRF-safe)
- Login pages → use _optional (returns None instead of exception)
Includes:
- Complete reference table
- When to use which dependency
- Migration guide from old names
- Code examples for each scenario
- Quick reference cheat sheet
This clarifies the naming change from get_current_admin_user to the
more specific variants and helps developers choose the right dependency.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-22 16:03:03 +01:00
41a51af6b4
docs: update troubleshooting documentation
...
Update troubleshooting guide with latest fixes and solutions for
common development issues encountered during CMS implementation
and shop frontend development.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-22 15:55:56 +01:00
be07bbb3b1
docs: add comprehensive CMS documentation
...
Add complete documentation for the Content Management System:
Feature Documentation (docs/features/):
- content-management-system.md - Complete CMS overview
* Two-tier architecture explanation
* Database schema and relationships
* API reference for all endpoints
* Usage workflows for admin/vendor/customer
* Best practices and examples
- cms-implementation-guide.md - Step-by-step implementation
* Activation checklist
* Code integration instructions
* Testing procedures
* Troubleshooting guide
Quick Start Guide (docs/getting-started/):
- cms-quick-start.md - Quick reference
* Setup commands
* Access URLs
* Managing content (API, admin panel, vendor dashboard)
* Two-tier system explained with examples
* Common tasks and troubleshooting
Updated Seeder Docs:
- Add CMS to enhanced seeder coverage list
- Add dedicated CMS section with table of pages
- Document integration with db-setup workflow
- Update best practices
MkDocs Configuration:
- Add "Features" section with CMS documentation
- Add CMS Quick Start to "Getting Started"
- Add CDN Fallback Strategy to "Frontend Development"
- Complete navigation structure
All documentation builds cleanly with no warnings.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-22 15:55:42 +01:00
2dfda3e312
docs: update frontend architecture documentation
...
Update frontend architecture documentation across all three frontends
(admin, vendor, shop) to reflect current implementation:
- Document template inheritance patterns
- Update Alpine.js component usage
- Add CDN fallback strategy references
- Clarify context variable usage
- Update template structure diagrams
Also update base templates with improved comments and organization.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-22 15:54:12 +01:00
03a487eba9
fix: implement correct base_url routing for shop frontend
...
Fix shop frontend links to work correctly across all three access methods:
- Custom domain (wizamart.shop)
- Subdomain (wizamart.localhost)
- Path-based (/vendor/wizamart/)
Changes:
- Update get_shop_context() to calculate base_url based on access method
- Update all shop templates to use {{ base_url }} for links
- Add base_url to shop-layout.js Alpine.js component
- Document multi-access routing in shop architecture docs
This ensures links work correctly regardless of how the shop is accessed,
solving broken navigation issues with path-based access.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-22 15:54:00 +01:00
7879e2f70a
docs: add CDN fallback strategy documentation
...
Add comprehensive documentation for CDN fallback strategy used across
the platform's frontend. Documents the pattern for loading external
libraries (Alpine.js, Tailwind CSS, etc.) with automatic fallback to
local copies when CDN is unavailable.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-22 15:52:46 +01:00
e5f5a2ebf8
Updated vendor documentation
2025-11-22 07:43:26 +01:00
608fa8b95c
Fixed login redirecting issues
2025-11-21 23:38:03 +01:00
2532a977c1
Adding vendor api tests
2025-11-21 23:16:21 +01:00
5aff76a27e
adding test documentation
2025-11-20 22:06:49 +01:00
a18ad48721
updating middleware doc
2025-11-19 21:55:34 +01:00
d947fa5ca0
removing legacy code on path_rewrite_middleware
2025-11-18 23:32:07 +01:00
f14686c131
Fixed url pattern in the doc for path-based shops
2025-11-18 23:18:13 +01:00
b3009e3795
Fixed middleware authentication issues
2025-11-18 22:50:55 +01:00
807033be16
revamping documentation
2025-11-17 22:59:42 +01:00
424450b802
RBAC documentation
2025-11-15 20:59:22 +01:00
e3ed4a3295
data seed feature for demo and prod
2025-11-15 20:57:39 +01:00
af23f5b88f
replacing letzshop by wizamart
2025-11-13 15:23:47 +01:00
6794a1bbb9
middleware fix for path-based vendor url
2025-11-09 18:48:11 +01:00
adbcee4ce3
middleware fix for path-based vendor url
2025-11-09 18:47:53 +01:00
79dfcab09f
frontend error management enhancement
2025-11-05 21:52:22 +01:00
9cc92e5fc4
created specific route files for frontends
2025-11-02 15:26:55 +01:00
9420483ae6
migrating vendor frontend to new architecture
2025-10-30 19:11:51 +01:00
cd5097fc04
migrating vendor frontend to new architecture
2025-10-28 22:58:55 +01:00
b0cc0385f8
revamping frontend logging system and reorganising documentation
2025-10-28 21:07:26 +01:00
5c80ba17c5
Main exception renamed to WizamartException
2025-10-27 21:55:05 +01:00
1e0cbf5927
Multitenant implementation with custom Domain, theme per vendor
2025-10-26 23:49:29 +01:00
2c3223f9f9
compiling project documentation
2025-10-26 20:02:04 +01:00
99863ad80b
compiling project documentation
2025-10-26 19:59:53 +01:00
5be47b91a2
Working state before icon/utils fixes - Oct 22
2025-10-21 21:56:54 +02:00
f65a40b533
Added support for Heroicons
2025-10-19 18:51:34 +02:00
cbe1ab09d1
admin and vendor backends features
2025-10-19 16:16:13 +02:00
d7439fce46
Created target project structure
2025-10-11 12:14:49 +02:00
1e2f211057
Renamed schemas to schema as per naming conventions
2025-10-11 12:14:11 +02:00
199be1f1b9
major refactoring adding vendor and customer features
2025-10-11 09:11:42 +02:00
dd16198276
major refactoring adding vendor and customer features
2025-10-11 09:09:25 +02:00
c971674ec2
marketplace refactoring
2025-10-04 13:38:10 +02:00
eaba11acb1
git repo creation on synology server documentation
2025-09-27 15:54:45 +02:00
6b9817f179
test updates to take into account exception management
2025-09-27 13:47:36 +02:00
8b86b3225a
Admin service tests update
2025-09-24 21:02:17 +02:00
98285aa8aa
Exception handling enhancement
2025-09-23 22:42:26 +02:00
b1a76cdb57
Docs for error handling
2025-09-22 21:14:55 +02:00
282ec5e024
Make command for pycharm
2025-09-21 22:36:19 +02:00
5ef018d4ff
Added placeholder for documentation
2025-09-21 17:16:55 +02:00
a26f8086f8
Enhancing documentation
2025-09-20 22:39:12 +02:00
91a0a13daa
Updating documentation
2025-09-19 21:34:56 +02:00
d0924f90c4
MkDocs documentation integration
2025-09-19 21:23:19 +02:00