User-Logon

Download der aktuellen Versionen.

Benutzer:
Kennwort:

In der Profi-Version gibt es gerade für Price-Feeds spezielle Funktionen, die sehr mächtig und leistungsstark sind. Damit können Daten beliebig nachbearbeitet und aufbereitet werden.

Online Handbuch:

Vorab

Installation

Release Notes

Erstnutzung der Sitemap

Suchfunktion verbessern

Automatisierung der Datenaufbereitung

Pricefeeds erstellen

PDF Kataloge erstellen

Devisenkursfunktion automatisieren

TagCloud erstellen

Customizen und Sonderfunktionen

Layout anpassen

Profi-Version und Ihre Unterschiede

Problembehandlung

Anhang

Ersatz-Tool:

Überblick über die Funktionen

Vollständige Sitemap

Vernünftige Suchlogik

Suchergebnisse mit Direktkaufen

Umfassendes Suchergebnis

Verbesserte Sitemap.xml

Automatische TagClouds

Individuelle Pricefeeds

Online-Bestände als Liste

Druckbarer Produktkatalog

Aktuelle Wechselkurse

Hohe Automatisierung

Lange Entwicklungsgeschichte

Referenzen

Bestellung & Handbuch

Online Handbuch

Allgemein:

Startseite

§6 TDG Kennzeichnung

Warenkorb

Referenzen und Gästebuch

Kontakt

Mobil A
Mobil D
Office
Fax
+43 (68) 110 622 322
+49 (175) 29 843 83
+49 (89) 820 738-24
+49 (89) 820 738-29

 

Vermeidung von SPAM

Um SPAM zu vermeiden, finden Sie auf der gesamten Site keine e-Mail Adresse. Sie können aber über das Anfrage-Formular, oder die Links für "e-Mail senden" eine e-Mail an e-Consultance senden. Die e-Mail-Adresse wird im Moment des Clicks generiert und ist damit für normale Internet-Scanner derzeit noch nicht ermittelbar.

Wichtige Seiten

Referenzen

Bestellung & Handbuch

Sie sind hier: »  Startseite  »  Ersatz-Tool »  Online Handbuch »  Profi-Version und Ihre Unterschiede  » Preisfeeds professionalisieren

Preisfeeds professionalisieren


Formula

Klick für Großansicht

Die Profiversion hat erweiterte Funktion in den Preisfeeds bzw. Katalogerstellung.
Sie unterscheidet sich durch ein zusätzliches Blatt „Individuelle Shopdaten“, die in die Preisfeeds eingemischt werden können. Als Format-Befehl wird „Formula“ verwendet.

In diesem Beispiel (Ein Beispiel Feed ist als „Beispiel“ im Blatt Pricefeeds enthalten) wird über die ermittelten Konfiguration „main und product-ID in Zelle 146 (2. Zeile unter „Formula“) pro Produkt die entsprechende Produktnummer geschrieben und dann per Excel-Formel aus Zeile 147 (3. Zeile unter Formula) ausgelesen.

Die Formel in Zeile 147 sieht man hier:

Es wird der Vortext „http:/…..“ aus einem anderen Feed (Konfiguration) übernommen hier aus Zelle J15. Diese Zelle J15 im Blatt <Formeln e-Pricefeeds> kann entweder statisch befüllt sein durch eine Formel ="http://www...." oder dynamisch durch eine eigene (Formula)-Funktion. Nun wird über die Produkt-ID, die in die Zelle AF146 geschrieben wird, ein zweite Bildnamen zu diesem Produkt aus dem eigenen (zusätzlichen) Shopdaten-Blatt ergänzt. Die „4“ (vor ;FALSCH) in der abgebildeten Formel steht für die Spalte in der SVERWEIS-Funktion. Diese Formel nimmt also einen Wert aus dem anderen Blatt, aus einer Tabelle den Eintrag, der über die Produktnummer referenziert wird, und von der Produktnummer nach rechts die 4. Zelle. Das A146 in der Formel verweist auf die Zeile darüber, also die gerade vom Tool bereitgestellte Produkt-ID. Der Bereich $A$3:$Z$201 identifiziert den Bereich im Blatt "shopdaten" der in Spalte A nach der Produktnummer zu durchsuchen ist. Findet die Formel in einer der Zellen A3 bis Z201 die aktuelle Produktnummer wird die Spalte 4 (in Excel Beschriftung die Spalte "D") ausgelesen und als Bildname dem Domain-Pfad auf das Bildverzeichnis angehängt. So können Daten in die Feeds zugeführt werden, die in der Projektdatei main.mdb selber gar nicht vorliegen. Auch andere Formeln sind möglich. z.B. kann man Preise vergleichen: Ist aktueller Preis kleiner als der Standard-Preis, denn gebe einen Text aus: "Sie sparen " & Standard-Preis minus Sonder-Preis (Format 2 Nachkommastellen) + €-Zeichen)

