Добрый день.
Появилась нужда в опциях товаров добавить еще " * "(умножение), помимо + и -.
В админке все выбирается, в магазине пересчитывается, все вроде бы ок, но при добавлении товара с выбранной опцией, где есть *, цена у товара остается старой, как будто опцию не выбирали.
Что изменил:
В /system/library/cart/cart.php добавил
} elseif ($option_value_query->row['price_prefix'] == '*') {
$option_price *= $option_value_query->row['price'];
}
в 2 места, где if ($option_query->row['type'] == 'select' || $option_query->row['type'] == 'radio') {
и elseif ($option_query->row['type'] == 'checkbox' && is_array($value)) {
Далее в /admin/view/template/catalog/product_form.tpl
<td class="text-right"><select name="product_option[<?php echo $option_row; ?>][product_option_value][<?php echo $option_value_row; ?>][price_prefix]" class="form-control">
<?php if ($product_option_value['price_prefix'] == '+') { ?>
<option value="+" selected="selected">+</option>
<?php } else { ?>
<option value="+">+</option>
<?php } ?>
<?php if ($product_option_value['price_prefix'] == '-') { ?>
<option value="-" selected="selected">-</option>
<?php } else { ?>
<option value="-">-</option>
<?php } ?> <?php if ($product_option_value['price_prefix'] == '*') { ?>
<option value="*" selected="selected">*</option>
<?php } else { ?>
<option value="*">*</option>
<?php } ?>
</select>
В /catalog/view/theme/***/template/product/product.tpl в конец
где
$('input:checked,option:selected').each(function() {
строки
if ($(this).data('prefix') == '*') {
option_price *= Number($(this).data('price'));
main_price *= Number($(this).data('price'));
special *= Number($(this).data('price'));
}
Версия ocStore 2.3.0.2.1
Подскажите, пожалуйста, что еще забыл сделать?
Спасибо.