Bestehende Session aus Script initialisieren

Hallo,

Anwendung: Ich möchte aus einer externen Anwendung einen Artikel in den Warenkorb legen. Ich habe mir schon ein Script gebaut, dass diesen Job erledigt, es funktioniert jedoch nur wenn der User vorher schon im Shop unterwegs war und eine Session bekommen hat.

Ich möchte das Script eigentlich durch die Fremdanwendung “Server-To-Server” aufrufen, die Session ID des Users soll dazu beim Aufruf der Anwendung übergeben werden bzw. falls die Session ungültig ist eine Neue erstellt und dem User per Redirect “untergeschoben” werden.

  1. Wie kriege ich OXID dazu eine Session bei bekannter ID zu initialiseren (die nicht im Cookie steht)

  2. Wie kriege ich eine “Warenkorb” wirksame Session initialisert bzw. wie merke ich dass die unter 1) angefragt Session nicht da ist?

Ansehen kann man sich das auch http://www.nexoc-store.de/ - auf den “PC Komnfigurator” klicken und dann in dem Popup rechts unten auf “kaufen” (das Layout ist Mist dass ist auch nicht von mir :smiley: )

Das Zielscript sieht im Moment so aus:


$oSession = $oConfig->getSession();
$oBasket = $oSession->getBasket();
$oBasket->addTobasket(....)
$oSession->freeze();

Und macht danach einen Redirect auf index.php?cl=basket

Danke vorab :smiley:

Oli

Hallo,

Ich dachte nun ich bin clever und habe das ganze in einen View-Controller verschoben - tut aber auch dort nicht besser. Mein Problem ist noch immer das ich es nicht schaffe eine neue Session zu initialisieren (das kann doch nicht so schwer sein…) - ich habs mit start und regenerateSessionId versucht aber das Session Objekt bekommt einfach keine Id.

Ich habs nun dadurch gelöst , dass ich “ForcesesionStart” gesetzt habe, womit ich aber eigentlich nicht so glücklich bin.

Also: Kann mir irgendjemand sagen wie ich innerhalb eines Moduls/Controllers eine neue Oxid Session Starten kann?

Danke

Oli

Mal reingeschaut in oxsession? Da gibt’s z.B. die Methode setForceNewSession().