J'ai ajouté des champs personnalisés au formulaire de groupe de clients à l'aide de upgradeSchema.php
.
Après cela, j'ai constaté que les champs d'origine tels que le code de groupe de clients et l'ID de taxe étaient enregistrés à l'aide des méthodes de définition dans l'API fournie. Il est complètement différent de Magento 1.X qui utilise simplement setXXX () pour enregistrer.
Réponses:
Le mécanisme des attributs d'extension doit être utilisé dans ce cas. Il permet l'extension des API principales par des modules tiers. Étapes génériques pour activer un nouvel attribut d'extension:
var
et exécution<project_root>/bin/magento setup:di:compile
, le setter et le getter correspondants pour ce nouvel attribut devraient apparaître dans\Magento\Customer\Api\Data\GroupExtensionInterface
(cette interface est générée automatiquement)\Magento\Customer\Api\GroupRepositoryInterface::save
,\Magento\Customer\Api\GroupRepositoryInterface::getById
(et toute autre méthode de service si nécessaire) pour enregistrer / charger le nouvel attribut. En tant que développeur d'extensions, vous seul savez où cet attribut doit être stocké, peut être n'importe quelle table. Voir\Magento\Downloadable\Model\Plugin\AroundProductRepositorySave::aroundSave
comme exemplejoin
node. Sinon, sautez cela$customerGroup->getExtensionAttributes()->getMyAttribute()
oùcustomerGroup
implémente\Magento\Customer\Api\Data\GroupInterface
.setMyAttribute()
peut également être utiliséVoici un exemple de configuration qui devrait être mis à
VendorName/ModuleName/etc/extension_attributes.xml
la source
N'oubliez pas qu'un module a besoin d'un
register.php
fichier et que vous devez l'utiliserbin/magento module:enable VendorName_ModuleName
avant qu'il n'apparaisse!la source