Skip to main content

Module Integrations

Comprehensive mapping of how Magento_Customer integrates with other core modules through direct dependencies, plugins, observers, and service contracts.

Foundation Module 15+ Integrations

Integration Overview

The Customer module is a foundation module that provides customer identity services to nearly all customer-facing and admin modules in Magento. It integrates through five primary patterns.

Direct Dependencies

Modules Customer depends on (EAV, Directory)

Dependent Modules

Modules that depend on Customer (Sales, Quote, Checkout)

Cross-Module Plugins

Customer intercepts other modules

External Integrations

Customer provides interfaces for others

Event-Based Integration

Loose coupling via events and observers

API Integration

REST/GraphQL endpoints for external systems

Direct Dependencies

These modules are required by Customer and defined in module.xml.

Magento_Eav

Entity-Attribute-Value Pattern

Customer and Address entities use the EAV pattern for flexible custom attributes and metadata management.

Integration Points

  • Customer extends AbstractEntity
  • Custom attributes via EAV attribute repository
  • Form rendering from EAV attributes

Database Tables

eav_entity_type eav_attribute customer_eav_attribute

Magento_Directory

Geographic Data

Address management requires country and region data for validation, formatting, and dropdown population.

Integration Points

  • Address validation (country exists, region belongs to country)
  • Region dropdown population
  • Postal code format validation
  • Address formatting by locale

Key Services

Country Region

Dependent Modules

These modules depend on Customer and use its services for identity, grouping, and personalization.

Magento_Sales

Order Management

Orders associate with customers via foreign keys and denormalized data.

Email Synchronization

Observer updates all order emails when customer email changes

Customer Group Pricing

Order pricing uses customer group for discount calculations

Magento_Quote

Shopping Cart

Shopping carts support both guest and logged-in customers with automatic binding on login.

Guest-to-Customer Conversion

Observer assigns guest cart to customer on login

Email Sync

Active quote email updated when customer email changes

Magento_Checkout

Checkout Process

Checkout uses customer address book for logged-in users and supports guest checkout flow.

Address Population

Loads saved addresses from customer repository

Default Address Selection

Pre-fills billing/shipping from customer defaults

Magento_Wishlist

Customer Wishlists

Wishlists are per-customer with cross-module plugin on email notifications.

Database FK

One wishlist per customer (or multiple in Enterprise)

Email Plugin

Adds wishlist data to customer email notifications

Magento_Catalog

Product Pricing

Customer groups affect tier pricing and catalog price rule eligibility.

Tier Pricing

Different prices per customer group and quantity

Catalog Rules

Rules target specific customer groups

Magento_Tax

Tax Calculation

Customer group's tax class determines applicable tax rates.

Tax Class Mapping

Each customer group has a tax class (Retail, Wholesale, etc.)

VAT Validation

Observer validates EU VAT numbers and assigns groups

Magento_PageCache

Full Page Cache

Depersonalization plugin removes customer data from cached pages.

Depersonalization Plugin

Clears customer data before caching page HTML

Customer Sections

AJAX endpoint loads private customer data post-render

Magento_Newsletter

Subscriptions

Newsletter subscriptions link to customers via optional foreign key.

Registration Integration

"Subscribe to newsletter" checkbox during registration

Email Synchronization

Subscription email must match customer email

Magento_Review

Product Reviews

Product reviews can be tied to customers or submitted as guest.

Optional FK

customer_id NULL for guest reviews

Dashboard Display

Customer sees "Your reviews" in account dashboard

REST/GraphQL API Integration

Customer module exposes service contracts via REST and GraphQL for headless and third-party integrations.

REST API

Auto-generated from Service Contracts

Key Endpoints

GET /V1/customers/:customerId
POST /V1/customers
PUT /V1/customers/:customerId
DELETE /V1/customers/:customerId

Authorization

Customers can only access their own data. Admins can access any customer via CustomerAuthorization plugin.

GraphQL API

Headless Commerce

GraphQL Query
query {
  customer {
    firstname
    lastname
    email
    addresses {
      street
      city
      region { region }
      postcode
    }
  }
}
GraphQL Mutation
mutation {
  updateCustomer(input: {
    firstname: "Jane"
    lastname: "Doe"
  }) {
    customer {
      firstname
    }
  }
}

Integration Patterns Summary

Quick reference for how Customer integrates with each module type.

Module Integration Type Key Mechanism
Magento_Eav Direct Dependency EAV entity inheritance
Magento_Directory Direct Dependency Address validation
Magento_Sales Email Sync Observer on customer save
Magento_Quote Guest Conversion Observer on customer login
Magento_Checkout Address Population Service contract calls
Magento_Wishlist Cross-Module Plugin Plugin on EmailNotification
Magento_Catalog Group Pricing Database foreign keys
Magento_Tax Tax Class Customer group tax class
Magento_PageCache Depersonalization Plugin on Layout
Magento_Backend Admin UI UI components, ACL