Формулиране на проблема:
Трябва да добавим скрипт в количката интуитивен и накъсана и число на стоки, в зависимост от това как се определя цената: Unit (числа), или на квадратен метър (Float).
Touch решение на този проблем (Joomla 2.5 + Virtuemart 2) може да бъде в този сайт.
За OpenCart (OcStore) разтвор тук.
Тези, които искат да се получи готов разтвор, в кутия с лък, трябва да се напише писмо до нас.
Във всеки случай, винаги трябва да се помни, че съдържанието на файловете Virtuemart (не всички, разбира се), са различни версия на версия. Дори в рамките 2.h.h версия има нови функции и класове, така че губи всякакъв смисъл да се опише подробно кой файл и коя линия да промените нещо в него. Както се казва, "аутопсията ще покаже."
Снимка 1.Можете да поръчате само цялото количество (плочки). Но в кошницата отива дробно число на квадратни метра, ако цената е за квадратен метър Снимка-2.
В кошницата плочки и парчета, и в квадратни метри. Моля, имайте предвид, че премахнахме възможността за промяна номер на продукта на страница "Кошница". За да промените броя трябва да следвате връзката на картата елемент.
Тук е нашият план за действие (опростен)
параграф 2 Проблемът е решен в досиетата: site.com/components/com_virtuemart/views/productdetails/tmpl/default.php и default_addtocart.php
За удобство, ние сме се комбинира кодовете на тези два файла в един. Това е останало от дизайна ехо $ това-> loadTemplate ( "addtocart ');
Позоваване необходими четири функции във файла:
1) публична функция за добавяне ($ virtuemart_product_ids = нула, $ ERRORMSG = '')
в съответствие: $ quantityPost = (междинно съединение) $ публикация [ "количество"] [$ p_key];
промяна на: $ quantityPost = (флоат) $ публикация [ "количество"] [$ p_key];
след ред: $ продукт -> product_sku = $ tmpProduct -> product_sku;
Добавете реда $ продукт -> product_mpn = $ tmpProduct -> product_mpn;
в съответствие: $ продуктов> количество = (междинно съединение) $ quantityPost;
промяна на: $ продуктов> количество = (флоат) $ quantityPost;
2) публичен функция updateProductCart ($ cart_virtuemart_product_id = 0, $ количество = нула)
в линията: ако ($ количество === нула) $ количество = vRequest :: getInt ( "количество");
промени на: ако ($ количество === нула) $ количество = vRequest :: getFloat ( "количество");
3) лично функционални checkForQuantities ($ продукт, $ Количество = 0, $ ERRORMSG = '')
в линията: ако ($ количество <1) меняем на: if ($quantity <0.01) / Здесь вы можете указать свой минимальный порог
4) функция prepareAjaxData ($ checkAutomaticSelected = фалшива)
намерите: $ това-> data-> продукти [$ Ь] [ 'product_sku'] = $ продуктов> product_sku;
добавете долу: $ това-> data-> продукти [$ Ь] [ 'product_mpn'] = $ продуктов> product_mpn;
Редактирайте файла: site.com/components/com_virtuemart/views/cart/tmpl/default_pricelist.php
След функции за редактиране функция prepareAjaxData () обект в променливата $ каруцата получава product_mpn.
И тя стане достъпна default_pricelist.php файл:
foreach ($ това-> cart-> продукти като $ PKEY => $ нос).
ехо $ prow-> product_mpn;
.
>
За да направите това:
Добави в областта на база данни таблица #__virtuemart_order_items, например, order_item_mpn VARCHAR (255)
и редактиране на трите файлове:
1) site.com/administrator/components/com_virtuemart/tables/order_items.php
следните линии:
Var $ order_item_sku = NULL;
добави:
Var $ order_item_mpn = NULL;
2) site.com/administrator/components/com_virtuemart/models/orders.php
функция (приблизително 1145 ред) лично функционални _createOrderLines ($ _ номер, $ _cart)
следните линии:
$ _orderItems-> order_item_sku = $ _prod-> product_sku;
добави:
$ _orderItems-> order_item_mpn = $ _prod-> product_mpn;
функция (за линия 173) публична функция getOrder ($ virtuemart_order_id) в заявката
(Приблизително 201 линия) $ р = 'SELECT virtuemart_order_item_id, product_quantity.
добави
$ = Q "SELECT virtuemart_order_item_id, product_quantity, order_item_mpn,.
3) site.com/administrator/components/com_virtuemart/views/orders/tmpl/order.php
Добави глава колона в таблица (приблизително 430 линия)
и списъкът на стоки О цикъл, за да добавите колона (около 500 линии):
След добавяне на колона не е излишно да се определи обединението на клетки в по-ниските редове на таблицата.
Ние имаме по-долу е само един ред в таблицата с общи суми.
Ето защо, ние се коригира код
а именно,
site.com/components/com_virtuemart/views/invoice/tmpl/invoice_items.php
В точното място на масата въведете заглавие на колона (около 40 storoka):
и самата колона (в foreach линия):