Polskie wsparcie PrestaShop
PrestaShop => Dla początkujących => Wątek zaczęty przez: belialek w Styczeń 25, 2013, 01:43:30 pm
-
Witam,
Czy w bazie danych Presty (1.4) znajduje się tabela w której jest zapisana wartość końcowa produktu? W tej chwili korzystam z lekko zmodyfikowanej wersji, w której po wprowadzeniu ceny netto dodaje się 23% (podatek) oraz doliczana jest z automatu marża (chodzi o zachowanie cen magazynowaych jako cen netto). Na sklepie wszystko działa prawidłowo, ale teraz chciałem zmienić marżę na inną - wiąże się to z pomnożeniem przez odpowiedni współczynnik właśnie tej ceny końcowej której nie mogę nigdzie znaleźć...
Z góry dziękuję za pomoc!
-
podstawowa cena produktu jest przechowywana w tabeli product i jest to cena netto
Tak dla potomności - tu jest schemat bazy danych http://www.daveegerton.com/assets/images/database-schema-prestashop.png
-
Witam,
No tak cenę netto znalazłem - w takim razie w jaki sposób jest przechowywana informacja o końcowej cenie, skoro jedyna rzecz jaką modyfikowałem to reguła wyliczania ceny końcowej (javascript w panelu administracyjnym).
var priceTE = parseFloat(document.getElementById('priceTE').value.replace(/,/g, '.'));
priceTE = priceTE+(priceTE/100*90);
var newPrice = priceTE * ((tax / 100) + 1);
Wprowadzając "cena netto sprzedaży: 100" pojawia się "Cena sprzedaży z podatkiem: 190", po wybraniu z listy wartości podatku 23% otrzymuję "Cena sprzedaży z podatkiem: 233,70" czyli poprawną kwotę podatek + marża... Przy czym cena netto/brutto na sklepie wszędzie się zgadza a różnica wynosi dokładnie 23%. Cena brutto na sklepie przy takim zabiegu to 233,70, a w tabeli "products" kolumna "price" zawiera wartość 100.
Czyli ta wartość końcowa musi być jednak gdzieś zapisywana...
-
Czyli ta wartość końcowa musi być jednak gdzieś zapisywana...
to jak już znajdziesz w bazie cenę brutto produktu to podziel się ... tą informacją pewnie wiele osób będzie ciekawych gdzie to się znajduje
-
@Sower juz ci zasygnalizował, że nie znajdziesz tego w bazie. A jaki masz problem z ceny netto zrobić sobie cene koncowa skoro wiesz jaka masz marze i jaki masz podatek?
-
Cały problem polega na tym, że ceny netto w sklepie muszą się zgadzać z cenami magazynowymi, ta wartość musi pozostać niezmieniona. Jedyne co mogłem i (do tej pory robiłem) to ten manewr w plikach js...
Zastanawia mnie właśnie to, że przy wprowadzaniu produktu o wartości 100zł netto, wartość końcowa bez podatku to 190zł a końcowa z podatkiem to 233,70 przy czym w bazie danych cena się zapisuje niezmieniona (100). Skoro te pozostałe informacje nie są zapisywane w bazie danych, to skąd Presta "wie" że cena końcowa to nie jest 123 (netto+vat) tylko właśnie 233.70 (netto+marza ustawiona w js przy dodawaniu produktu+vat)?
Do tego ta cena na sklepie jest zgodna z obliczeniami, bo wyświetla 190zl netto (skąd presta bierze tą wartość skoro cena w bazie jest 100?) + vat...
-
a jezlei masz dwa jablka i mama doniesie Ci jeszcze jedno to skad wiesz, ze masz trzy?
cena wyliczana jest wzorami wg ceny netto, ktora JAKO JEDYNA zapisana jest w module. dalej wyliczana jest na podstawie cena netto*vat+/-promocja*vat(bo promocje tez zapisane w bazie sa netto)+jak sobie dorzuciles juz pokretnie twoja marza. acha i jak wprowadzalbys atrybuty to roznice w cenach w bazie tez sa przechowywane tylko netto, koszty wysylki-netto....
ewentualnie koncowa cene podsumowania zakupow, jakbys chcial szukac to mozesz przerzucic koszyki w bazie, ale tam tez znajdziesz tylko wartosc koszyka NETTO
cena wyliczana jest przede wszystkim w contolerach produktu, a w java tylko to co wyswietla sie karcie produktu dynamicznie.
-
Dzięki za podpowiedź
Co już wiem:
- jedyna cena przechowywana w bazie danych to cena netto
- zmieniony plik js jest tylko wykorzystywany po stronie klienta przy dodawaniu nowego produktu
Czego nie wiem:
- skoro nie modyfikowano innych plików, kontrolerów itd to gdzie ta informacja z fragmentu kodu podanego wcześniej zostaje zapisana (gdzieś musi, skoro sklep wyświetla poprawnie cenę pomnożoną przez 1.9)
- który plik odpowiada za wyliczenie ceny (może tam spróbuję coś zmienić...)