Hallo,

Ik heb een oscommerce shop(je) en bij totaalbedrag orders staan alle orders onder elkaar. Middels een scriptje onderaan de pagina kan ik alles bij elkaar laten optellen (alleen de orderstatussen met status ID 24 (betaald) telt hij op (dit moet ook).)

Ik heb daarnaast ook een module voor kortingscodes in laten bouwen, alleen deze telt hij er niet af! Dus bv. als iemand voor 400 euro koopt en met een kortingscode 300 betaald moet hij eigenlijk die 300 euro optellen en niet de 400.

Hij telt in de sql tabel 'orders_total' uit de kolom 'value' de bedragen. Daar staan 3 bedragen onder elkaar PER order ID. Shipping, total value en de korting. Shipping is altijd 0,00.
Dus:
id=1 bedrag
id=1 korting eventueel
id=1 shipping (altijd 0)

hij trekt de korting er niet af.

Totaalbedrag is onder kolom sort_order 99 en korting is onder sort_order 4. Kan ik bv.met een 2e scriptje alleen de kolom sort_order=4 (de kortingsbedragen) bij elkaar optellen ?

Dit is de code die ik nu heb, hier moet dus die korting vanaf :


<?php
$id = 24;
$totaal = €;
$select = mysql_query("SELECT orders_id FROM orders WHERE orders_status = " . $id );

        // Print out result
        while($row = mysql_fetch_array($select)){

            $sql = "SELECT orders_id, value,  FROM orders_total WHERE orders_id = " . $row['orders_id'];
            $res = mysql_query($sql);
     		$result = mysql_fetch_array($res);

                $totaal = $totaal;

                                                }
echo $totaal;
$tot_qry = tep_db_query("SELECT SUM(ot.value) AS total_value FROM " . TABLE_ORDERS . " o LEFT OUTER JOIN orders_total ot ON (o.orders_id = ot.orders_id) WHERE o.orders_status IN (" . STATS_TOTALS_CUSTOMERS . ")");
$tot_res = tep_db_fetch_array($tot_qry);
echo number_format($tot_res['total_value'], 2);

?>
Mikey jansen op 28/11/2017 16:34:22
Ik heb daarnaast ook een module voor kortingscodes in laten bouwen, alleen deze telt hij er niet af! Dus bv. als iemand voor 400 euro koopt en met een kortingscode 300 betaald moet hij eigenlijk die 300 euro optellen en niet de 400.

Is dit niet een verkeerde insteek? Hoe kun je op die manier dingen herleiden? Zou het niet beter zijn om een kortingscode XYZ te hebben die gekoppeld is aan een bedrag (100 euro)? Als je enkel een eindresultaat (of samengesteld tussenresultaat) opslaat, hoe kun je dan herleiden hoe het uiteindelijke eindbedrag totstand komt?
Hij telt het wel af op de order zelf, maar in het totaal overzicht op die pagina moet hij de value "korting" er af tellen.
Maar value is bestaande uit 2 bedragen, bedrag en de korting.
Lastig om dat te scheiden.
Het gaat puur om dat overzicht dus.
Waarom kies je er niet voor de shopping-cart met clientside-techniek (JS) optellingen te laten doen (subtotalen, kortingen, eindtota(a)l(en) en vervolgens serverside e.e.a. te controleren en eventueel weg te schrijven? Denk ook aan combinatie met AJAX om de juistheid (bestaan, koppeling met juiste product/ dienst) van kortingscode te controleren...

PS Wat doe je trouwens als de $id een andere waarde heeft als 24? Daar zou je een aparte controller (of service) voor kunnen ontwikkelen die daarmee omgaat. Dus niet verschillende code-snippets die waarschijnlijk veel van elkaar weg hebben, maar DRY (don't repeat yourself).

Reageren