---
title: Data Abstraction Layer | Shopware Community Hub
description: >-
  Learn how to work with Shopware’s Data Abstraction Layer to create, read,
  write, and extend entities.
canonical_url: 'https://hub.shopware.com/learn/course/data-abstraction-layer'
---

# Data Abstraction Layer

<LearningObjectives>

- Understand the role of the Data Abstraction Layer (DAL) in Shopware.
- Learn how to create custom entities using the DAL.
- Read and write entity data using repository and criteria-based APIs.
- Create relationships between entities using associations.
- Extend existing core entities using entity extensions.
- Implement proper entity registration and database schema creation.
- Apply best practices for entity design, performance, and maintainability.
  
</LearningObjectives>

# Data Abstraction Layer

The Data Abstraction Layer (DAL) is Shopware's core system for modeling, querying, and writing data.
In this course, you'll learn how to create custom entities, build efficient read/write operations, and extend existing core entities without modifying Shopware core code.

## Learning Approach

This course focuses on **practical understanding**. You'll follow real examples that show how entity definitions, repositories, criteria, and extensions work together in day-to-day plugin development.

## Example Plugin

Throughout this course, we'll use the **AcademyProductNotes** plugin as a running example.

### Getting the Plugin

From your shop root directory, run the following commands to get the plugin.

```shell
cd custom/plugins
git clone https://github.com/ShopwareAcademy/AcademyProductNotes.git
```

---

Ready to start building? Let's dive into the world of the DAL!

## Learning Units

## Units
- [Understanding the Data Abstraction Layer](/learn/unit/understanding-the-data-abstraction-layer): Learn what the Data Abstraction Layer (DAL) in Shopware is and how it fits into the platform architecture.
- [Creating Custom Entities](/learn/unit/creating-custom-entities): Learn how to create, register and persist custom entities in Shopware using the Data Abstraction Layer.
- [Reading Data With the Data Abstraction Layer](/learn/unit/reading-data-with-the-dal): Learn how to read data from custom entities using Shopware’s Data Abstraction Layer (DAL).
- [Writing Data With the Data Abstraction Layer](/learn/unit/writing-data-with-the-dal): Learn how to create, update, and delete custom entity data using Shopware’s Data Abstraction Layer.
- [Extending Existing Entities](/learn/unit/extend-existing-entities): Learn how to extend existing Shopware entities using entity extensions and associations.
