Hat jemand eine Idee, wie ich in die veyton.php eine Abfrage in die "function Daten holen" einbauen kann, damit ein bestimmtes Feld nur dann eingelesen wird, wenn es größer Null ist?
Hilfe bei Anpassung der veyton.php (Webshop Modul)
- Heiko66
- Unerledigt
-
-
Moin,
kannst Du das präzisieren. Welche Zeile und welche Daten?
-
-
Hallo Mausko,
danke für die schnelle Reaktion.
Es geht mir um folgendes Problem:
xt:commerce unterstützt ja nur eine E-Mail Adresse pro Kundenaccount. Nun würde ich gerne für die Rechnungs- und Lieferadresse meinen Kunden anbieten, eine abweichende E-Mail Adresse anzugeben und dazu einfach das Fax-Feld zweckentfremden. Im Prinzip funktioniert das mit dem Fax-Feld auch prima und wenn Mein Büro nicht rumzicken würde, wäre das Problem damit erledigt. Aber MB hat halt die Macke, dass der Massen-E-Mailversand der Rechnungen per Rechtsklick nicht funktioniert, wenn bei der Rechnungsadresse keine E-Mail angegeben ist. Öffne ich die Rechnung und klicke dort auf "E-Mail", verwendet MB klaglos die Standard-E-Mail Adresse - verstehe das, wer will.
Daher würde ich das gerne so lösen, dass in der veyton.php die Zeile 15 nur interpretiert wird, wenn _orders.billing_fax auch wirklich Daten enthält.
Code
Alles anzeigenfunction daten_holen() { #Querytyp: // datakind == 1 => Daten werden als Query verarbeitet // datakind == 2 => Daten werden als Array verarbeitet $GLOBALS['datakind'] = "1"; #SQL Query f�r veyton4 $GLOBALS['query'] ="SELECT ".DB_PREFIX."_orders.orders_id as orderID, ".DB_PREFIX."_orders.customers_email_address as abweichendRechnungEmail, ".DB_PREFIX."_orders.billing_fax as abweichendRechnungEmail, ".DB_PREFIX."_orders_products.products_id as xProduktId FROM ".DB_PREFIX."_orders LEFT JOIN ".DB_PREFIX."_orders_products ON (".DB_PREFIX."_orders.orders_id = ".DB_PREFIX."_orders_products.orders_id) LEFT JOIN ".DB_PREFIX."_orders_total ON (".DB_PREFIX."_orders.orders_id = ".DB_PREFIX."_orders_total.orders_id AND ".DB_PREFIX."_orders_total.orders_total_key = 'shipping') LEFT JOIN ".DB_PREFIX."_customers_addresses ON (".DB_PREFIX."_customers_addresses.customers_id = ".DB_PREFIX."_orders.customers_id AND ".DB_PREFIX."_customers_addresses.address_class = 'default') WHERE ".DB_PREFIX."_orders.orders_status = '".$GLOBALS["DEFAULT_ORDERS_STATUS"]."' OR ".DB_PREFIX."_orders.orders_status = '".$GLOBALS["ADDITIONAL_ORDERS_STATUS_1"]."' AND ".DB_PREFIX."_orders_total.orders_total_key is not null ORDER BY orderID, Positionsnummer "; return $GLOBALS['datakind']; }
-
Ich selbst kann dir nicht helfen.
Falls du nicht weiterkommen solltest, kannst dich gerne an ABICOS (Andreas Bischof) wenden. In Google schnell zu finden.
Andreas kennt sich in diesen Bereich gut aus! Hat uns die Schnittstelle Automatisiert, damit alle Dynamische-Daten aus PP-Plus auf Rechnung automatisch in MB kommen.
-
Moin,
ich habe noch eine andere Idee:
Versuch mal folgendes: ersetze doch mal die Zeile
in
oder hilfsweise in
Es gibt nämlich bei den Kundenadressen jeweils das Feld Email. Die "normal" vom Shop übermittelte Email landet in der Hauptadresse. Es gibt aber das Feld auch in den Adressen für Lieferung und Rechnung. Da diese abweichenden Emails auch in der Importdatei aufgeführt werden,sollte das eigentlich klappen.
-
damit alle Dynamische-Daten aus PP-Plus auf Rechnung automatisch in MB kommen.
Dafür hatte ich für die xtcommerce 304 einschl. aller Forks und auch für Magento eine Anleitung erstellt.
-
ich habe noch eine andere Idee:
Danke Mausko, aber das klappt so nicht.
D.h. es klappt schon - hab ich schon ausprobiert - nur wenn dort (im mißbrauchten Fax-Feld) keine 2. E-Mail Adresse nichts eingetragen ist, bleiben die Felder beim Import und das ist das Problem. Denn dann legt MB eine zusätzliche Adresse ohne E-Mail Adresse für Lieferschein und Rechnung an und mault anschließend beim E-Mail Versand, dass keine Mailadresse vorhanden ist.
Lasse ich das so...
dann legt MB beim Import nur eine Adresse in den Kundendaten an, weil garantiert Daten eingelesen werden können.
Somit ist das Problem immer noch, dass eine Prüfung vorgenommen werden müßte, ob sich überhaupt Daten in dem zu importierenden Datenfeld befinden.
Georg-Tac Das ist ne gute Idee.
-
nur wenn dort (im mißbrauchten Fax-Feld) keine 2. E-Mail Adresse nichts eingetragen ist,
Da habe ich noch ein Verständnisproblem. Wenn dort nichts eingetragen wird, was genau passiert dann? Das Feld "abweichendRechungEmail" erscheint bei jeder Shopbestellung, die abgeholt wird, aber eben leer.
-
Wenn nichts eingetragen wird, bleibt die E-Mail leer und MB interpretiert das - wegen der fehlenden E-Mail - ganze als neue, abweichende Liefer-/Rechnungsadresse.
Wenn MB ein leeres Feld ignorieren würde, wäre das ja einfach zu lösen...
Code".DB_PREFIX."_orders.customers_email_address as abweichendRechnungEmail, ".DB_PREFIX."_orders.billing_fax as abweichendRechnungEmail,
Dann würde MB im ersten Schritt die customers_email übernehmen und die leere Abfrage ignorieren. Das passiert aber nicht und so überschreibt (löscht) ein leeres billing_fax die zuvor abgefragte customers_email und MB legt eine abweichende Liefer-/Rechnungsadresse ohne E-Mailadresse an.
-
Moin,
wenn ich bei mir die Importfiles ansehe, ist dort das Feld immer leer und dann wird (bei mir) auch nichts eingetragen.
Code<abweichendLieferungLaendercode><![CDATA[D]]></abweichendLieferungLaendercode> <abweichendLieferungLand><![CDATA[Deutschland]]></abweichendLieferungLand> <abweichendLieferungEmail/> <abweichendLieferungTelefon/> <abweichendLieferungFax/> <abweichendRechnungLaendercode><![CDATA[D]]></abweichendRechnungLaendercode> <abweichendRechnungLand><![CDATA[Deutschland]]></abweichendRechnungLand> <abweichendRechnungEmail/> <abweichendRechnungTelefon/> <abweichendRechnungFax/>
Kannst Du mal ein Importfile von Dir posten und wo was in MB dann eingetragen wird?
-
Moin,
ich habe das mal testweise bei mir im Demomandanten durchgespielt:
in die xtcommerce.php habe ich die Zeile Telefon geändert (Fax ist bei mir "abgestellt")in:
In einer Testbestellung habe ich in das Feld Telefonnummer eine abweichende Emailadresse eingefügt.
Die Bestellung wird mit beiden Emailadressen abgeholt und diese werden auch richtig in MB eingefügt.
Lasse ich bei der Anmeldung das Feld (Telefon) für die 2 Emailadresse leer, wird auch nichts eingetragen.
-
Die Bestellung wird mit beiden Emailadressen abgeholt und diese werden auch richtig in MB eingefügt.
Lasse ich bei der Anmeldung das Feld (Telefon) für die 2 Emailadresse leer, wird auch nichts eingetragen.
Das ist auch korrekt so Mausko.
Ich habe nur das Problem, dass MB zwei Adressen anlegt (die Hauptadresse mit E-Mail für den Auftrag als solchen und die Adresse 1 ohne E-Mail für Rechnung und Lieferschein), wenn beim Webshopimport das E-Mail Feld bei den abweichenden Rechnungs- und Lieferanschriften leer ist.Wenn ich dann eine Rechnung per E-Mail (Rechtsklick per Kontextmenü) verschicken will, bleibt das Empfängerfeld in der Mail leer. Komischerweise verwendet MB aber die E-Mailadresse aus der Hauptadresse, wenn ich die E-Mail aus der geöffneten Rechnung heraus vornehme.
-
Kannst Du mal ein Importfile von Dir posten und wo was in MB dann eingetragen wird?
Mache ich morgen, heute ist Feierabend.
-
Moin Heiko,
bei mir stellt sich das so dar:
Die Email in der Standardadresse wird nicht bei Rechtsklick der Rechnung genommen, sondern die von der Adresse, die für die Rechnung zuständig ist.
Befüllt mit
Ist die Rechnung geöffnet, kann ich beim Klick auf den Mail-Buttom auswählen, welche Mailadresse ich nehme, wenn mehrere eingetragen sind. (Standard, Rechnung, Lieferschein)
-
Die Email in der Standardadresse wird nicht bei Rechtsklick der Rechnung genommen, sondern die von der Adresse, die für die Rechnung zuständig ist.
Ganz genau Mausko und das ist das Problem, wenn bei der Rechnungsadresse keine E-Mail hinterlegt ist!
Daher meine Idee, dass man in der veyton.php eine Abfrage durchführt, wenn abweichendRechnungEmail leer ist, dass dann die Standard-E-Mail eingetragen wird. Also so etwa...
Codeif $orders.billing_fax > 0 ".DB_PREFIX."_orders.billing_fax as abweichendRechnungEmail, else ".DB_PREFIX."_orders.customers_email_address as abweichendRechnungEmail,
Nur so einfach scheint das nicht zu sein, da muß es wohl innerhalb einer Datenbankabfrage andere Optionen geben. Aber damit kenne ich mich nicht aus.
Nachtrag:
Andererseits ist das natürlich auch doof von Buhl programmiert, denn bei Rechtsklick könnten die ja auch automatisch die Standardadresse übernehmen, wenn das die einzige hinterlegte E-Mail Adresse ist. Mit der originalen veyton.php legt MB nämlich immer eine abweichende Rechnungs- und Lieferadresse als Adresse1 an und zwar ohne E-Mail Adresse. Dies kann man nur verhindern, indem man selber diese beiden Zeilen in die veyton.php einfügt:
Code".DB_PREFIX."_orders.customers_email_address as abweichendRechnungEmail, ".DB_PREFIX."_orders.customers_email_address as abweichendLieferungEmail,
Mit anderen Worten: vor diesem Problem müßten ja eigentlich alle xt:commerce User stehen, die MB benutzen.