Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Korting in orderoverzicht voor webshop

Pagina: 1
Acties:

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 15:31
Korting over een product in een webshop kun je op de prijs inclusief of de prijs exclusief btw doen. In dit geval heb ik het over korting over de prijs inclusief btw.

Product prijs: € 9,95, met 10% korting en naar beneden afgerond € 8,95.

Orderoverzicht

Product: € 8,95 (incl. btw)
Totaal (excl. btw): € 8,22
BTW 21%: € 1,73
Te betalen: € 8,95

Het totaal exclusief btw en het totaal aan btw (21%) is hier natuurlijk € 9,95. Dus moet ik dat weergeven in het orderoverzicht? Moet het bedrag excl. btw opnieuw berekenen of moet ik een extra regel met 'Korting: € 1,00' of iets dergelijks opnemen.

Via Google vind ik ook geen eenduidig antwoord, heeft iemand hier een idee?

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

De klant betaalt 8,95. Hiervan is 1,55 btw, en 7,40 het bedrag ex btw. Het totaal ex btw en btw moeten bij elkaar opgeteld altijd tot het te betalen bedrag van de klant komen. btw-afdracht gaat immers over het bedrag dat de klant betaalt, niet over een fictief bedrag dat de klant betaald zou kunnen hebben.

[ Voor 27% gewijzigd door dcm360 op 17-12-2014 15:43 ]


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 15:31
Oké duidelijk, danku! Ik wilde toch even zeker weten dat ik niks over het hoofd zag :+

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Geen probleem hoor, ik heb er zelf ook genoeg moeite mee gehad toen ik dat een keer moest inbouwen (en dan nog in combinatie met toeslagen voor bepaalde betaalmethoden, en kortingen die niet gelden op alle producten. Ik ben blij dat het werkt en ik blijf er verder graag vanaf :+ )

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Je kunt de korting ook als aparte order-regel opnemen op de factuur:

Product A - € 9,95
Product B - € 5,00
Product C - € 7,50
---
Subtotaal - € 22,45

Korting A - € 1,00
---
Subtotaal - € 21,45

Totaal ex - € 17,73
BTW 21% - € 3,72
Te betalen: € 21,45

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Dat zijn details, maar houd er rekening mee dat jij nu 1 euro korting ex BTW geeft (1.21 euro korting incl BTW) terwijl de TS 1 euro korting incl BTW gaf (0.83 euro ex BTW).

De reden dat dit allemaal weinig uitmaakt is omdat 10% korting en 21 BTW allebei uitgerekend worden door vermenigvuldigen, namelijk met 0.9 en 1.21 respectievelijk. En A x B x C = C x B x A, volgorde van vermenigvuldigen maakt niet uit.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • HuHu
  • Registratie: Maart 2005
  • Niet online
Ik snap niet wat je bedoelt met de korting in/ex btw, volgens mij doe ik het goed. In mijn voorbeeld staat de korting "boven de streep", dus inclusief btw.

Kortingen als aparte order-regel verwerken lijkt een detail, maar kan soms wel verschil maken. Op deze manier is het makkelijker om kortingen te geven volgens complexere regels (bijvoorbeeld: ALS product a EN product b: DAN korting = 10%;). Als je de korting verwerkt in de order-regel van het product zelf, dan kun je dit soort stapel- of combinatie-kortingen minder makkelijk uitvoeren.

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
MSalters schreef op woensdag 17 december 2014 @ 18:11:
Dat zijn details, maar houd er rekening mee dat jij nu 1 euro korting ex BTW geeft (1.21 euro korting incl BTW) terwijl de TS 1 euro korting incl BTW gaf (0.83 euro ex BTW).

