Skocz do zawartości

bibosz

Members
  • Zawartość

    4
  • Rejestracja

  • Ostatnia wizyta

  1. Zaokrąglanie cen

    Prestashop 1.6.0.5 standardowa templatka. Zaokrąglenie dla każdej ceny w PLN.
  2. Zaokrąglanie cen

    Kolejne pytanie czy da się to zrobić dzisiaj i ile będzie to kosztowało?
  3. Zaokrąglanie cen

    Tak, od tego zacząłem poszukiwania. W tych opcjach można ustawić tylko zaokrąglanie do dwóch miejsc po przecinku, a ja muszę ceny zaokrąglać do 50 groszy zawsze w górę czyli 15.946 ma zaokrąglić do 16.00 a nie 15.95. Gdyby zaokrąglanie było do pełnych złotówek to też można ustawić aby ceny wyświetlały się bez miejsc po przecinku, natomiast w moim przypadku nie mogę tego zrobić. Być może rozwiązaniem jest modyfikacja pliku tools.php z katalogu classes a dokładniej tych dwóch funkcji: /** * Return price converted * * @param float $price Product price * @param object|array $currency Current currency object * @param boolean $to_currency convert to currency or from currency to default currency * @param Context $context * @return float Price */ public static function convertPrice($price, $currency = null, $to_currency = true, Context $context = null) { static $default_currency = null; if ($default_currency === null) $default_currency = (int)Configuration::get('PS_CURRENCY_DEFAULT'); if (!$context) $context = Context::getContext(); if ($currency === null) $currency = $context->currency; elseif (is_numeric($currency)) $currency = Currency::getCurrencyInstance($currency); $c_id = (is_array($currency) ? $currency['id_currency'] : $currency->id); $c_rate = (is_array($currency) ? $currency['conversion_rate'] : $currency->conversion_rate); if ($c_id != $default_currency) { if ($to_currency) $price *= $c_rate; else $price /= $c_rate; } return $price; } /** * * Convert amount from a currency to an other currency automatically * @param float $amount * @param Currency $currency_from if null we used the default currency * @param Currency $currency_to if null we used the default currency */ public static function convertPriceFull($amount, Currency $currency_from = null, Currency $currency_to = null) { if ($currency_from === $currency_to) return $amount; if ($currency_from === null) $currency_from = new Currency(Configuration::get('PS_CURRENCY_DEFAULT')); if ($currency_to === null) $currency_to = new Currency(Configuration::get('PS_CURRENCY_DEFAULT')); if ($currency_from->id == Configuration::get('PS_CURRENCY_DEFAULT')) $amount *= $currency_to->conversion_rate; else { $conversion_rate = ($currency_from->conversion_rate == 0 ? 1 : $currency_from->conversion_rate); // Convert amount to default currency (using the old currency rate) $amount = Tools::ps_round($amount / $conversion_rate, 2); // Convert to new currency $amount *= $currency_to->conversion_rate; } return Tools::ps_round($amount, 2); }
  4. Witam. Mam do rozwiązania następujący problem. Domyślną walutą sklepu ma być euro. Cena dla klientów ma się wyświetlać w złotówkach po przeliczaniu cen w/g kursu euro. Do tego miejsca prestashop radzi sobie z tym bez problemu, natomiast ja potrzebuję zaokrąglić te ceny po przeliczeniu do 0,5 zł w górę. Jeżeli cena po przeliczeniu wyjdzie, 15.23 to ma się pojawiać 15.50, jeżeli 17.69 to ma się pojawiać cena 18 zł itd. Będę wdzięczny za wszystkie sugestie.
×