sol_los
Мой дом здесь!
- Регистрация
- 17 Окт 2011
- Сообщения
- 424
- Реакции
- 278
- Автор темы
- #1
Набросал тут модуль для статических цен товара
Для чего нужен:
когда нужно товару сделать в каждой валюте красивую уникальную цену, а магазин только пересчитывает из валюты по умолчанию через курс.
да я знаю что есть модули округляющие цены до десятичных типа 10.99$ - но когда у вас отключены десятичные, да и вообще вы хотите иметь несколько разные цены в разных валютах - здесь поможет этот модуль.
картинка - как выглядит внутри:
Я не большой специалист по Prestashop - не могу точно знать как правильно переопределять методы, потому будет небольшая инструкция ну и прикрепленный файлик, для ленивых.
устанавливаем модуль - открываем товар - назначаем цены. (не забываем, что в магазине цены хранятся без НДС - с НДС это лишь для наглядности) - сохраняем продукт.
теперь переходим к ftp в папку /override/classes
если у вас уже есть файл Product.php:
- открывайте его и ищите есть ли в нем функция public static function priceCalculation
- если есть - вам необходимо найти в ней секцию
и добавить ПЕРЕД ней
- далее найти
и добавить перед ней
-далее найти
и заменить на
- для тех у кого есть файл Product.php но в нем нет метода public static function priceCalculation
откройте прикрепленный файл Product.php и скопируйте public static function priceCalculation
для тех у кого нет файла Product.php - можете просто распаковать прикрепленный и залить в папку /override/classes
не забываем, в пункте Производительность, чистить кеш
Для чего нужен:
когда нужно товару сделать в каждой валюте красивую уникальную цену, а магазин только пересчитывает из валюты по умолчанию через курс.
да я знаю что есть модули округляющие цены до десятичных типа 10.99$ - но когда у вас отключены десятичные, да и вообще вы хотите иметь несколько разные цены в разных валютах - здесь поможет этот модуль.
картинка - как выглядит внутри:
Я не большой специалист по Prestashop - не могу точно знать как правильно переопределять методы, потому будет небольшая инструкция ну и прикрепленный файлик, для ленивых.
устанавливаем модуль - открываем товар - назначаем цены. (не забываем, что в магазине цены хранятся без НДС - с НДС это лишь для наглядности) - сохраняем продукт.
теперь переходим к ftp в папку /override/classes
если у вас уже есть файл Product.php:
- открывайте его и ищите есть ли в нем функция public static function priceCalculation
- если есть - вам необходимо найти в ней секцию
PHP:
if (Combination::isFeatureActive()) {
$sql->select('IFNULL(product_attribute_shop.id_product_attribute,0) id_product_attribute, product_attribute_shop.`price` AS attribute_price, product_attribute_shop.default_on');
$sql->leftJoin('product_attribute_shop', 'product_attribute_shop', '(product_attribute_shop.id_product = p.id_product AND product_attribute_shop.id_shop = '.(int)$id_shop.')');
} else {
$sql->select('0 as id_product_attribute');
}
PHP:
/*Add Sql multistaticprice module*/
$sql->select('mps.`price` as multi_price');
$sql->leftJoin('multipricestatic', 'mps' ,'mps.`id_shop` = ' .(int)$id_shop.' AND mps.`id_product` = ' .(int)$id_product . ' AND mps.`id_currency` = '.(int)$id_currency);
/*END Add Sql multistaticprice module*/
PHP:
'price' => ($row['multi_price']) ? $row['multi_price'] : $row['price'],
'ecotax' => $row['ecotax'],
'attribute_price' => (isset($row['attribute_price']) ? $row['attribute_price'] : null)
и добавить перед ней
PHP:
/*Add value multistaticprice module*/
'multi_price_static' => $row['multi_price'],
/*END Add value multistaticprice module*/
PHP:
$price = Tools::convertPrice($price, $id_currency);
PHP:
/*If value multistaticprice module*/
if($result['multi_price_static'] == null){
$price = Tools::convertPrice($price, $id_currency);
}
/*End If value multistaticprice module*/
- для тех у кого есть файл Product.php но в нем нет метода public static function priceCalculation
откройте прикрепленный файл Product.php и скопируйте public static function priceCalculation
для тех у кого нет файла Product.php - можете просто распаковать прикрепленный и залить в папку /override/classes
не забываем, в пункте Производительность, чистить кеш