PHPackages                             derhaeuptling/contao-immobilienscout24-import-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. derhaeuptling/contao-immobilienscout24-import-bundle

ActiveContao-bundle[Utility &amp; Helpers](/categories/utility)

derhaeuptling/contao-immobilienscout24-import-bundle
====================================================

Immobilienscout24 import for Contao Open Source CMS

v3.0.0(3y ago)11922[6 issues](https://github.com/derhaeuptling/contao-immobilienscout24-import-bundle/issues)MITPHPPHP &gt;=8.1

Since Sep 23Pushed 3y ago2 watchersCompare

[ Source](https://github.com/derhaeuptling/contao-immobilienscout24-import-bundle)[ Packagist](https://packagist.org/packages/derhaeuptling/contao-immobilienscout24-import-bundle)[ RSS](/packages/derhaeuptling-contao-immobilienscout24-import-bundle/feed)WikiDiscussions master Synced 6d ago

READMEChangelog (10)Dependencies (11)Versions (28)Used By (0)

Immoscout24 Import for Contao
-----------------------------

[](#immoscout24-import-for-contao)

This bundle allows you to import real estate objects from Immoscout24 into your Contao application (4.8+) and display them as native content.

**Warning**: This is an early release. There might be features missing. Use at your own risk.

How to get going
----------------

[](#how-to-get-going)

### Setup

[](#setup)

1. Install the bundle and update your database. There is no further configuration necessary.

    ```
    composer require derhaeuptling/contao-immobilienscout24-import-bundle
    ```
2. Add at least one `Immoscout24 Account` in the backend and enter your API credentials.
3. Setup a cron job that executes the `immoscout24:sync` command or run it yourself to import real estate objects from the API into your application. You can pass an account's id or description as a parameter to only sync this one account and `--dry-run` to only see what would be updated without persisting the changes. Use the option `--purge` to clear the database table and all downloaded files completely beforehand.
4. We are using Contao's Virtual Filesystem feature. If you also want to adjust where the downloaded attachments should be stored, simply mount the `immoscout24` directory at another place. See the [Contao developer docs](https://docs.contao.org/dev/framework/filesystem/config/)for more information about this topic.
5. Add one or more Immoscout24 modules in your theme and use it in the frontend:

    - The **Real estate list** displays a list of real estate objects. If you want to generate a teaser list with 'read more' links, make sure to specify a 'jump to' page with the appropriate reader.
    - The **Real estate reader** displays a single real estate object based on the url parameter (id).
    - List items can be constrained individually by using a filter expression.
        Some filter expression examples:

        - one object by its ID `realEstateId == 111111111`
        - some objects by its IDs `realEstateId in [111111111,222222222,333333333]`
        - all active objects `state ==  STATUS_ACTIVE `
        - all objects published to the homepage channel `'Homepage' in publishChannels`
        - all objects with empty API-Searchfield1 `apiSearchData1 != null`
        - all objects that match a KEYWORD in the title field `title matches "/KEYWORD/"`
        - combine filter `'Homepage' in publishChannels` &amp;&amp; `priceMarketingType == "Kauf"`

### Templates and values

[](#templates-and-values)

The real estate listings contain lots of fields - most likely you'll want to adapt the templates to your needs and only output some of the fields. To do this, there are some helpers for your convenience.

A) Real estate data comes in the form of an **entity instance**, you can type hint against it to get IDE auto-completion in your templates:

```
  /** var Derhaeuptling\ContaoImmoscout24\Entity\RealEstate $realEstate */
  $realEstate
```

B) You can also obtain a **list of all available attributes**:

```
  $this->attributes

  // array [name => label] of publicly accessible fields of the real estate objects
  // e.g. 'descriptionNote' that can be accessed via $realEstate->descriptionNote
```

C) To **retrieve and format data**, you can use these helper functions:

```
  $this->hasData(RealEstate $realEstate, string $attribute) : bool
  // will return wether $realEstate holds data for the $attribute

  $this->getFormatted(RealEstate $realEstate, string $attribute) : string
  // will return the formatted value of $attribute - enumerations, dates and
  // booleans will resolved to a string representation based on the language
  // files
```

D) If you want to resolve enumerations yourself you can find all of them as public constants in the `RealEstate` entity.

Some enumeration values can occur multiple times per value. In this case they are implemented as binary flags:

```
  FLAG__TYPE_A = 1;
  FLAG__TYPE_B = 2;
  FLAG__TYPE_C = 4;
  FLAG__TYPE_D = 8;
  FLAG__TYPE_E = 16;

  // n-of-value selecting 'type A' and 'type E'
  $value = -(FLAG__TYPE_A | FLAG__TYPE_E); // = 17
```

Note that flagged values are stored as **negative numbers**, so that they can easily be differentiated from regular enumeration values.

### Attachments

[](#attachments)

Real estate objects can have multiple attachments. Note: that currently only images are supported attachment types.

To render an attachment (as an image) you can utilize the `getFigureFromAttachment()`function present in the templates. It allows passing in an alternative image size as second argument:

```
  $figure = $this->getFigureFromAttachment($realEstate->getTitlePictureAttachment());

  $figure = $this->getFigureFromAttachment(
      $realEstate->getTitlePictureAttachment(),
      $this->alternativeImageSize
  );
```

To output the `Figure`, pass its data to the template you want render. In case of the legacy `image` template, make sure to expand the image data beforehand by calling `getLegacyTemplateData()`:

```
  $this->insert('image', $titlePictureFigure->getLegacyTemplateData());
```

Here is the full example how to output the title picture with the default image size in a failure-tolerant way:

```

        Title Picture

            There is no title picture.

```

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity78

Established project with proven stability

 Bus Factor1

Top contributor holds 95.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~44 days

Recently: every ~185 days

Total

27

Last Release

1335d ago

Major Versions

v0.5.0-beta → v1.0.02019-11-25

v1.3.1 → v2.0.02020-10-27

v2.1.1 → v3.0.02022-11-07

PHP version history (2 changes)v0.1.0-betaPHP &gt;=7.2

v3.0.0PHP &gt;=8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/8f738ebbbcb203ec68275ced0f3953f267a6c8e75eaa84d5e4fca383eb75e5cf?d=identicon)[DER HÄUPTLING](/maintainers/DER%20H%C3%84UPTLING)

---

Top Contributors

[![m-vo](https://avatars.githubusercontent.com/u/5305677?v=4)](https://github.com/m-vo "m-vo (117 commits)")[![Metis77](https://avatars.githubusercontent.com/u/1408361?v=4)](https://github.com/Metis77 "Metis77 (4 commits)")[![OMOSde](https://avatars.githubusercontent.com/u/2035628?v=4)](https://github.com/OMOSde "OMOSde (1 commits)")

---

Tags

bundlecontaoimmobilienscout24importcontaoimmobilienscout24immoscout24

###  Code Quality

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/derhaeuptling-contao-immobilienscout24-import-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/derhaeuptling-contao-immobilienscout24-import-bundle/health.svg)](https://phpackages.com/packages/derhaeuptling-contao-immobilienscout24-import-bundle)
```

###  Alternatives

[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1189.8k](/packages/rcsofttech-audit-trail-bundle)[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.9M388](/packages/easycorp-easyadmin-bundle)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.9M738](/packages/sylius-sylius)[oro/platform

Business Application Platform (BAP)

645143.5k115](/packages/oro-platform)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9421.6k61](/packages/open-dxp-opendxp)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M203](/packages/sulu-sulu)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