Da die Formel SVERWEIS bei leeren Zieltabellen leider einen Wert „0“ anzeigt, muss man diesen Fall zunächst abprüfen:

Man prüft zunächst ob der Wert ungleich <>““ also einem leeren String ist, dann wird der Wert ausgegeben, ansonsten explizit wieder ein leerer String. Damit lässt sich das Problem von Excel umgehen, dass ein SVERWEIS bei leeren Zellen eine „0“ anstelle eines leeren Feldes zurückgibt.

Eine andere Variante der Bearbeitung ist, dass nur der bereit gestellte Wert bearbeitet wird. Hier wird nach dem Text „<br“ gesucht und der Text davor mit „<h2>“ und „</h2>“ geklammert:

Voraussetzung für die eigene Anpassung ist, dass man mit Excel und Formeln einigermaßen umgehen kann.

Ebenso sind mehrere Blätter mit unterschiedlichen Funktionen möglich. Der gesamte Funktionsraum von Excel wird durch diese Technik eröffnet.

Analog ist der Sonderprozess Export nach XTC nur in der Profil-Version verfügbar.

FormulaIntern

Die Logik von "FormulaIntern" ist identisch zu Formula. Nur manchmal sind Berechnungen komplizierter, als dass diese
in einer einzigen Zelle berechenbar wären. So kann man in einer Spalte ein Zwischen-Ergebnis auf Basis des ersten Inputfelder errechnen und dann in der Spalte rechts daneben sich auf das erste Rechenergebnis beziehen und weiterrechnen. Damit aber die Zwischenergebnisse nicht in den Feed ausgegeben, gibt es die Formel "FormulaIntern". Das Ergebnis wird berechnet, aber für den Feed ist das Ergebnis immer eine leere Zeichenkette. D.h. das Ergebnis liegt im Excel vor, wird aber nicht ausgegeben und kann weiter verwendet werden.

FormulaEvaluate

FormulaEvaluate ist eine Funktion, die identisch ist wie Formula, aber eben technisch schneller ist. Aber es gibt Einschränkungen, so dass FormulaEvaluate nicht immer Formula ersetzen kann. Die Performance der Feeds hängt wesentlich von der Anzahl der Formula und FormulaIntern-Anweisungen ab. Je häufiger diese verwendet werden, umso langsamer wird die Feed Generierung. Die Formula Funktion ist mächtig benötigt aber selbst bei sparsamen Einsatz ca. 50% der CPU-Last und damit Laufzeit.

Evaluate stellt die Übergabedaten nicht in die Übergabezelle, und liest das berechnete Ergebnis nicht aus der Formelzelle. Evaluate liest direkt die Formel in den Arbeitspeicher ein, tauscht alle Zellbezüge zu der Übergabezelle aus durch die Inhalte der Übergabewertes und ermittelt dann das Formelergebnis. Beispiel

Zelle J146: Übergabewertzelle
Zelle J147: Formell = WENN(LÄNGE(J146)<15;J146&" Mehr Infos im Shop";J146)

Folgt nun ein Aufruf mit dem Text "zu kurz". Dann ist der Übergabetext kürzer als 15 Zeichen und für Google ein fehlerhafter Text für eine Langbeschreibung, weil diese mind. 15 Zeichen lang sein muss. Um die 15 Zeichen sicher zu erreichen wird bei kurzen Texten ein "Mehr Info..." angehängt.

Diese Formel bezieht sich nur auf die Übergabezelle. Damit ist in diesem Fällen Evaluate der richtige Befehl. Hinweis: Die Texte in Formeln dürfen nicht länger als 255 Zeichen sein. Kommt ein Langtextmit mehr als 255 Zeichen, dann wird die Funktion Evaluate einen Fehler generieren. Dann wird ersatzweise die Funktion Formula ausgeführt die sicherer ist, und in der Formel selber keine statischen Texte hat. D.h. über Formula kommt man dann zum Ergebnis. Folge: Der doppelte Versuch kostet wieder Zeit. Insofern ist die Evaulate Funktion nur dann einzusetzen, wenn kurze Objekte (bis 255 Zeichen) verändert werden sollen.

#No Feed#

