将 parameters.yml 值传递给 Akeneo 前端

问题描述

我正在迁移一个捆绑包,在产品页面添加一个链接按钮,从 akeneo 2.3 到 akeneo 3.2。在 2.3 中,我们在 parameters.yml 上定义了一个参数

 #CUSTOM
 magento_base_url: http://mymagento.com/

然后在 form_extensions 中

extensions:
  pim-product-edit-form-magento-link-frontend:
    module: pim/product-edit-form/magento-link
    parent: pim-product-edit-form
    targetZone: buttons
    position: 90
    magentoBaseUrl: "%magento_base_url%" <-- MY CUSTOM ATTR
    type: frontend

然后在 js 中我会有

define(
[
    'underscore','oro/translator','pim/form','pim/template/product/magento-link'
],function (_,__,BaseForm,template) {
    return BaseForm.extend({
        template: _.template(template),render: function () {
            let linkPath,linkLabel,sku = this.getFormModel().get('identifier'),baseUrl = this.options.magentoBaseUrl; <-- THIS

其中 baseUrl 包含 http://mymagento.com/

升级到 3.2 后,baseUrl 上的值正好是 %magento_base_url%

我应该怎么做才能将此参数传递给 js 堆栈?

解决方法

似乎从 3.2 版本开始,akeneo 使用节点引擎来解析 form_extensions yaml,并且您无法再访问这些参数。作为解决方法,我编写了一个控制器并通过 ajax 检索值