Топ предложения: создание интернет-магазина | сайт-визитка

Калькулятор ламината OpenCart 3 - делаем супер мега калькулятор своими руками

В OpenCart 3 нет встроенной калькуляции цены, только от количества. Но если у нас есть упаковка и нам нужно указать количество в упаковке равное дробному, но при этом заказ должен быть именно упаковками. Пример ламинат или конфеты, другой товар. В коробке 3,6 квадратных метра, нам нужно 10 коробок. Столкнулся с такой проблемой, что даже калькуляторы для OpenCart которые продаются по цене от 50-100$ в итоге в корзину передают только дробное значение, а не целое значение, то есть кол-во нужных коробок. И разработчики дополнения говорят, что нужно все дорабатывать и виной сам OpenCart его алгоритмы. Для корректной логичной правильной работы требует мега доработки еще за дополнительную стоимость + к лицензии.

В итоге все как в поговорке – если что-то хочешь сделать хорошо – делай это сам!

Делаем супер мега калькулятор OpenCart, конкретно ocStore 3.0.2.0

калькулятор OpenCart

Для того чтобы мы могли указывать кол-во в упаковке нам нужно выбрать поле в базе данных для этого. Я выбрал upc – потому, как и загрузить прайс-листом можно и уже есть оно, делать новое не надо. Вообще нравится OpenCart тем что, часто просто включив смекалку можно решить сложнейшие вопросы простым путем.

Ну и начнем собственно – у меня на это ушло часа 3-4 (может больше, с учетом того что я в php я не очень силен) с OpenCart работаю давно поэтому знаю много.

Ищем

/system/library/cart - cart.php

Где-то 166 строка

$price = $product_query->row['price'];

Меняем на

if ($product_query->row['upc']) {

$price = ($product_query->row['price'] * $product_query->row['upc']);

} else {

$price = $product_query->row['price'];

}

Это позволит при наличии upc (или др. блок) выводить стоимость, учитывая количество и выводить стоимость без количества в упаковке – как обычно.

Далее в контролере карточки товара /catalog/controller/productproduct.phpпосле $data['model'] = $product_info['model']; добавляем $data['upc'] = $product_info['upc']; - это я нашел на форме https://opencartforum.com/ позволяет выводить upc в карточку товара.

Для самого вывода открываем файл /catalog/view/theme/default/template/product product.twig

Ищем {% if not special %}

В этом блоке if меняем все на

{% if upc > 0 %}              

<li>

Цена м2: {{ price }}

Упаковка: {{ price * upc }} В Упаковке: {{ upc }}<br>

<form name="form1" method="post" action="" class="calc">

Укажите Вашу площадь м2: <input type="text" name="num1" id="num1" />

<br>

<input type="text" name="num2" value="{{ upc }}" id="num2" class="hidden-lg" />

<br>

</li>

{% else %}         

<li>

Цена: {{ price }}

</li>

{% endif %}       

В итоге у нас если присутствует запись в поле upc то выводится блок с расчетом позволяющий пользователю ввести свою квадратуру.

Далее следует в этом же файле добавить скрипт где-то в самом низу.

{% if upc %}

<script>

$(document).ready(function() {

//this calculates values automatically

sum();

$("#num1, #num2").on("keydown keyup", function() {

   sum();

});

});

function sum() {

var num1 = document.getElementById('num1').value;

var num2 = document.getElementById('num2').value;

var result = parseInt(num1) / parseInt(num2) | 0;

var result1 = parseInt(num2) - parseInt(num1);

if (!isNaN(result)) {

document.getElementById('input-quantity').value = result;

}

}

</script>

{% endif %}

Данный скрипт делает расчет и передает значение в поле количество, в итоге мы получаем сразу нужное количество.

Все что здесь приведено, является рабочим решением, проверено. Сделано оно очень быстро скорей всего в синтаксисе имеет ошибки. Также если будут использоваться скидки, возможно (скорей всего) нужны будут правки в коде. Но для более-менее разбирающегося человека, данное решение позволит действительно создавать калькулятор OpenCart очень быстро и при этом, не потратившись на бесполезные дополнения, которые требуют все также доработок для корректной работы.

Ищите модуль калькулятора своему интернет-магазину?

Вы можете заказать индивидуальную разработку решения, любого калькулятора стоимости товаров, стоимость услуг от 5000 грн индивидуально, без дополнений, чистое решение с использованием возможностей OpenCart. Все работает - ваш бизнес процветает.

ps. мало того что я попал на деньги, мне вернули всего 70% стоимости (хорошо что и это сделали конечно) потраченной на покупку модуля, теперь мое решение (тот код что выше) в интернете они выдают как за свое, как будто я его у них взял, хотя в реалии нет ничего общего с мега-калькулятором и данным кодом, смотрите, проверяйте сами. Я думаю что клеветой они себя сами загонят куда надо.

Покупать или пробовать самому настраивать, или к кому обращаться, решать вам.

Читайте также

Opencart - система для интернет магазинов Сайт на OpenCart Модули OpenCart которые используются при разработке интернет-магазина Где покупать, искать модули для OpenCart Opencart скидки в процентах – простое решение для OpenCart 3