Will man in bestimmten Situationen die Ausgabe von Produkten in den Preisfeed per Formel verhindern, dann muss als Ergebnis einer Formel der Text "#No Feed#" ausgegeben werden. z.B. Ist der Lieferstatus=rot, dann gib aus "#NoFeed#" und liste nicht lieferbare Produkte nicht in den Portalen. Die Verarbeitung der einzelnen Feedzeile wird aber bis zum Ende ausgeführt. D.h. auch weitere Formeln sind ausgerechnet. Das Ausfiltern dieser Zeile erfolgt erst kurz vor der geplanten Ausgabe in den Feed-File. Natürlich sollte dieser Text, nie in einer normalen Produkt-Beschreibung vorkommen.

Anderes Beispiel: Produkte ggf. auch nur einzelne Varianten unter 10 € sollen nicht gelistet werden. Definition im Feed:

   main
   price
   (Formula)
   (spalte-Nr intern)
   (Übergabewert des Tools pro Produkt / Variante)
   =WENN(Übergabewert<1000;"#No Feed#";"")


In Rot sind die Datenfelder bezeichnet, die vom Tool befüllt werden. D.h. diese Felder können bei der Definition eines Feeds leer bleiben.

No-Html

Der Langtext (!LangHtmlText) wird in Shoptodate in HTML-Notation gespeichert. D.h. alle Umlaute werden in HTML-Codierung ausgegeben. Ebenso gibt es Codes für "<b>" also Bold usw. Um beide Arten von Codierungen HTML-Umlaute und HTML-Codes zu eleminieren gibt es zwei nutzbare Excel-Funktionen. Angesteuert werden diese wieder über Formula oder FormulaIntern und im Ergebnisfeld wird eingegeben:

=nohtml(D4)
Ergebnis: Der in Zelle D4 abgelegte mit HTML-Sonderzeichen versehene Text wird in eine normale Textcodierung rückgewandelt.

=nocode(D4)
Ergebnis: Alle HTML-Codes mit <...> werden übersprungen und <br... werden zu einem Leerzeichen gewandelt.

In Kombination ist die komplette Konvertierung dann möglich mit:
=nocode(nohtml(D4)) oder umgekehrt: =nohtml(nocode(D4))
Dabei wird die innerer Klammer zuerst durchgeführt.

Die umgekehrte Funktion ist =tohtml(D4) . Da die Codes (z.B. Zeilenumbruch) gelöscht wurden, ist eine umgekehrte Logik des Einfügens von Codes nicht möglich. Es ist nicht klar, wo und welcher Code früher existierte. Es gibt also keine Umkehrung zu =nocode(D4) .

Variantenhandling

In Spalte 7 kann angegeben werden, ob die Varianten einzeln ausgegeben werden. Dabei wird pro Attributkombination (derzeit max. zwei Attribute) jede einzelne Variante einzeln ausgegeben inkl. Preis, Produkt ID, Lieferstatus und einen vorbereiteten Link auf die Produktseite mit Auswahl der Standardeinstellung. D.h. kommt ein Kunde aus einem Preisportal, wird er (bei Anpassung des Designs) die gewählte Variante als Standardeinstellung im Shop angezeigt bekommen.

Voraussetzung ist die Integration des Parsers der ursprünglich (glaube ich) von MILENA stammt. Zum Parser gibt es andere Informationen im Netz und da das nichts mit dem Ersatz-Tool zu tun hat, empfehle ich dort nachzuschlagen. Meist wird der Parser für die Validierung eingesetzt.

Mit folgendem Code im Parser kann man die Positionierung steuern:


    if (isset($_GET["variationa"])) {
       $content = preg_replace("#var +variationa *= *\d+ *;#is","var variationa = ".$_GET["variationa"].";" ,$content);
    }
   if (isset($_GET["variationb"])) {
      $content = preg_replace("#var +variationb *= *\d+ *;#is","var variationb = ".$_GET["variationb"].";" ,$content);
   }
   echo $content;


Dieser Code ist noch nicht abschließend getestet, zeigt aber die Mechanik. P.S. Das Ersatztool generiert geeignete Links auf die Seiten, die sowohl mit dem Parser als auch ohne den Parser funktionieren. Mit dem Parser wird aber die gewählte Variante direkt angezeigt.

Repetition-Block

Sollen Passagen mehrfach innerhalb eines Feeds ausgegeben werden, gibt es einen Wiederholungsblock:

In der Zeile der Feed Deklaration steht ein "||:" für den Beginn des Wiederholblockes. Anstelle des Blattes findet sich die Startnummer und in der Zeile der Spalte findet sich die Endenummer. Es wird dann in die Formula-Zeile nacheinander die Werte 1, 2, 3 und 4 geschrieben und damit für die Nutzung in anderen Formeln bereitgestellt. Durch FormulaIntern wird im Beispiel diese Spalte für den Feed wieder ausgeblendet, und dieser Zähler wird damit in die Ausgabe nicht direkt übernommen. So kann man in den folgenden Spalten über die Indexfunktion von Excel Daten zuladen, oder anderweitig mit diesem bereitgestellten Schleifenzähler umgehen. Am Ende des Wiederholblockes steht das umgekehrte Zeichen ":||". Dieser Abfolge von Spalten wird mehrfach ausgegeben. Nach der Wiederholung von (hier 4) Passagen wird den Angaben / Definitionen unter dem ":||" Zeichen der Feed fortgesetzt. Für die Nutzung eines Wiederholungsblockes sollten also die dazwischen liegenden Daten per Formeln dynamisch reagieren, und können damit eine Unterstruktur für einen Feeds generieren.

