Je me demande quelle est la différence exacte entre les attributs d'extension et les attributs personnalisés ?
Quelqu'un ici qui peut me donner des idées?!
magento2
extension-attributes
anonyme
la source
la source
Réponses:
Les attributs personnalisés sont les attributs ajoutés pour décrire une entité, tels que les attributs de produit, les attributs de client, etc. Il s'agit d'un sous-ensemble d'attributs EAV.
D'un autre côté, les attributs d'extension sont généralement utilisés pour des types de données plus complexes tels que l'ajout de données complexes supplémentaires dans une entité à partir d'une table externe personnalisée.
Autrement dit, les attributs personnalisés sont conformes aux normes EAV tandis que les attributs d'extension sont utilisés pour des données plus complexes que les attributs personnalisés ne peuvent pas gérer.
la source
Les attributs personnalisés sont ceux ajoutés au nom d'un marchand. Par exemple, un marchand peut avoir besoin d'ajouter des attributs personnalisés à l'entité de produit nommée «personnalisable» dans lesquels il souhaite enregistrer des informations selon lesquelles ce produit sera personnalisé ou non par un tiers.
Les attributs personnalisés et les attributs d'extension ont tous deux la même fonctionnalité (pour conserver les données), mais il existe une différence considérable entre les attributs personnalisés et la fonctionnalité des attributs d'extension. par exemple
nous pouvons ajouter des critères de recherche supplémentaires avec l'attribut d'extension en le joignant à n'importe quelle autre table DB. Nous pouvons l'authentifier en y ajoutant ACL. Expliquons en détail.
Veuillez consulter l'extrait de code suivant. Vous devez créer un /etc/extension_attributes.xml
Recherche d'attributs d'extension: dans la balise de jointure, vous pouvez définir votre table concernée avec laquelle vous souhaitez vous joindre et obtenir des données de cette table. Dans l' attribut reference_table, vous devez donner le nom de la table tandis que reference_field sera la clé primaire (première clé de table pour laquelle cet attribut d'extension crée comme dans cet exemple de produits) sur laquelle vous mettez votre relation / jointure. join_on_field comme nom suggérant sera la deuxième table PK contre laquelle nous voulons des enregistrements. Sous les balises de champs, vous pouvez ajouter tous vos champs obligatoires en fait, vous voulez obtenir des données
Authentification d'attribut d'extension: vous pouvez restreindre cette valeur particulière d'attribut d'extension à l'aide de la balise. Pour comprendre cela, Prenons un exemple. Supposons que nous ayons plus d'un attribut d'extension pour les produits et que l'un d'eux indique extra_special_price, nous ne voulons pas le montrer à tous les utilisateurs. Nous pouvons restreindre cet attribut. Jetez un œil à l'extrait suivant.
Dans cet exemple, l'attribut stock_item est limité aux seuls utilisateurs qui ont l'autorisation Magento_CatalogInventory :: cataloginventory alors que logo_size n'a aucune condition.
Alors maintenant, si vous obtenez un objet produit (de quelque manière que ce soit via l'API ou à partir du Web) si l'utilisateur actuel a des autorisations pour cataloginventory, il obtiendra uniquement les valeurs stock_items.
Hors de portée de cette question mais regardez comment vous allez créer l'attribut en utilisant custom_extension dans le lien suivant de manière très simple: Comment créer extension_attributes
la source