2015-10-16 3 views
2

J'ai besoin d'écrire un plugin Shopware qui étend modèle client avec external_id champ. Ce champ doit être modifiable via l'interface utilisateur d'administration et l'API.Comment étendre client Shopware

J'ai trouvé que je peux ajouter attribut à l'utilisateur comme ceci:

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

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

Que dois-je faire pour montrer ce champ dans l'interface utilisateur et API?

PS: Shopware 5

Répondre

3

addAttribute est dépréciée dans Shopware 5. Utilisez shopware_attribute.crud_service du Shopware() -container à la place.

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

Si vous définissez displayInBackend à true, vous pouvez le modifier dans le backend, où l'utilisateur est.

Plus sur le Shopware Developer Guide.