Zum Inhalt springen

tt_products creditpoints

Erstellt am 2. September 2008 · 1 Antwort · letzte Antwort am 25. Oktober 2008

Tags: Frage

Puschel ·

Hi @ All
ich arbeite mit Typo3 4.1.7 und tt_products 2.5.8

leider arbeiten wohl nicht viele mit den Creditpoints, oder nur ich steh aufm Schlach:

Wie meine registrieten Kunden an die Punkte kommen, darum wollte ich mich später kümmern, erstmal sollen die Punkte ausgegeben werden.
Ein Kunde hat also genügend Creditpoints (in fe_user Tabelle eingetragen) und geht einkaufen.
TS setup:

plugin.tt_products.creditpoints {
 pricefactor = 1
}

Im Prinzip funktioniert es auch, aber es werden immer nur 35 Punkte vom Konto abgezogen, ich möchte aber, dass die gesammte Rechnung (zB 399 Punkte) mit Punkten beglichen wird.

Hab ich das System nicht kappiert? Kennt jemand eine Lösung?

Vielen Dank für eure Hilfe
Puschel

PS: ich bin etwas weiter gekommen: Es liegt daran, dass der Shop "denkt" ###AMOUNT_CREDITPOINTS_MAX### ist 35... aber warum???

mr@ ·

Hi Puschel,

das ganze Thema Creditpoints scheint erst in der V 2.7 so richtig zu funktionieren (soweit ich das mitbekommen haben).

Habe aktuell das gleiche Problem gehabt und vorerst gelöst, V 2.6.0 tt_products mit typo 4.2.

Aus irgendeinem Grund scheint das System an der Stelle noch nicht ganz fertig zu sein. Die Marker in den Dokus sind auch nicht alle verfügbar oder identisch.

Der Marker für die eingelösten Punkte heißt ###AMOUNT_CREDITPOINTS_QTY###, hier benötigst du ein input feld, oder lässt ein hidden field per javascript füllen. Also musst du dein Template erweitern, wenn noch nicht geschenen.

Beispiel Eingabe der Creditpoints durch den User:

  <!-- ###SUB_CREDITPOINTS_AMOUNT### begin -->
  <tr valign="middle" height="35px">
    <td colspan="3" valign="middle">
          <div>Bonuspunkte: ###AMOUNT_CREDITPOINTS###&nbsp;&nbsp;
          <img src="fileadmin/templates/images/edit_remove.png" width="20" height="20" class="quantity" onClick="javascript:if(document.forms[0]['###CHANGE_AMOUNT_CREDITPOINTS###'].value*1)document.forms[0]['###CHANGE_AMOUNT_CREDITPOINTS###'].value--;">
          <input class="number" readonly size="5" id="aantal1" type="text" name="###CHANGE_AMOUNT_CREDITPOINTS###" value="###AMOUNT_CREDITPOINTS_QTY###">
          <img src="fileadmin/templates/images/edit_add.png" width="20" height="20" class="quantity" onClick="javascript:if(document.forms[0]['###CHANGE_AMOUNT_CREDITPOINTS###'].value<###AMOUNT_CREDITPOINTS###)document.forms[0]['###CHANGE_AMOUNT_CREDITPOINTS###'].value++;">
          <input name="products_payment" type="submit" value="&uuml;bernehmen" onClick="if (!document.forms['0']['###CHANGE_AMOUNT_CREDITPOINTS###'].value!=''){document.forms['0']['###CHANGE_AMOUNT_CREDITPOINTS###'].value=0;};" />
      </div>    </td>
    <!-- ###SUB_CREDITPOINTS_DISCOUNT### begin -->
    <td width="100" align="right" class="rowtotal"><b>- ###CREDIT_DISCOUNT### ###CUR_SYM###</b></td>
    <!-- ###SUB_CREDITPOINTS_DISCOUNT### end -->
  </tr>
  <!-- ###SUB_CREDITPOINTS_AMOUNT### end -->

Felder im Warenkorb-Template:

<input type="hidden" name="creditpoints_saved" value="###CREDITPOINTS_SAVED###">
<input type="hidden" name="creditpoints_spended" value="###CREDITPOINTS_SPENDED###">
<input type="hidden" name="creditpoints_gifts" value="###CREDITPOINTS_GIFTS###">
<input type="submit" name="products_update2" value="zur&uuml;ck zum Warenkorb" />

Im Marker ###CREDITPOINTS_SPENDED### steht die Summe (netto) des aktuelln Warenkorbes. Die Anzahl der verfügbaren Creditpunkte im Benutzerkonto ist ###AMOUNT_CREDITPOINTS###. Der Abgleich ob die Points > der verfügbaren Points sind erledigt tt_products.

plugin.tt_products {
	creditpoints.pricefactor = 0.2
	creditpoints.10.type = price
	creditpoints.10.prod {
		1 = 0.06
		101 = 0.08
		501 = 0.10
	}
}

Da tt_products, schon die Creditpunkte der aktuellen Bestellung zu den max. Points hinzu rechnet (was blödsinn ist, da der Kunde noch gar nicht gezahlt hat), nehme ich als max. einzulösende Punktzahl den aktuellen Punktestand des Kunden. Eine Gutschrift der neu erworbenen Punkte geschieht erst bei Zahlungseingang.

Desweiteren werden auch die erworbenen Points überhaupt nicht berechnet. Warum auch immer?? Die aktuellen Creditpoints werden im Marker ###CREDITPOINTS_SAVED### übergeben. Nur nach mühsamen suchen und ändern des Codes konnte ich die Funktion realisieren. Ein Beispiel und die benötigten Marker findest du im Template meerwijn --> winkelwagen.tmpl. Zugegeben es ist ein wenig mühsam...

Ich hoffe es hilft .....