Калькулятор ламінату 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 грн. Все працює – ваш бізнес процвітає.

Веб студія SiTe-LiNe спеціалізується виключно на створенні сайт-візиток, інтернет-магазинів та корпоративних сайтів (порталів). Замовлення на інші види розробки сайтів не приймаються.
+38(066)-390-40-81
(Viber, Whatsapp, Telegram)

Для швидкого замовлення сайту, або підсумку вартості робіт по розробці сайту. Вам потрібно вказати тематику свого сайту, приклад (конкурента, або будь-якого сайту) котрий вам подобається. Для початку робіт вказати бажану колірну гаму сайту, назви сторінок (меню) котрі вам потрібні. Відправити тексти для сторінок (зазвичай це опис діяльності вашого бізнесу, контакти). Відправити при наявності фото матеріали для використовування їх для оформлення сторінок сайту. Все це ви можете відправити на пошту info@site-line.com.ua або у будь-який месенджер.

Карта сайту