Pim-community-dev: [Question] Calculateur de complétude

Créé le 18 avr. 2016  ·  5Commentaires  ·  Source: akeneo/pim-community-dev

je pose une question

Nous utilisons la version PIM 1.4 dans notre intégration et prévoyons une mise à niveau vers 1.5 après quelques mois.

Histoire
Nous avons une entité de produit personnalisée qui ajoute une nouvelle relation au produit. Il s'agit d'une relation unidirectionnelle ManyToMany via une table de jointure.

Question
Quelle est la meilleure façon de mettre à jour/écraser le calculateur d'exhaustivité pour pouvoir ajouter des données de produit supplémentaires dans ses calculs. Peut-être qu'il y a quelque chose comme un fichier de configuration. Peut-être y a-t-il une autre meilleure façon de le faire.

Merci!

question

Tous les 5 commentaires

Bonjour @a2xchip ,

Malheureusement, pour le moment, vous devez remplacer le CompletenessGenerator . C'est triste car c'est l'un des derniers endroits du PIM où les types d'attributs personnalisés ne sont pas gérés facilement via un registre. Nous savons que nous devons réécrire cette partie, elle est sur notre liste de choses à faire, mais je ne peux pas encore vous fournir d'ETA.

Cette partie est assez sensible et complexe. Quelle est la nature des données dont vous souhaitez calculer l'exhaustivité ?

Si c'est lié à une ProductValue, je vous suggère de faire exactement la même chose que nous avons fait pour les prix. Jetez un œil à la méthode prepareCompletePrices . Cela peut être un bon début de ce que vous devrez accomplir. Vous devrez également remplacer les méthodes getExtraJoins et getExtraConditions pour joindre et interroger vos nouvelles tables.

N'hésitez pas à expliquer davantage votre problème, ou à donner un exemple, afin que nous puissions essayer de mieux vous aider ;)

Bonjour @jjanvier

Merci pour votre réponse rapide et complète ! Je pense que cela me donne un bon point de départ. Les données ne sont pas liées à l'entité de valeur du produit mais à l'entité de produit.

J'ai ajouté l'onglet images au formulaire d'édition de produit et créé la propriété images (Collection) liée à l'interface fileinfo.

manyToMany:
        images:
            targetEntity: Akeneo\Component\FileStorage\Model\FileInfoInterface

PS
Pour l'exportation, nous utilisons EnhanceConnector réglé pour exporter des produits 100% complets. Et je ne sais pas comment m'assurer que le produit 100% complet a au moins une image qui lui est liée.

Vous devez regarder la méthode getMainSqlPart @a2xchip. Cela génère la requête SQL complexe qui remplira l'intégralité. Peut-être que cela fonctionnera dans votre cas en remplaçant simplement les méthodes getExtraJoins et getExtraConditions que j'ai mentionnées précédemment. En remplaçant ces 2 méthodes, cela ajoutera votre logique supplémentaire à getMainSqlPart .

Mais cela dépend de vos besoins. Cela dépend si vous considérez que votre produit est complet lorsqu'au moins 1 (ou 2 ou 3 ou X) ou toutes les images sont remplies.

Mon conseil est donc de commencer par remplacer les 2 méthodes getExtraJoins et getExtraConditions pour comprendre comment fonctionne la complétude. Si vous avez besoin de plus de logique personnalisée, consultez ce que nous avons fait pour les prix.

J'espère que mon explication t'aidera ^^
N'hésitez pas à revenir ici si vous rencontrez des difficultés ;)

@jjanvier Merci beaucoup je vais suivre vos recommandations :-) Je pense qu'elles me feront gagner beaucoup de temps !

Cette page vous a été utile?
0 / 5 - 0 notes