Daffodil Ecommerce Framework

repository·develop·Indexed 19 days ago

https://github.com/graycoreio/daffodil

An ecommerce development framework for building high-quality storefronts using a driver-based architecture to connect to any ecommerce backend. The ecosystem includes specialized Angular packages such as @daffodil/cart, @daffodil/checkout, @daffodil/auth, @daffodil/analytics, and @daffodil/category, providing state management, routing, and driver support for platforms like Magento.

Tokens
103.8K
Snippets
347
Records
536
Agent score
57%

What's inside Daffodil

  1. Overview of @daffodil/design

    develop

    @daffodil/design is an Angular component library specifically engineered for ecommerce use-cases. It provides a collection of pre-built UI components and built-in support for essential ecommerce design requirements including:

    • Pre-Built Components: Organized into Atoms and Molecules.
    • Theming: Customizable styles for your storefront.
    • Typography: Standardized text styles.
    • Accessibility: Built-in support for accessible user interfaces.
    • Color: Managed color palettes and systems.
  2. Overview of @daffodil/driver

    develop
    The @daffodil/driver package is the core integration layer for Daffodil. It provides the essential driver interfaces, data models, and utilities required to connect a Daffodil storefront to different ecommerce backends. It handles the abstraction of platform-specific logic, allowing the storefront to interact with various APIs through a unified interface.
  3. Overview of @daffodil/storefront

    develop
    The @daffodil/storefront package is an Angular component library that provides sophisticated, reusable UI components for ecommerce storefronts. It is designed to bridge the gap between generic design components and complex, ecommerce-specific application implementations, leveraging over a decade of ecommerce development expertise.
  4. Overview of @daffodil/checkout features

    develop

    The @daffodil/checkout package is designed for building ecommerce checkout experiences in Angular. Its primary responsibilities include:

    • State Management: Managing the complex state associated with a checkout process.
    • Routing: Handling the navigation and flow between different stages of the checkout (e.g., shipping, payment, review).

    Note: Many checkout-related features are currently being migrated from @daffodil/cart to this package. When building new features, check if they have already moved to @daffodil/checkout.

  5. Overview of @daffodil/external-router

    develop
    The @daffodil/external-router package is designed for scenarios where user-friendly URIs are generated in external applications (e.g., /sweatshirts instead of /category/6). It enables your Angular application to resolve these external URIs and render the appropriate routes dynamically.
  6. Manage SEO data with @daffodil/seo

    develop

    @daffodil/seo provides services to manage page-level SEO metadata, including:

    • Canonical URLs
    • Tab titles
    • Meta tags

    Additionally, @daffodil/seo/state provides effects that automatically handle the addition and removal of SEO data as users navigate through your application.

  7. Use the Magento 2.4.1+ order driver

    develop

    The @daffodil/order/driver/magento/2.4.1 package is a specialized driver designed to interface Daffodil with a Magento backend running version 2.4.1 or higher.

    Important Limitation: Magento v2.4.1 does not natively support guest orders via its GraphQL orders endpoint. If your implementation requires guest order support, you must use the graycoreio/magento2-guest-orders-graphql extension to enable this functionality in your Magento instance.

  8. Use the Magento 2.4.0 order driver

    develop

    The @daffodil/order/driver/magento/2.4.0 package is an order driver designed to interface with Magento backends running version 2.4.0 or lower.

    Important Limitation: Magento v2.4.0 does not natively provide a GraphQL orders endpoint. To enable GraphQL support for orders on this version, you must use the graycoreio/magento2-orders-graphql extension. If you upgrade your Magento instance to v2.4.1 or higher, you should switch to the @daffodil/order/driver/magento/2.4.1 driver instead.

  9. Overview of @daffodil/contact functionality layers

    develop

    The @daffodil/contact library is organized into three primary layers to support contact form development:

    1. State: Uses NgRx to manage the contact form state.
    2. Drivers: Provides configuration for backend drivers, such as Hubspot or an In-Memory API.
    3. Testing: Provides utilities to unit test components using the contact feature.
  10. What is the Daffodil Visual Editor?

    develop

    The visual editor (daff-ai-editor) is an AI-driven content editing interface designed for creating and modifying content schemas. It uses a split-pane interface to combine schema editing with real-time UI previews.

    Key capabilities include:

    • AI-Powered Content Generation: Use natural language prompts to create or modify schemas.
    • Real-Time Preview: Immediate visual feedback across desktop, tablet, and mobile viewports.
    • Chat Interface: Conversational AI for iterative content development.
    • Schema Editing: Direct manipulation of schemas using the Monaco editor.
    • Component Browser: A way to browse available components for inclusion in schemas.
    • Responsive Testing: Testing content layout across various device sizes.
  11. Overview of Daffodil modular packages

    develop

    Daffodil is composed of interoperable, modular packages. You can install only the specific domains required for your storefront to keep your bundle size optimized.

    Commonly used packages include:

    • @daffodil/product: Product management
    • @daffodil/cart: Shopping cart functionality
    • @daffodil/auth: Authentication services
    • @daffodil/customer: Customer profile and data
    • @daffodil/order: Order management