What are the Slack Archives?

It’s a history of our time together in the Slack Community! There’s a ton of knowledge in here, so feel free to search through the archives for a possible answer to your question.

Because this space is not active, you won’t be able to create a new post or comment here. If you have a question or want to start a discussion about something, head over to our categories and pick one to post in! You can always refer back to a post from Slack Archives if needed; just copy the link to use it as a reference..

Hi, I was reading akeneo middleware documentation and couldn't wrap my head around this

U0134CBTUKS Posts: 42 🧑🏻‍🚀 - Cadet
edited July 2020 in Slack General

Hi, I was reading akeneo middleware documentation and couldn't wrap my head around this AkeneoPimMiddlewareConnectorBusinessFactory. These Steps can be in any module? As I see here the step was created in "namespace Pyz\Zed\AkeneoPimMiddlewareConnector\Business\DataImportStep" it's weird for me because I thought DataImport stuff should be in DataImport and not Middleware?
What would be best practice to place dataimportsteps? Create a separate module for each one like "CmsPageDataImport" or place them under DataImport module(because some of them still can be reused in my module)(but this gets messy over time) or do it like in Akeneo documentation and place under Middleware? Should I treat them as plugins maybe and add them from wherever?


  • U0134CBTUKS
    U0134CBTUKS Posts: 42 🧑🏻‍🚀 - Cadet
    edited July 2020

    I created a separate DataImport module to keep it clean because the DataImport module does not follow Spryker module structure conventions. And its sad that middleware with DataImport docs are poor 😕

  • Thomas Lehner
    Thomas Lehner Support Engineer @ Spryker Posts: 289 🏛 - Council (mod)

    @U0134CBTUKS i forwarded your question internally since there was no answer so far. Thanks for your patience

  • U0134CBTUKS
    U0134CBTUKS Posts: 42 🧑🏻‍🚀 - Cadet

    Thank you 🙂

    UKHD8KTMF Posts: 393 🧑🏻‍🚀 - Cadet

    Hi, the naming used is not the best and it can cause a lot of confusion. If you follow up all the way to the end you will see that you will end up in StreamFactory and ultimately in ProductAbstractWriteStreamPlugin that will be used to define part of the middleware process inaddProductModelImportProcessPlugins. That is all middeware realted and has nothing to do with DataImporter that you are referring to.

    As far as puting plugins they can be in any module but my guess is that in this case they are all placed in Akeneo integration module due to convenience, since they are Akeneo integration related.

    Middleware is a big topic on its own and as Akeneo heavily rely on it I suggest that you have a look at https://documentation.spryker.com/docs/spryker-middleware