Problem beim speichern eines zusatzfeldes in oxorder

hallo,
Das Modul funktioniert schon dsehr gut (Erweiterung um Wunschlieferdatum), leider gelingt es mit nicht das Datum in die Tabelle oxorder zu spechern.

class deliveryDate_oxorder extends deliveryDate_oxorder_parent {

  public function finalizeOrder( oxBasket $oBasket, $oUser, $blRecalculatingOrder = false ) {

      $oSession = $this->getSession();
      $deliveryDate = $oSession->getVariable('sDeliveryDate'); 

*echo var_dump($deliveryDate);*

$this->oxorder__BWdeldate = new oxField(oxRegistry::get("oxUtilsDate")->
formatDBDate( $deliveryDate, true )); 

*echo var_dump($this->oxorder__BWdeldate);*
*die;*
      
	  $iParent = parent::finalizeOrder($oBasket, $oUser, $blRecalculatingOrder);

    return $iParent;
  }
}

Das ergebnis der var_dump:

string(10) "2020-04-23"
object(oxField)#193 (1) { ["rawValue"]=> string(10) "2020-04-23" } 

Wo kann ich da ansetzen?
Danke fĂĽr eure Hilfe.
Walter

Schreib einfach nach der Erstellung der Order das Datum ins Feld. $BWdeldate musst fĂĽr Dein Datum anpassen bzw. ersetzen:

public function finalizeOrder(oxBasket $oBasket, $oUser, $blRecalculatingOrder = false)
{
$res = parent::finalizeOrder($oBasket, $oUser, $blRecalculatingOrder = false);

	$this->tuwas($oBasket, $oUser, $blRecalculatingOrder = false);
	return $res;
}

public function tuwas(oxBasket $oBasket, $oUser, $blRecalculatingOrder = false)
{

		$oDb = oxDb::getDb();
		$oDb->execute();
}

In execute einzufügen wäre dann etwas in der Form:
update oxorder SET BWdeldate = $BWdeldate WHERE oxid =’".$oBasket->getOrderId()."’";

@Mods: In 3 Teilanworten, weil ständig “forbidden” kommt, wenn man Quelltext kopiert.

Das liegt sicher an der Zeile: ```
$oDb->execute(update oxorder SET BWdeldate = $deliveryDate WHERE oxid ="’".$oBasket->getOrderId()."’";);

Die SQL-Befehle (String) gehören in Anführungszeichen oder Hochkommata, Werte ebenfalls:

Upps, jetzt ist der Beitrag weg.

Danke,
execute Befehl habe ich schon geändert und das funktioniert jetzt. Super

Vielen herzlichen Dank.
Walter

Gerne. Dann bitte als erledigt markieren.

Der Neugierde halber… und weil wir auch einen Kunden haben, bei dem das auf der Wunschliste steht:

Welches Modul ist das? Gibts das irgendwo public zu sehen?

Merci

Hallo,
Ich bin noch nicht ganz fertig. Es geht um einen Wunsch Liefertermin bei der Bestellung.
Passe es gerade an fĂĽr 4.10.8 und bin beim Test Email versand.
Funktioniert so:
Backend wird ein Zeit eingestellt ab der erst am übernächsten Tag geliefert werden kann, ansonsten nächster Tag.
Es gibt dann im Bestellschritt 3 eine Auswahl von ca 8 Werktagen aus denen man selektieren kann.
Was noch fehlt ist eine BerĂĽcksichtigung von Feiertagen.
Ich kann dir das mal als zip senden. Sage mir nur ob erst wenn es komplett fertig ist, oder morgen
Liebe GrĂĽĂźe
Walter

Ich weiss, mein Lieber :frowning:
Die interne IT besteht auf Cloudflare, sonst hätten wir hier vermutlich noch ganz andere Probleme. Vielleicht einfach bei Bitbucket o.ä. reinschmeissen und dann hier verlinken? Ansonsten macht sich dieses Forum ganz gut für Site Feedback: https://forum.oxid-esales.com/c/site-feedback/ (Gilt übrigens auch für OXIDforge, oxid-esales.com und alle anderen Systeme :wink:

Walter, hast Du einen Github-Account? Schmeiss das einfach dort drauf - ich finde, dass Zusammenarbeit an solchen Dingen dort wunderbar funktioniert. Falls Du dazu Fragen hast, gern hier!

Hatte ich nach Abschluss sowieso vor auf Github zu stellen.
Liebe GrĂĽĂźe
Walter

2 Likes

Hallo Walter,

wo findet man das dann auf Github? Ist das Modul dann hier auf dieser Seite zu finden?: https://github.com/OXID-eSales

Oder hast du eine eigene Entwickler, wo ich nach Updates schauen kann?

Kenne mich da nicht so aus, deswegen die doofen Fragen :sweat_smile: Freue mich schon darauf, das Modul testen zu können. :slight_smile:

Hallo
Bin heute damit fertig geworden. Ich werde es in den nächsten Tagen auf Github stellen und danach hier den link hinterlegen.
Ich muss mich nur schlau machen, da ich das zum ersten mal mache.

Ich bin gespannt! Freue mich :blush:

So es ist nun auf Github verfĂĽgbar

Leider weis ich nicht, wie ich es zu den OXIDProjects geben kann

Viel SpaĂź

Super, danke, hab ich gemacht :wink:
Wenn Du das Modul noch bei Packagist anlegst, kann es sogar noch per Composer installiert werden.

Bei mir interferiert das Modul irgendwie mit dem PayPal-Plus Modul :frowning: Das Delivery Date Modul funktioniert, dafĂĽr ist PayPal nicht mehr erreichbar. Es erscheint folgende Meldung:

Entschuldigung, PayPal Plus ist momentan nicht verfĂĽgbar.
Bitte aktualisieren Sie Ihren Warenkorb und versuchen es erneut oder kontaktieren Sie den Shop-Administrator.

Und ich denke ich habe noch einen kleinen Fehler gefunden. In der payment.tpl fehlt ein schlieĂźender </div>-tag. :slight_smile:

Hat jemand ne Idee, inwiefern die beiden Module kollidieren und wie man dies lösen kann?

Hallo,
den fehlenden habe ich schon egänzt.
Hast du schon probiert das Modul zu deaktivieren und dann nochmals den Test mit PayPal gemacht und sicher zu sein, dass das von diesen Modul abhängt ?
Liebe GrĂĽĂźe

Es verhält sich folgendermaßen:

  1. Ich installiere das Modul
  2. PayPal funktioniert nicht mehr
  3. Ich deaktiviere das Modul
  4. PayPal funktioniert immer noch nicht
  5. Ich muss erst ein Backup einspielen, damit PayPal wieder funktioniert.

Dies tritt jedoch nur in unserem B2C-Shop auf. In unserem B2B-Shop funktioniert es einwandfrei. Beide Shops sind Oxid 4.10.x. B2B flow theme, B2C angepasstes flow child theme.

Was mir gerade noch einfällt: es ist nicht nur PayPal sondern auch Amazon pay und Klarna, die alle nicht funktionieren.

Ich denke es kann an dem child theme von flow liegen, nachdem es beim anderen Shop funktioniert.
Ansatz habe ich da keinen. Das ist ein Fall fĂĽr die Experten.