2

我需要编写一个 Shopware 插件,用external_id字段扩展客户模型。该字段应该可以通过管理 UI 和 API 进行编辑。

我发现,我可以像这样向用户添加属性:

public function addAttributes() {
    $this->Application()->Models()->addAttribute(
        's_user_attributes',
        'bla',
        'externalId',
        'INT(11)',
        true,
        null
    );

    $this->Application()->Models()->generateAttributeModels(array(
        's_user_attributes'
    ));
}

我应该怎么做才能在 UI 和 API 中显示此字段?

PS:商店用品5

4

2 回答 2

5

addAttribute在 Shopware 5 中已弃用。请改为shopware_attribute.crud_service从-container 使用Shopware()

$service = Shopware()->Container()->get('shopware_attribute.crud_service');
$service->update('s_user_attributes', 'bla', 'integer', [
    'label' => '',
    'supportText' => '',
    'helpText' => '',
    'translatable' => false,
    'displayInBackend' => true,
    'position' => 1
]);

Shopware()->Models()->generateAttributeModels(
    array(
        's_user_attributes'
    )
);

如果设置displayInBackendtrue,则可以在用户所在的后端进行编辑。

更多信息请参见 Shopware 开发人员指南

于 2017-04-17T15:21:48.063 回答
2

对于后端,你必须做一些ExtJs 编码

对于 API,您必须为用户扩展 REST-API 端点

Shopware API erweitern

于 2015-10-20T08:08:53.063 回答