Folgt als Abschluß ein ":||+" wird nicht nur der Block wiederholt, sondern die Variante erhöht. Es ist aber wichtig in den Zählbereich (im Beispiel steht hier "!4") die Anzahl der Vairanten zu laden. Dies erfolgt am besten mit einer Formel in dieser Zelle, die auf einen Wertebereich der Sondervariablen "!AnzahlVarianten" zeigt. D.h. diesen Wert mit Formula oder FormulaIntern auslesen und dann in den Definitionsblock übernehmen. Ist die Anzahl der Varianten durchlaufen, wird die Zeile nicht wiederholt, sondern das nächste Produkt geladen.

#Insert#

Wenn man eine einfache Nummernverwaltung aufbauen will, geht das mit "#Insert#". Beispiel: Sie haben sich 1000 EAN Nummern gekauft, legen diese in das Blatt "Individuelle Shopdaten in die Spalte B, also Zelle B1.... bis B1000. Wenn Sie nun Ihr Erstes Produkt ausgeben, dann soll das erste Produkt die erste EAN Nummer bekommen, das zweite Produkt die zweite usw. Wenn Sie dann eine Woche später das ganze erneut aufbereiten, sollen die alten Produkte natürlich die damals zugeordnete Nummer behalten und die neu entstandenen Produkte weitere neue Nummern bekommen.

Die Logik ist relativ einfach: Zunächst wird geprüft, ob es bereits einen Eintrag für die Produktnummer gibt. Mit dem Excel Befehl SVERWEIS(....) kann man das prüfen. Man schreibt in das Zeile 2 main in die Zeile 3 product_id in die zeile 4 (Formula). Die Zeile 5 bleibt frei für die interne Ermittlung der Datenspalte. In die Zeile 6 übergibt das Tool die Produktnummer und in Zeile 7 schreibt man

=WENN(ISTFEHLER(SVERWEIS(E6,'Individuelle Shopdaten'!A1:B1000;2;FALSCH)),"... code für nicht gefunden",
SVERWEIS(E6,'Individuelle Shopdaten'!A1:B1000;2;FALSCH))


Mit dem ersten IstFehler wird geprüft ob ein Wert gefunden wird oder nicht, wenn es keinen Fehler gibt wird mit dem zweiten SVERWEIS der Wert aus der Spalte 2 nachgeladen. Damit im Falle eines Fehlers, also einer undefinierten Produktnummer nun eine Nummer vergeben wird, muss ein Spezial-Code ausgegeben werden. Er beginnt mit "#Insert#"
dann folgt die Zelle ab der die Suche nach eine freien Zelle beginnen soll, dann wieder ein "#" dann die Richtung in der gesucht wird und nach Abtrennung mit einem weiteren "#" der Code der einzutragen ist:

#Insert#A1#Vertical#H45D34 trägt die Produktnummer H45D34 in die erste leere Zelle "vertikal unterhalb" von A1 ein. Danach wird die Formel erneut berechnet und sollte nun aus der Spalte B eine neue EAN Nummer ziehen. Damit diese Zuordnung erhalten bleibt, muss man das Tool nach jeder Anwendung speichern und bei Neu-Auslieferung eines Tools diese Daten von Hand (copy und paste) übernehmen in das neue Tool. Die gesamte Formel lautet dann:

=WENN(ISTFEHLER(SVERWEIS(E6,'Individuelle Shopdaten'!A1:B1000;2;FALSCH);"#Insert#A1#Vertical# "&E6;
SVERWEIS(E6,'Individuelle Shopdaten'!A1:B1000;2;FALSCH))


Durch die Nutzung von #Insert#....#"&E6 wird die Produktnummer aus der Zelle E6 dynamisch übernommen, also pro Produkt die jeweilige Nummer in die Sonderanweisung für das Tool aufgenommen.

zur letzten Seite zurück
Startseite
zur vorherigen Seite
zur vorherigen Seite
zur letzten Seite zurück
Startseite
zum Seitenanfang
zum Textanfang
zum Seitenende
druckbare Seiten
Seite mailen
Add Site to Mr. Wong
Bei LinkARENA bookmarken