De reden dat dit allemaal weinig uitmaakt is omdat 10% korting en 21 BTW allebei uitgerekend worden door vermenigvuldigen, namelijk met 0.9 en 1.21 respectievelijk. En A x B x C = C x B x A, volgorde van vermenigvuldigen maakt niet uit.
Waar je wel even over moet nadenken is of je in de toekomst andere / extra kortingen wilt gaan hanteren.
Korting over korting en dan btw etc of korting over korting over korting dan btw en dan nog 1 euro netto korting (/kortingscoupon).
Zie je dat soort toekomstige dingen mogelijk dan moet je het wel even goed narekenen want bij 2 vermenigvuldigingen heft het elkaar redelijk op, maar bij meerdere en genoeg orders kan het opeens wel gaan uitmaken in welke volgorde je wat doet en naderhand is het bijna niet meer te wijzigen (en uit te leggen aan de klant)

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Korting over korting maakt nog steeds niet uit. AxBxCxD is nog steeds DxCxBxA. 1 euro korting is natuurlijk een ander verhaal, precies omdat 1 euro korting (inc BTW) minder is dan 1 euro korting (ex BTW).

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Het gaat juist om dat andere verhaal ;) Als je werkt met 'absolute' kortingen (korting van een bedrag) in plaats van relatieve kortingen (korting in percentage) maakt de volgorde aardig uit. Nu is het geven van kortingen ex btw wel een wat raar geval, en alleen logisch als je zakelijk verkoopt (en alle prijzen ex btw zijn). Naar consumenten moeten prijzen inc. btw vermeld worden namelijk (al zal de gemiddelde klant niet gaan zeuren over 1 euro korting ex btw in plaats van 1 euro inc btw).

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 15:31
Hmmm, nu heb ik bij korting op inclusief btw weer problemen met afronden :X.

code:
1
2
3
4
5
6
7
8
discount = 10;

price_ex = 8.22;
price_in = price_ex * 1.21; // 9.9462

// discount
price_in = (price_in / 100) * (100-discount); // 8.95158
price_ex = price_in / 1.21; // 7.398


Zo klopt het allemaal nog wel; je komt afgerond op € 8,95 inclusief en € 7,40 exclusief btw. Maar als je tussendoor al afgerond hebt dan kom je op € 8,96 inclusief btw.

Alles maar weer eens even nalopen...

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 22:57

The Eagle

I wear my sunglasses at night

Afronden doe je altijd op het allerlaatst :)

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 15:31
The Eagle schreef op donderdag 18 december 2014 @ 13:58:
Afronden doe je altijd op het allerlaatst :)
Nou en toch gaat er iets niet helemaal goed dan... met het bedrag aan btw.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
discount = 10;

price_ex = 8.22;
price_in = price_ex * 1.21; // 9.9462

// discount
price_in = (price_in / 100) * (100-discount); // 8.95158
price_ex = price_in / 1.21; // 7.398

// 2 producten, zelfde prijs en korting
total_price_in = price_in * 2; // 17.90316 <---
total_price_ex = price_ex * 2; // 14.796
total_btw_21 = price_ex * 0.21; // 3.10716


Kortom; € 14,80 + € 3,11 = € 17,91 ... en niet € 17,90. Wat mis ik hier? :X

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Wat voor data type gebruik je?

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 15:31
Deze berekeningen zitten allemaal in php. Voor ik ga rekenen met de 8.22 maak ik er eerst centen van. Dus 822. Dat heb ik in m'n voorbeeld overigens niet meegenomen, maar de resultaten zijn hetzelfde.

  • _Moe_
  • Registratie: Mei 2006
  • Laatst online: 20-11 20:04
TheNephilim schreef op donderdag 18 december 2014 @ 15:13:
[...]


Deze berekeningen zitten allemaal in php. Voor ik ga rekenen met de 8.22 maak ik er eerst centen van. Dus 822. Dat heb ik in m'n voorbeeld overigens niet meegenomen, maar de resultaten zijn hetzelfde.
En is iets dergelijks mogelijk?
822,36 centen

RTFM!


  • LordSinclair
  • Registratie: Oktober 2014
  • Laatst online: 10:33
TheNephilim schreef op donderdag 18 december 2014 @ 14:31:
[...]


Nou en toch gaat er iets niet helemaal goed dan... met het bedrag aan btw.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
discount = 10;

price_ex = 8.22;
price_in = price_ex * 1.21; // 9.9462

// discount
price_in = (price_in / 100) * (100-discount); // 8.95158
price_ex = price_in / 1.21; // 7.398

// 2 producten, zelfde prijs en korting
total_price_in = price_in * 2; // 17.90316 <---
total_price_ex = price_ex * 2; // 14.796
total_btw_21 = price_ex * 0.21; // 3.10716


Kortom; € 14,80 + € 3,11 = € 17,91 ... en niet € 17,90. Wat mis ik hier? :X
2 producten =
2x 7,398 = 14,796
2x BTW = 14,796 * 0.21 = 3,10716
Totaal = 14,796+3,10716 = 17,90316
Afgerond: 17,90

