如何扩展Shopware客户

How to extend Shopware customer

我需要编写一个 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: Shopware 5

对于后端,您必须做一些 ExtJs coding

对于 API 你必须扩展 REST-API endpoint for the user:

Shopware API erweitern

addAttribute 在 Shopware 5 中已弃用。 请改用 Shopware()-容器中的 shopware_attribute.crud_service

$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'
    )
);

如果您将 displayInBackend 设置为 true,您可以在用户所在的后台对其进行编辑。

更多内容在 Shopware Developer Guide