Pim-community-dev: [Frage] Vollständigkeitsrechner

Erstellt am 18. Apr. 2016  ·  5Kommentare  ·  Quelle: akeneo/pim-community-dev

Ich stelle eine Frage

Wir verwenden die Version PIM 1.4 in unserer Integration und planen nach einigen Monaten ein Upgrade auf 1.5.

Geschichte
Wir haben eine benutzerdefinierte Produktentität, die eine neue Beziehung zum Produkt hinzufügt. Es ist eine unidirektionale ManyToMany-Beziehung über eine Join-Tabelle.

Frage
Wie kann der Vollständigkeitsrechner am besten aktualisiert/überschrieben werden, um zusätzliche Produktdaten in seine Berechnungen einfügen zu können? Vielleicht gibt es so etwas wie eine Konfigurationsdatei. Vielleicht gibt es einen anderen besten Weg, dies zu tun.

Vielen Dank!

question

Alle 5 Kommentare

Hallo @a2xchip ,

Leider müssen Sie im Moment CompletenessGenerator überschreiben. Es ist traurig, weil es einer der letzten Orte im PIM ist, an denen benutzerdefinierte Attributtypen nicht einfach über eine Registrierung gehandhabt werden können. Wir wissen, dass wir diesen Teil neu schreiben müssen, er steht auf unserer Todo-Liste, aber ich kann Ihnen noch keine ETA nennen.

Dieser Teil ist ziemlich sensibel und komplex. Auf welcher Art möchten Sie die Vollständigkeit berechnen?

Wenn es mit einem ProductValue verknüpft ist, empfehle ich Ihnen, genau das gleiche zu tun, wie wir es für Preise getan haben. Schauen Sie sich die Methode prepareCompletePrices . Das kann ein guter Anfang für das sein, was Sie erreichen müssen. Sie müssen auch die Methoden getExtraJoins und getExtraConditions überschreiben, um Ihre neue(n) Tabelle(n) zu verknüpfen und abzufragen.

Zögern Sie nicht, Ihr Problem näher zu erläutern oder ein Beispiel zu nennen, damit wir versuchen können, Ihnen besser zu helfen ;)

Hallo @jjanvier

Vielen Dank für Ihre schnelle und vollständige Antwort! Ich denke, es gibt mir einen guten Startpunkt. Die Daten sind nicht mit der Produktwertentität verknüpft, sondern mit der Produktentität.

Ich habe die Registerkarte Bilder zum Produktbearbeitungsformular hinzugefügt und Bilder (Sammlung) erstellt, die mit der Dateiinfo-Schnittstelle verknüpft sind.

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

PS
Für den Export verwenden wir EnhanceConnector, der darauf abgestimmt ist, 100% vollständige Produkte zu exportieren. Und ich bin mir nicht sicher, wie ich sicherstellen kann, dass zu 100% des vollständigen Produkts mindestens ein Bild damit verknüpft ist.

Sie müssen sich die Methode getMainSqlPart @a2xchip ansehen. Dadurch wird die komplexe SQL-Abfrage generiert, die die Vollständigkeit ausfüllt. Vielleicht funktioniert es in Ihrem Fall, indem Sie einfach die Methoden getExtraJoins und getExtraConditions überschreiben, die ich zuvor erwähnt habe. Durch das Überschreiben dieser beiden Methoden wird Ihre zusätzliche Logik zu getMainSqlPart hinzugefügt.

Aber es hängt von Ihren Bedürfnissen ab. Es hängt davon ab, ob Sie Ihr Produkt als vollständig betrachten, wenn mindestens 1 (oder 2 oder 3 oder X) oder alle Bilder ausgefüllt sind.

Mein Rat ist also, zuerst die beiden Methoden getExtraJoins und getExtraConditions zu überschreiben, um zu verstehen, wie die Vollständigkeit funktioniert. Wenn Sie mehr benutzerdefinierte Logik benötigen, sehen Sie sich an, was wir für Preise getan haben.

Ich hoffe meine Erklärung hilft dir ^^
Zögern Sie nicht, hierher zurückzukehren, wenn Sie Schwierigkeiten haben ;)

@jjanvier Vielen Dank, ich werde deinen Empfehlungen folgen :-) Ich denke, sie werden mir viel Zeit sparen!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen