Jump to content

Hromadná změna cen - DPH


Vulcan163
 Share

Recommended Posts

Zdrávím,

neměl by jste prosím někdo radu jak hromadně upravit cenu u všech produktů?

Resp. jde o to, že do teď jsem u produktů zadával cenu do pole koncová cena - kde jsem ale zadával cenu s DPH.

image.png.2c6bff2c868ef8d96d24fd689b57a327.png

V eshopu jsem neměl pole na zadání ceny s DPH a bez DPH - což jsem vyřešil tímto:

 

 

Nyní ale mám u všech produktů špatnou cenu -

 image.png.250dcf35e1d05bd7722051db400b1f3d.png

Moje cena, kterou chci aby byla vidět zákazníkům (12kč) je v poli Maloobchodní cena bez DPH.
Potřeboval bych jí dostat do pole Maloobchodní cena s daní a cena bez daně aby se sama vypočítala. Toto ale potřebuji provést u cca 5000 produktů.

Lze to prosím udělat nějak hromadně?

Našel jsem i tento návod https://webtrh.cz/395166-prestashop-hromadna-zmena-dph-produktu jak pomocí SQL změnit cenu u všech produktů, ale vždy se cena změní o nepochopitelné procenta a nefunguje to.

Předem děkuji za pomoc.
 

Edited by Vulcan163 (see edit history)

Share this post


Link to post
Share on other sites

A nebylo by lepší sem dát SQL dotaz který jsi použil a spustil ?

Na webtrhu jsem nahodil pouze informativní SQL dotaz jak dosáhnout změny všech cen, nelze pouze Ctrl + C / Ctrl + V

14,52 ÷ 1,21 = 12 (původní zjištěná hodnota bez DPH a nová cena včetně DPH)

12 ÷ 1,21 = 9,917355 (nová cena bez DPH)

Zjisti si v databázi, jaká je cena zapsaná v tabulce. Pokud bude zapsaná cena 12, použiješ ROUND (SUM (price / '1.21') , 6) ..... kde u všech produktů se odečte 21% a zaokrouhlí se na 6 desetinných míst.

Pokud jsou DPH u produktů rozdílné, musí se zjistit podle vat group hodnota atd...

Případně napsat PHP script, který projde všechny produkty a ceny změní s využitím prestashop funkce getPrice

 

Edited by Guest (see edit history)

Share this post


Link to post
Share on other sites

Ale, když si uděláš zpětnou kontrolu, tak zjistíš menší rozdíl ve výpočtu:

9,917355 ×1,21 = 11,99999955

Při standardním nastavení Prestashopu a zaokrouhlení na 2 desetiny dostaneš cenu 12 .

Share this post


Link to post
Share on other sites

Děkuji za odpověď.

 

V SQL tabulce ps_product je uložena správná cena 94Kč - tzn. s DPH

image.png.d51f2bfb2ef892802a38093582540547.png

Eshop, ale tuto hodnotu zobrazuje jako maloobchodní cenu bez DPH...

image.png.29f38c360fef4d7c358ae478adfb3102.png

V SQL tabulce není hodnota pro cenu s DPH i bez DPH - tzn. předpokládám, že Presta si cenu dopočítává logicky sama dle nastaveného daňového pravidla.

Potřeboval bych tedy do pole price v tabulce ps_product dostat cenu která tam je aktuálně a tu snížit o 21%.

Ještě je zajímavé, když upravím ručně cenu v SQL v poli price tak se cena na eshopu nezmění 😞

Předem díky

Share this post


Link to post
Share on other sites

Pokud jsi se díval na sql dotaz, uvidíš, že se musí cena aktualizovat ve dvou tabulkách.

ps_product a ps_product_shop 

Share this post


Link to post
Share on other sites

Omlouvám se, ale v SQL nejsem úplně profík.

DPH je u všech produktů stejné - 21%

UPDATE ps_product SET price = ROUND (SUM (price / '1.21') , 6);
UPDATE ps_product_shop SET price = ROUND (SUM (price / '1.21') , 6);

 

Kde je v tomto dotazu chyba ? 😞

 image.png.8961fd39c10014334d36e55a7da70d26.png
 

Share this post


Link to post
Share on other sites

Mezera za sum a ROUND

UPDATE ps_product SET price = ROUND(SUM(price / '1.21') , 6);
UPDATE ps_product_shop SET price = ROUND(SUM(price / '1.21') , 6);

Share this post


Link to post
Share on other sites

A bez ROUND to také nefunguje ?

UPDATE ps_product SET price = SUM(price / '1.21');
UPDATE ps_product_shop SET price = SUM(price / '1.21');

Share this post


Link to post
Share on other sites

U všech cen odečíst 21%:

UPDATE ps_product SET price = (price / '1.21') WHERE price > 0;
UPDATE ps_product_shop SET price = (price / '1.21') WHERE price > 0;

Pokud existují atributy a speciální ceny, použije se také:

UPDATE ps_product_attribute SET price = (price / '1.21') WHERE price > 0;
UPDATE ps_product_attribute_shop SET price = (price / '1.21') WHERE price > 0;
UPDATE ps_specific_price SET price = (price / '1.21') WHERE price > 0; 

 

produkty před úpravou:

obrazek.thumb.png.af45aba714cf0513bc0a67f79fe5e7ca.png

 

produkty po úpravě:

obrazek.thumb.png.1e00584f6127e63296bcd57483298b2a.png

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More