kiggo Опубліковано: 5 листопада 2015 Share Опубліковано: 5 листопада 2015 Ситуация следующая: Цена всего товара на сайте (в админ части) введена в $ (т.к. все импорт), на сайте покупателю выводит стоимость в грн, в присчёте по курсу на сегодня Цены в большинстве случаев с центами ( пример – 8,37 $). Специфика товара в том, что как правило заказывают мин 2 -3 единицы. В результате чего из-за округления стоимости, общая сумма не являете не правильной. Например: 1 товар стоит (8,37$) – по курсу гривны к $ (8,37 * 24,4=204,23 грн), естественно на карточке товара цена округляется до 204 грн. Но возникает проблема при заказе большего количества – например 7шт. Умножение производиться не по целой стоимости в 204 грн., а естественно по стоимости 204,23грн. 204*7=1428 грн 204,23*7=1430 грн. (естественно с округлением) Вот и выходит разница в 2 грн. Может кто подскажет как это можно исправить ? Надіслати Поділитися на інших сайтах More sharing options...
chukcha Опубліковано: 5 листопада 2015 Share Опубліковано: 5 листопада 2015 Подскажет... В таком случае нужно округять до умножения т.е 204,23 ~ 204 т.е не round (($price * $quantity) * $currency_value) а round($price * $currency_value) ** $quantity Надіслати Поділитися на інших сайтах More sharing options... kiggo Опубліковано: 5 листопада 2015 Автор Share Опубліковано: 5 листопада 2015 (змінено) В целом Ваша мысль ясна. Только вот, в cart.php : // Display prices if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $total = $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')) * $product['quantity']); } else { $total = false; }Если не трудно ... Змінено 5 листопада 2015 користувачем afwollis [code][/code] Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 5 листопада 2015 Share Опубліковано: 5 листопада 2015 Мне проще это сделать, чем рассказать ну вот же попробуйте $total = $this->currency->format($this->tax->calculate($product['price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')) ); Надіслати Поділитися на інших сайтах More sharing options... kiggo Опубліковано: 5 листопада 2015 Автор Share Опубліковано: 5 листопада 2015 Не сомневаюсь в Вашей компетенции, но что то не помогло. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 5 листопада 2015 Share Опубліковано: 5 листопада 2015 Я не проверял свое предположение Нужно делать тест на реальных данных А что не помогло? Не заработало? А вот тут скорей всего нужен небольшой хак $total = $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')) * $product['quantity'],false); $total = $this->currency->format($total,'',1, true); Надіслати Поділитися на інших сайтах More sharing options... ambalocha69 Опубліковано: 5 листопада 2015 Share Опубліковано: 5 листопада 2015 а не проще ли воспользоваться готовым модулем? https://opencartforum.com/files/file/2170-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%B2%D0%B0%D0%BB%D1%8E%D1%82%D0%BD%D1%8B%D0%B5-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B/ 5 видов округления, на любой вкус Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 5 листопада 2015 Share Опубліковано: 5 листопада 2015 И оно будет округлять тотал? Надіслати Поділитися на інших сайтах More sharing options... kiggo Опубліковано: 6 листопада 2015 Автор Share Опубліковано: 6 листопада 2015 Я не проверял свое предположение Нужно делать тест на реальных данных А что не помогло? Не заработало? А вот тут скорей всего нужен небольшой хак $total = $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')) * $product['quantity'],false); $total = $this->currency->format($total,'',1, true); К сожалению данный вариант, так же не работает. При проверке = товар 380 грн и католичестве 21 шт - получилось что общая стоимость равна 7 грн. По логике видно, что умножение стоимости товара $product['price'] на количество $product['quantity'] проводиться сразу в грн. и естественно получается отклонение. $total = $this->currency->format($this->tax->calculate($product['price'] * $product['quantity'])); На сайте использую вот такую систему валют: Надіслати Поділитися на інших сайтах More sharing options... shoputils Опубліковано: 6 листопада 2015 Share Опубліковано: 6 листопада 2015 А почему у вас валюта по умолчанию имеет значение 24, а не 1? Надіслати Поділитися на інших сайтах More sharing options... kiggo Опубліковано: 6 листопада 2015 Автор Share Опубліковано: 6 листопада 2015 А почему у вас валюта по умолчанию имеет значение 24, а не 1? Все позиции в админке введены в $. А на сайте выводится цена в грн. При изменении курса гривны, не приходиться пересчитывать все позиции. Данную схему нарыл тут на форуме. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница Округление общей стоимости товара Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень OpenCartForum Форум Модулі Шаблони Безкоштовні шаблониПлатні шаблони Блоги Новини ocStore Офіційний сайтДемо ocStore 3.0.3.2Демо ocStore 2.3.0.2.4Завантажити ocStoreДокументаціяІсторія версій ocStore Гість Українська Русский English Уже зареєстровані? Ввійти Реєстрація × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
kiggo Опубліковано: 5 листопада 2015 Автор Share Опубліковано: 5 листопада 2015 (змінено) В целом Ваша мысль ясна. Только вот, в cart.php : // Display prices if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $total = $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')) * $product['quantity']); } else { $total = false; }Если не трудно ... Змінено 5 листопада 2015 користувачем afwollis [code][/code] Надіслати Поділитися на інших сайтах More sharing options...
chukcha Опубліковано: 5 листопада 2015 Share Опубліковано: 5 листопада 2015 Мне проще это сделать, чем рассказать ну вот же попробуйте $total = $this->currency->format($this->tax->calculate($product['price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')) ); Надіслати Поділитися на інших сайтах More sharing options... kiggo Опубліковано: 5 листопада 2015 Автор Share Опубліковано: 5 листопада 2015 Не сомневаюсь в Вашей компетенции, но что то не помогло. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 5 листопада 2015 Share Опубліковано: 5 листопада 2015 Я не проверял свое предположение Нужно делать тест на реальных данных А что не помогло? Не заработало? А вот тут скорей всего нужен небольшой хак $total = $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')) * $product['quantity'],false); $total = $this->currency->format($total,'',1, true); Надіслати Поділитися на інших сайтах More sharing options... ambalocha69 Опубліковано: 5 листопада 2015 Share Опубліковано: 5 листопада 2015 а не проще ли воспользоваться готовым модулем? https://opencartforum.com/files/file/2170-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%B2%D0%B0%D0%BB%D1%8E%D1%82%D0%BD%D1%8B%D0%B5-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B/ 5 видов округления, на любой вкус Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 5 листопада 2015 Share Опубліковано: 5 листопада 2015 И оно будет округлять тотал? Надіслати Поділитися на інших сайтах More sharing options... kiggo Опубліковано: 6 листопада 2015 Автор Share Опубліковано: 6 листопада 2015 Я не проверял свое предположение Нужно делать тест на реальных данных А что не помогло? Не заработало? А вот тут скорей всего нужен небольшой хак $total = $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')) * $product['quantity'],false); $total = $this->currency->format($total,'',1, true); К сожалению данный вариант, так же не работает. При проверке = товар 380 грн и католичестве 21 шт - получилось что общая стоимость равна 7 грн. По логике видно, что умножение стоимости товара $product['price'] на количество $product['quantity'] проводиться сразу в грн. и естественно получается отклонение. $total = $this->currency->format($this->tax->calculate($product['price'] * $product['quantity'])); На сайте использую вот такую систему валют: Надіслати Поділитися на інших сайтах More sharing options... shoputils Опубліковано: 6 листопада 2015 Share Опубліковано: 6 листопада 2015 А почему у вас валюта по умолчанию имеет значение 24, а не 1? Надіслати Поділитися на інших сайтах More sharing options... kiggo Опубліковано: 6 листопада 2015 Автор Share Опубліковано: 6 листопада 2015 А почему у вас валюта по умолчанию имеет значение 24, а не 1? Все позиции в админке введены в $. А на сайте выводится цена в грн. При изменении курса гривны, не приходиться пересчитывать все позиции. Данную схему нарыл тут на форуме. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница Округление общей стоимости товара Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень OpenCartForum Форум Модулі Шаблони Безкоштовні шаблониПлатні шаблони Блоги Новини ocStore Офіційний сайтДемо ocStore 3.0.3.2Демо ocStore 2.3.0.2.4Завантажити ocStoreДокументаціяІсторія версій ocStore Гість Українська Русский English Уже зареєстровані? Ввійти Реєстрація × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
kiggo Опубліковано: 5 листопада 2015 Автор Share Опубліковано: 5 листопада 2015 Не сомневаюсь в Вашей компетенции, но что то не помогло. Надіслати Поділитися на інших сайтах More sharing options...
chukcha Опубліковано: 5 листопада 2015 Share Опубліковано: 5 листопада 2015 Я не проверял свое предположение Нужно делать тест на реальных данных А что не помогло? Не заработало? А вот тут скорей всего нужен небольшой хак $total = $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')) * $product['quantity'],false); $total = $this->currency->format($total,'',1, true); Надіслати Поділитися на інших сайтах More sharing options... ambalocha69 Опубліковано: 5 листопада 2015 Share Опубліковано: 5 листопада 2015 а не проще ли воспользоваться готовым модулем? https://opencartforum.com/files/file/2170-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%B2%D0%B0%D0%BB%D1%8E%D1%82%D0%BD%D1%8B%D0%B5-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B/ 5 видов округления, на любой вкус Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 5 листопада 2015 Share Опубліковано: 5 листопада 2015 И оно будет округлять тотал? Надіслати Поділитися на інших сайтах More sharing options... kiggo Опубліковано: 6 листопада 2015 Автор Share Опубліковано: 6 листопада 2015 Я не проверял свое предположение Нужно делать тест на реальных данных А что не помогло? Не заработало? А вот тут скорей всего нужен небольшой хак $total = $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')) * $product['quantity'],false); $total = $this->currency->format($total,'',1, true); К сожалению данный вариант, так же не работает. При проверке = товар 380 грн и католичестве 21 шт - получилось что общая стоимость равна 7 грн. По логике видно, что умножение стоимости товара $product['price'] на количество $product['quantity'] проводиться сразу в грн. и естественно получается отклонение. $total = $this->currency->format($this->tax->calculate($product['price'] * $product['quantity'])); На сайте использую вот такую систему валют: Надіслати Поділитися на інших сайтах More sharing options... shoputils Опубліковано: 6 листопада 2015 Share Опубліковано: 6 листопада 2015 А почему у вас валюта по умолчанию имеет значение 24, а не 1? Надіслати Поділитися на інших сайтах More sharing options... kiggo Опубліковано: 6 листопада 2015 Автор Share Опубліковано: 6 листопада 2015 А почему у вас валюта по умолчанию имеет значение 24, а не 1? Все позиции в админке введены в $. А на сайте выводится цена в грн. При изменении курса гривны, не приходиться пересчитывать все позиции. Данную схему нарыл тут на форуме. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница Округление общей стоимости товара Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав WebrovGroup Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Правова інформація (Україна) Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика просування оголошень
ambalocha69 Опубліковано: 5 листопада 2015 Share Опубліковано: 5 листопада 2015 а не проще ли воспользоваться готовым модулем? https://opencartforum.com/files/file/2170-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%B2%D0%B0%D0%BB%D1%8E%D1%82%D0%BD%D1%8B%D0%B5-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B/ 5 видов округления, на любой вкус Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 5 листопада 2015 Share Опубліковано: 5 листопада 2015 И оно будет округлять тотал? Надіслати Поділитися на інших сайтах More sharing options... kiggo Опубліковано: 6 листопада 2015 Автор Share Опубліковано: 6 листопада 2015 Я не проверял свое предположение Нужно делать тест на реальных данных А что не помогло? Не заработало? А вот тут скорей всего нужен небольшой хак $total = $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')) * $product['quantity'],false); $total = $this->currency->format($total,'',1, true); К сожалению данный вариант, так же не работает. При проверке = товар 380 грн и католичестве 21 шт - получилось что общая стоимость равна 7 грн. По логике видно, что умножение стоимости товара $product['price'] на количество $product['quantity'] проводиться сразу в грн. и естественно получается отклонение. $total = $this->currency->format($this->tax->calculate($product['price'] * $product['quantity'])); На сайте использую вот такую систему валют: Надіслати Поділитися на інших сайтах More sharing options... shoputils Опубліковано: 6 листопада 2015 Share Опубліковано: 6 листопада 2015 А почему у вас валюта по умолчанию имеет значение 24, а не 1? Надіслати Поділитися на інших сайтах More sharing options... kiggo Опубліковано: 6 листопада 2015 Автор Share Опубліковано: 6 листопада 2015 А почему у вас валюта по умолчанию имеет значение 24, а не 1? Все позиции в админке введены в $. А на сайте выводится цена в грн. При изменении курса гривны, не приходиться пересчитывать все позиции. Данную схему нарыл тут на форуме. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница Округление общей стоимости товара
chukcha Опубліковано: 5 листопада 2015 Share Опубліковано: 5 листопада 2015 И оно будет округлять тотал? Надіслати Поділитися на інших сайтах More sharing options... kiggo Опубліковано: 6 листопада 2015 Автор Share Опубліковано: 6 листопада 2015 Я не проверял свое предположение Нужно делать тест на реальных данных А что не помогло? Не заработало? А вот тут скорей всего нужен небольшой хак $total = $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')) * $product['quantity'],false); $total = $this->currency->format($total,'',1, true); К сожалению данный вариант, так же не работает. При проверке = товар 380 грн и католичестве 21 шт - получилось что общая стоимость равна 7 грн. По логике видно, что умножение стоимости товара $product['price'] на количество $product['quantity'] проводиться сразу в грн. и естественно получается отклонение. $total = $this->currency->format($this->tax->calculate($product['price'] * $product['quantity'])); На сайте использую вот такую систему валют: Надіслати Поділитися на інших сайтах More sharing options... shoputils Опубліковано: 6 листопада 2015 Share Опубліковано: 6 листопада 2015 А почему у вас валюта по умолчанию имеет значение 24, а не 1? Надіслати Поділитися на інших сайтах More sharing options... kiggo Опубліковано: 6 листопада 2015 Автор Share Опубліковано: 6 листопада 2015 А почему у вас валюта по умолчанию имеет значение 24, а не 1? Все позиции в админке введены в $. А на сайте выводится цена в грн. При изменении курса гривны, не приходиться пересчитывать все позиции. Данную схему нарыл тут на форуме. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
kiggo Опубліковано: 6 листопада 2015 Автор Share Опубліковано: 6 листопада 2015 Я не проверял свое предположение Нужно делать тест на реальных данных А что не помогло? Не заработало? А вот тут скорей всего нужен небольшой хак $total = $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')) * $product['quantity'],false); $total = $this->currency->format($total,'',1, true); К сожалению данный вариант, так же не работает. При проверке = товар 380 грн и католичестве 21 шт - получилось что общая стоимость равна 7 грн. По логике видно, что умножение стоимости товара $product['price'] на количество $product['quantity'] проводиться сразу в грн. и естественно получается отклонение. $total = $this->currency->format($this->tax->calculate($product['price'] * $product['quantity'])); На сайте использую вот такую систему валют: Надіслати Поділитися на інших сайтах More sharing options...
shoputils Опубліковано: 6 листопада 2015 Share Опубліковано: 6 листопада 2015 А почему у вас валюта по умолчанию имеет значение 24, а не 1? Надіслати Поділитися на інших сайтах More sharing options... kiggo Опубліковано: 6 листопада 2015 Автор Share Опубліковано: 6 листопада 2015 А почему у вас валюта по умолчанию имеет значение 24, а не 1? Все позиции в админке введены в $. А на сайте выводится цена в грн. При изменении курса гривны, не приходиться пересчитывать все позиции. Данную схему нарыл тут на форуме. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
kiggo Опубліковано: 6 листопада 2015 Автор Share Опубліковано: 6 листопада 2015 А почему у вас валюта по умолчанию имеет значение 24, а не 1? Все позиции в админке введены в $. А на сайте выводится цена в грн. При изменении курса гривны, не приходиться пересчитывать все позиции. Данную схему нарыл тут на форуме. Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts