Article icon Blog

Everything You Need to Know About Creating Akeneo Extensions

Article main image
Article main image

Akeneo is powerful out of the box, but every ecommerce team has its own workflows, tools, and data challenges. Sometimes, a standard PIM setup needs a little extra help to fit the way your team actually works.

That’s where Akeneo extensions come in. Extensions let you add custom views, actions, embedded tools, or advanced functionality directly inside the Akeneo interface. Whether you need to connect external systems, display product data from another source, trigger workflows, or create a more tailored enrichment experience, extensions can help reduce context switching and make product information management more efficient.

In this article, we’ll break down the main types of Akeneo extensions, how Custom Components work, what developers need to know about the Akeneo Extension SDK, and when it makes sense to bring in an Akeneo partner agency like Blue Badger.

What is an Akeneo Extension?

An Akeneo extension is a way to add views, actions, or custom functionality inside the Akeneo PIM interface. At a basic level, extensions help teams bring external information, workflows, or tools closer to the product data enrichment process.

Not every customization needs a full custom interface. Sometimes a simple link to an ERP record or supplier portal is enough. Other times, you might need a richer tool that feels native to Akeneo and interacts with product data, user permissions, and external APIs to accomplish what you’d like.

The Main Akeneo Extension Types

Akeneo offers five main types of extensions for developers to leverage. They are: 

  1. Link Extensions: The simplest option. These open external content in a new browser tab, which makes them useful for documentation, admin panels, external product records, or related tools that don’t need to live inside the PIM interface.

  2. Action Extensions: These trigger external background tasks by making an HTTP POST request. For example, a user could click a button in Akeneo to trigger a product validation job, a translation request, a data sync, or a workflow in another system. Akeneo sends contextual data with the request, such as the user, locale, channel, selected product data, and timestamp.

  3. Data Component Extensions: These extensions retrieve data from a predefined endpoint using an HTTP GET request and display it inside Akeneo. These are useful for read-only information, such as external inventory levels, validation results, supplier details, or ecommerce performance data.

  4. Iframe Extensions: Use these to embed an externally hosted web application directly into the Akeneo interface. This is a practical option when your team already has a standalone application and wants to make it accessible from within the PIM without rebuilding it as a native Akeneo component.

  5. Custom Component Extensions: The most flexible option. These are self-contained JavaScript applications built with the Akeneo Extension SDK and hosted by Akeneo. They’re designed for richer, native-feeling PIM experiences, such as guided enrichment tools, custom dashboards, interactive validation screens, or workflows that need direct access to Akeneo context and APIs.

Choosing the Right Akeneo Extension Method/Type

Before you build anything, start with the use case. The best Akeneo extension isn’t always the most advanced one. Rather, it’s the one that solves the business problem with the least unnecessary complexity.

For example: 

  • Use a Link when users simply need quick access to an external page, record, or tool.

  • Use an Action when users need to trigger a server-side task from Akeneo, such as sending product data to another system or starting an external workflow.

  • Use a Data Component when users need to view external data in Akeneo, but don’t need to edit or interact with it.

  • Use an Iframe when you already have a self-hosted application and want to embed it in the PIM with minimal changes.

  • Use a Custom Component when you want a native in-PIM experience that uses Akeneo’s SDK, PIM context, permissions, and APIs.

  • Use a Custom App or Connector when the work is primarily backend integration, such as data synchronization, automation, catalogue exports and imports, or long-running operations. Akeneo’s own guidance distinguishes among Iframes, Custom Components, and Custom Apps based on hosting needs, the level of PIM integration, and use case. It recommends Custom Apps for heavier tasks, such as synchronization and large-scale operations.

Generally, if the main problem is user experience inside the PIM, think extension. If the main problem is data movement between systems, think App, Connector, or API integration.

How Akeneo Custom Components Work

Custom Components are Akeneo’s advanced extension option. They are JavaScript applications built with the Akeneo Extension SDK and deployed directly into the PIM. Once deployed, they run in a secure sandbox and can access Akeneo APIs through SDK methods.

Akeneo describes the Custom Component workflow in four basic stages: 

  1. Build

  2. Bundle 

  3. Deploy

  4. Run. 

Developers build the extension using the SDK, compile it into a single JavaScript file, deploy it via the Akeneo UI or API, and the code then runs inside the PIM sandbox with authenticated access to PIM APIs.

This is great for ecommerce teams that need PIM customizations tied to real operational workflows. For example, a Custom Component could show stock availability from an ERP on the product enrichment page, display a product completeness dashboard, guide users through market-specific content requirements, or surface external translation status beside product records.

At Blue Badger, our most recent Custom Component implementation helped a client view, filter, and provide feedback on their photo studio’s output directly within the PIM. Since Akeneo doesn’t natively allow users to view attribute copy in the same space as assets, enabling users to tap into the photo gallery while working elsewhere in the PIM saves a ton of time that would otherwise be spent toggling between tabs and windows to write romance copy, control the status, give feedback or approve images. 

Getting Started with Custom Components and the Akeneo Extension SDK

To build a Custom Component, developers need knowledge of JavaScript or TypeScript, Node.js, npm, the Akeneo Extension SDK, a development environment, and the appropriate PIM permissions or access method to create and manage extensions.

Start by cloning the Extension SDK repository and moving into the quickstart example project:

-> git clone https://github.com/akeneo/extension-sdk.git

-> cd extension-sdk/examples/quickstart

-> make start

The make start command installs dependencies, helps configure the environment, and creates the extension in the PIM for the first time. Once the extension is developed, make build creates a production-ready JavaScript file in the dist/ directory.

From there, the extension can be deployed in two ways: manually via the Akeneo PIM UI or programmatically via the API. The manual option is useful for early testing. API deployment is better for CI/CD pipelines, versioned releases, and managing multiple environments.

