Fix product update issue when ordered and add snapshot functionality
- Fix issue in CustomOrderController where products were not updating correctly upon order placement.
- Implement ProductSnapshot and ProductVariantSnapshot to capture state at the time of order.
- Update OrderLine, Product models to support new snapshot functionality.
- Add new repository interfaces for handling snapshots.
- Update frontend components to display snapshot data in order details.
- Add new models and tests for product and variant snapshots in the frontend.
- Ensure all modified components and services are updated to handle new data structure.