PHPackages                             sintra/pimcore-shopify-using-ipaas - 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. sintra/pimcore-shopify-using-ipaas

ActivePimcore-bundle

sintra/pimcore-shopify-using-ipaas
==================================

A Pimcore's bundle for products, prices and translation sync using ipaas

1.0.1(1y ago)215GPL-3.0-or-laterPHPPHP ^8.2

Since Sep 10Pushed 1y ago5 watchersCompare

[ Source](https://github.com/Sintraconsulting/pimcore-shopify-using-ipaas)[ Packagist](https://packagist.org/packages/sintra/pimcore-shopify-using-ipaas)[ RSS](/packages/sintra-pimcore-shopify-using-ipaas/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (2)Versions (3)Used By (0)

Sync Shopify Bundle
===================

[](#sync-shopify-bundle)

Bundle Pimcore 11 per l'integrazione con IPaaS per la sincronizzazione di anagrafica, traduzioni e prezzi dei prodotti.

Installazione
-------------

[](#installazione)

- Eseguire il comando `composer require sintra/pimcore-shopify-using-ipaas`
- Abilitare il bundle nel file `config/bundles.php````
    SyncShopifyBundle\SyncShopifyBundle::class => ['all' => true]
    ```
- Installare il bundle con il comando eseguito all'interno del container docker `bin/console pimcore:bundle:install SyncShopifyBundle`

Utilizzo
--------

[](#utilizzo)

L'installazione del bundle crea il dataobject `DefaultProduct` che è sincronizzabile tramite i mapper di default già presenti nella libreria. E' possibile creare dei mapper custom per il dataobject specifico che si intende mappare.

#### Creazione Mapper

[](#creazione-mapper)

Il mapper deve essere registrato come servizio nel `services.yaml`, non sono necessari tag perchè già presenti nell'interfaccia implementata.

Per estendere la libreria con un mapper custom è necessario implementare l'interfaccia del flusso specifico:

- `SyncShopifyBundle\Service\Product\IShopifyProductMapper`
- `SyncShopifyBundle\Service\Translation\IShopifyTranslationMapper`
- `SyncShopifyBundle\Service\Price\IShopifyPriceMapper`

I metodi da implementare sono:

- `getMapperServiceKey()`: La chiave passata come query parameter `mapper-service-key` nella chiamata agli endpoint, per scegliere il servizio corretto di mappatura
- `getProductClassId()`: La classe del dataobject pimcore del prodotto
- `getShopifyChannelKey()`: La chiave del canale di vendita Shopify, necessaria per filtrare i prodotti da esportare. Il prodotto ha nella tab `Synchronization Information` una multiselect in cui è possibile selezionare le istanze Shopify in cui esportarlo.

    [![Shopify Multiselect](assets/shopify-channels-multiselect.png)](assets/shopify-channels-multiselect.png)
- `getMappedProduct()`: Restituisce il modello specifico del flusso mappato con il prodotto, è possibile escludere il dataobject lanciando l'eccezione `IgnoreDataObjectMappingException`

#### Query Prodotti

[](#query-prodotti)

I prodotti sono selezionati in base alla `modificationDate` con ordinamento crescente. Onde evitare la selezione dei medesimi prodotti ogni volta, è salvata l'ultima `modificationDate` nella tabella settings\_store a DB. Sono selezionati solo i prodotti `published` e che sono esportabili per un certo canale Shopify. Sul modello mappato viene effettuato un hash, salvato sulle note del dataObject e confrontato con l'ultimo calcolato per evitare l'invio di un messaggio duplicato ad IPaaS.

Sicurezza
---------

[](#sicurezza)

Nel bundle è configurato un Authenticator Symfony per proteggere gli endpoint tramite un API Key.

- Inserire l'API Key nel file `.env` oppure nell'environment del `docker-compose.yaml`

    ```
     SYNC_SHOPIFY_BUNDLE_API_KEY: your-api-key
    ```
- Aggiungere la configurazione nel file `config/packages/security.yaml`

    ```
    security:
      firewalls:
        sync-shopify:
          pattern: ^/sync-shopify
          stateless: true
          custom_authenticators:
            - SyncShopifyBundle\Security\ApiKeyAuthenticator

      access_control:
        - { path: ^/sync-shopify, roles: IS_AUTHENTICATED_FULLY }
    ```

    All'occorrenza è possibile utilizzare un Authenticator custom sostituendo quello presente.

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance35

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 71.4% 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 ~7 days

Total

2

Last Release

602d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/300199854895226b22de6db9e852de24d4597b66f827838b51c82e2bb5ad2610?d=identicon)[sintra](/maintainers/sintra)

---

Top Contributors

[![RobertoRomolini](https://avatars.githubusercontent.com/u/63667868?v=4)](https://github.com/RobertoRomolini "RobertoRomolini (10 commits)")[![pacowoodoo](https://avatars.githubusercontent.com/u/6768740?v=4)](https://github.com/pacowoodoo "pacowoodoo (4 commits)")

### Embed Badge

![Health badge](/badges/sintra-pimcore-shopify-using-ipaas/health.svg)

```
[![Health](https://phpackages.com/badges/sintra-pimcore-shopify-using-ipaas/health.svg)](https://phpackages.com/packages/sintra-pimcore-shopify-using-ipaas)
```

###  Alternatives

[pimcore/data-hub

Pimcore Datahub

1351.3M9](/packages/pimcore-data-hub)[pimcore/admin-ui-classic-bundle

171.1M46](/packages/pimcore-admin-ui-classic-bundle)[pimcore/data-importer

Adds a comprehensive import functionality to Pimcore Datahub

44763.4k2](/packages/pimcore-data-importer)[pimcore/studio-backend-bundle

Pimcore Studio Backend Bundle

19112.5k3](/packages/pimcore-studio-backend-bundle)[pimcore/studio-ui-bundle

Pimcore Studio Ui Bundle

2751.3k2](/packages/pimcore-studio-ui-bundle)

PHPackages © 2026

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