Kortom afrondingsverschil omdat jij al afrond op 2 decimalen in een eerder stadium dan je in je code doet (in je code rond je nergens af).

There's no need to kneel, I'm a very democratic sort of lord.


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 15:31
_Moe_ schreef op donderdag 18 december 2014 @ 15:22:
[...]


En is iets dergelijks mogelijk?
822,36 centen
Nouja, na 10% korting op de prijs inclusief kom je op 739.8 cent exclusief.
LordSinclair schreef op donderdag 18 december 2014 @ 15:24:
[...]

2 producten =
2x 7,398 = 14,796
2x BTW = 14,796 * 0.21 = 3,10716
Totaal = 14.796+3.10716 = 17,90316
Afgerond: 17,90

Kortom afrondingsverschil omdat jij al afrond op 2 decimalen in een eerder stadium dan je in je code doet.
Het totaalbedrag excl. btw klopt wel, maar het totaal AAN 21% btw weergeven (3.10716) word € 3,11.

  • LordSinclair
  • Registratie: Oktober 2014
  • Laatst online: 10:33
TheNephilim schreef op donderdag 18 december 2014 @ 15:28:
[...]


Nouja, na 10% korting op de prijs inclusief kom je op 739.8 cent exclusief.


[...]


Het totaalbedrag excl. btw klopt wel, maar het totaal AAN 21% btw weergeven (3.10716) word € 3,11.
Dan zou je je totaalsom moeten maken met een afgerond subtotaal zonder btw (zoals weergave) + een afgerond btw bedrag (zoals weergave). Dan moet je niet verder rekenen met niet afgeronde getallen.


2 producten =
2x 7,398 = 14,796
round(14.796, 2) = 14.80
2x BTW = 14,796 * 0.21 = 3,10716
round(3.10716, 2) = 3.11
Totaal = 14,80 + 3,11 =17,91
Ofwel totaal = round(14.796, 2) + round(3.10716, 2) = 17,91

[ Voor 17% gewijzigd door LordSinclair op 18-12-2014 15:35 ]

There's no need to kneel, I'm a very democratic sort of lord.


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 15:31
Op dit moment heb ik het zo opgelost:

code:
1
2
3
4
5
6
7
8
9
// één keer, of meermaals, per orderregel
row_price_in += round(price_in);
row_price_ex += round(price_ex);
row_price_btw[21] += round(price_in - price_ex);

// aan het einde van de orderregel
total_price_in += row_price_in;
total_price_ex += row_price_ex;
total_price_btw[21] += row_price_btw[21];


Nu sluiten het totaal zonder btw en het totaal aan btw netjes op elkaar aan :D.

[ Voor 7% gewijzigd door TheNephilim op 18-12-2014 16:48 ]


  • siddler
  • Registratie: April 2006
  • Laatst online: 22:47
Ik weet niet in welke branch deze webshop zit, maar ik heb het idee dat het een beetje in de knoei loopt is als je ook artikelen verkoopt waar maar 6% BTW op zit (voeding, concertkaartjes enz). Want waar geef je dan die 1 euro korting op, het product met 6%, of met 21%? Voor de ondernemer geef je dit liever op het product met 21%, dan hoef je minder af te dragen aan de belasting.

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 15:31
siddler schreef op donderdag 18 december 2014 @ 17:05:
Ik weet niet in welke branch deze webshop zit, maar ik heb het idee dat het een beetje in de knoei loopt is als je ook artikelen verkoopt waar maar 6% BTW op zit (voeding, concertkaartjes enz). Want waar geef je dan die 1 euro korting op, het product met 6%, of met 21%? Voor de ondernemer geef je dit liever op het product met 21%, dan hoef je minder af te dragen aan de belasting.
Het gaat om 10% korting; niet 1 euro.

  • siddler
  • Registratie: April 2006
  • Laatst online: 22:47
TheNephilim schreef op donderdag 18 december 2014 @ 17:27:
[...]


Het gaat om 10% korting; niet 1 euro.
Met 10% korting kun je inderdaad 10% van de BTW afhalen en 10% van het bedrag excl BTW. Maar wil je qua flexibiliteit niet ook absolute kortingen kunnen geven?
Pagina: 1