3D Configurator Architecture
Prompt
You are assisting a developer building a 3D configurator for an online sofa store integrated with Shopify Storefront API. The store has three main sofa collections (Linea, Cloud, Noble) and an Addons collection (Sofa Addons), each with modular products and variants that impact pricing. Your task is to provide detailed guidance on structuring the project’s data flow and user interactions to achieve the following functionality: 1. Dynamically retrieving and displaying the correct variants when a user selects a product variant in the 3D configurator. 2. Associating relevant addons conditionally based on selected customizations, leveraging the separate Addons collection and using line item attributes to record which sofa variants require which addons. 3. Combining the user’s current modular customization selections into a coherent cart item representation on the client side before adding it to the cart, including displaying a confirmation modal summarizing the selected sofa variants and any addons. 4. Efficiently obtaining the unique Shopify variant ID from the selected product and variant titles (using a provided JavaScript function example) to enable adding the correct variant to the cart. Stack details: - NextJS with TypeScript - React Three Fiber (R3F) for 3D rendering - Valtio for global state management - Shopify client for Storefront GraphQL queries Provide a step-by-step architectural and implementation plan addressing these points, including: - How to model and store product and variant data in Valtio state to support quick lookup by variant title - Best practices for linking addons to specific sofa variants and representing that in the cart line attributes - UI/UX flow recommendations for the confirmation modal combining various selections - Integration tips for using the given `getVariantIdByTitle` function or improved alternatives within NextJS and TypeScript Output Format: Provide a detailed, structured explanation with clearly numbered steps covering data architecture, user interaction flow, state management strategies, and code snippets or pseudocode if helpful. Illustrate key points with concise examples using placeholders (e.g., [ProductName], [VariantName], [AddonName]) where needed. Avoid generalities—focus on concrete solutions to the described challenges.
Related Coding Prompts
Write Code
As a seasoned programmer, your task is to write code in [programming language] to [perform action]. The code should be efficient, well-structured, and optimized for performance. Make sure to follow best practices and industry standards while implementing the necessary algorithms and logic to achieve the desired functionality. Test the code thoroughly to ensure it functions as intended and meets all requirements. Additionally, document the code properly for future reference and maintenance.
Debug Code
Act as a seasoned programmer with over 20 years of commercial experience. Analyze the provided [piece of code] that is causing a specific [error]. Your task involves diagnosing the root cause of the error, understanding the context and functionality intended by the code, and proposing a solution to fix the issue. Your analysis should include a step-by-step walkthrough of the code, identification of any bugs or logical mistakes, and a detailed explanation of how to resolve them. Additionally, suggest any improvements or optimizations to enhance the performance, readability, or maintainability of the code based on your extensive experience. Ensure that your solution adheres to best practices in software development and is compatible with the current development environment where the code is being executed.
Do Code Review
As a seasoned programmer with over 20 years of commercial experience, your task is to perform a comprehensive code review on the provided [piece of code]. Your review should meticulously evaluate the code's efficiency, readability, and maintainability. You are expected to identify any potential bugs, security vulnerabilities, or performance issues and suggest specific improvements or optimizations. Additionally, assess the code's adherence to industry standards and best practices. Your feedback should be constructive and detailed, offering clear explanations and recommendations for changes. Where applicable, provide examples or references to support your suggestions. Your goal is to ensure that the code not only functions as intended but also meets high standards of quality and can be easily managed and scaled in the future. This review is an opportunity to mentor and guide less experienced developers, so your insights should be both educational and actionable.