What the Akeneo Extension SDK Gives Developers Access To

The Akeneo Extension SDK gives Custom Components access to PIM resources and context. This includes product APIs, product model APIs, asset APIs, reference entity APIs, attribute APIs, category APIs, locale APIs, channel APIs, workflow APIs, user information, and contextual data based on where the extension appears.

Important SDK objects and methods include:

  • PIM.api.product_uuid_v1 for product data by UUID

  • PIM.context for context such as product UUID, selected grid items, locale, channel, and position

  • PIM.user for current user details and groups

  • PIM.navigate.internal() for navigation inside the PIM

  • PIM.navigate.external() for secure external navigation

  • PIM.navigate.refresh() to refresh the parent PIM page

  • PIM.api.external.call() to call external APIs through Akeneo’s secure gateway

Deployment: UI vs API

Akeneo supports two deployment paths for Custom Components.

The first option is UI deployment. A developer or administrator logs in to Akeneo, goes to System → Extensions, creates or updates an extension, selects SDK Script as the type, and chooses a position such as pim.product.panel or pim.activity.navigation.tab, uploads the compiled JavaScript file, configures labels, and saves the extension. The extension then becomes available in the configured location.

The second option is API deployment. This uses the /api/rest/v1/ui-extensions endpoint and lets teams deploy or update extensions programmatically. For SDK extensions, required parameters include a unique name, a type set to sdk_script, a position, a built JavaScript file, and a default label. This is the better option for automated workflows, release pipelines, and environment promotion from development to staging to production. 

Positions: Where Extensions Appear in Akeneo

Extension position controls where an extension appears in the Akeneo PIM interface. Akeneo supports positions such as product headers, product tabs, category tabs, product grid action bars, activity navigation tabs, and product panels. 

Not every extension type is available in every position, so placement should be part of the initial extension design decision, not something you figure out at the end. Dashboards, for example, might work best in a panel whereas a batch export option might belong in the product grid. 

Credentials and External API Calls

Many useful Akeneo extensions need to talk to external systems, such as an ERP, DAM, translation platform, ecommerce storefront, warehouse system, or analytics tool. For Custom Components, Akeneo does not allow direct fetch or XMLHttpRequest calls from the sandbox. External requests must go through SDK methods, specifically PIM.api.external.call().

For authenticated calls, credentials should not be hardcoded into the JavaScript file. Akeneo supports stored credentials using Bearer Token, Basic Authentication, and Custom Header methods. Developers can reference a stored credential with credentials_code when making external calls. 

Configuration should also be externalized wherever possible. Custom variables can be stored as encrypted JSON objects in the PIM and accessed through globalThis.PIM.custom_variables. This helps teams reuse the same extension code across development, staging, production, and multiple customer instances without rewriting the application for each environment.

Permissions, Filtering, and Controlled Rollout

Akeneo extensions can be filtered so they are available only to specific user groups, products, or individual users. This is useful for restricting sensitive functionality to administrators, showing different tools to different teams, beta testing with selected users, or displaying specialized extensions only for certain product families, categories, or attributes. If no user groups are selected, the extension is available to all users.

For ecommerce teams, this is great for a controlled rollout. You don’t need to launch a new extension to every merchandiser, marketer, product manager, and operations user at once. Start with a smaller group, test behaviour with real product data, collect feedback, and then expand access once the workflow is stable and locked in. 

Common Akeneo Extension Pitfalls

The biggest mistake we see is teams overbuilding their custom extensions. If a Data Component can show the external information your team needs, don’t jump straight to a Custom Component. If an Iframe can cleanly embed an existing application, rebuilding it as a native component is probably not worth the effort either. 

Another common mistake is ignoring extension limitations. Action extensions have a 5-second timeout, no automatic retry mechanism, no real-time progress updates, and a 500-item limit for product grid actions. That makes them useful for fast triggers, but not ideal for long-running jobs, for example. 

Data Components also have clear limits. They’re read-only, JSON-only, controlled by Akeneo’s display format, limited in interactivity, and load once when the panel opens. If users need buttons, forms, edits, refreshes, or custom UI, a Data Component is probably too limited.

Custom Components come with their own considerations. They run in a secure sandbox, so developers need to work through SDK methods rather than assuming normal browser behaviour. Direct external network requests are not allowed, and external communication must use the SDK gateway.

Finally, don’t skip version and environment checks. Akeneo documentation is versioned across different PIM versions, and some guidance might vary depending on whether you’re using Product Cloud, Serenity, or an older version

When to Bring in an Akeneo Partner Agency

An Akeneo partner agency, like Blue Badger, can help merchants define the right extension strategy before development begins. That includes deciding whether the use case calls for a Link, Action, Data Component, Iframe, Custom Component, Custom App, Connector, or a mix of approaches. 

It also includes planning how the extension will interact with Shopify, Adobe Commerce, ERP systems, DAMs, translation tools, analytics platforms, or custom middleware.

This is especially valuable when the extension supports a high-impact business process, like product enrichment, localization, inventory visibility, catalogue syndication, approval workflows, or ecommerce launch readiness. 

At Blue Badger, we can help PIM users determine where their workflows could use a little help from custom development and build out a solution to make their day-to-day work within the tool easier and more efficient. 

Conclusion

Done well, Akeneo extensions can help ecommerce teams enrich products faster, reduce context switching, improve data quality, and connect the PIM more effectively to the rest of the commerce stack. Start with the use case, validate the architecture, test with real users, and build only what the business actually needs. 

At Blue Badger, we have the skills and experience you need to build Akeneo extensions that work for your team and process of enriching/improving product information without overcomplicating it. Get in touch with us today to learn more.