Virtuemart frakcionált mennyiségű áru
Fogalmazza meg a problémát:
Mi kell hozzá egy szkript helyezése intuitív és frakcionált, és egész áruk, attól függően, hogyan állította be az ár: Unit (integer) vagy négyzetméterenként (Float).
Touch megoldás erre a problémára (Joomla 2.5 + Virtuemart 2) lehet ezen az oldalon.
A Opencart (OcStore) oldatban van.
Azok, akik szeretnék, hogy egy kész megoldás egy dobozban egy íj, meg kell írni egy levelet nekünk.
Mindenesetre, akkor mindig emlékezni, hogy a tartalmát a Virtuemart fájlok (nem minden természetesen) változik verziójukban. Még a 2.h.h változata vannak új funkciók és osztályok, így elveszíti minden értelemben, hogy részletesen, hogy melyik fájlt, és amelyek összhangban valamit változtatni rajta. Ahogy a mondás tartja, „a boncolás fogja megmondani.”

Tudod, hogy csak a teljes mennyiséget (csempék). De a kosárba megy törtszám négyzetméter, ha az ár négyzetméterenként

A kosár csempe és a darab, és négyzetméter. Felhívjuk figyelmét, hogy eltávolítottuk megváltoztatásának lehetőségét a termék számát az oldalon „Bevásárlókosár”. Megváltoztatni a számot meg kell, hogy kövesse a kapcsolatot a tárgy kártyát.
Itt a mi cselekvési terv (egyszerűsített)
2 bekezdés A probléma megoldódott a fájlokat: site.com/components/com_virtuemart/views/productdetails/tmpl/default.php és default_addtocart.php
Az egyszerűség kedvéért együttesen a kódok a két fájlt egy. Ez maradt a tervezési echo $ this-> loadTemplate (addToCart ');
Citation szükséges négy funkció a fájlban:
1) public function add ($ virtuemart_product_ids = null, $ ERRORMSG = '')
sorban: $ quantityPost = (int) $ bejegyzést [ 'mennyiség'] [$ p_key];
változik: $ quantityPost = (float) $ bejegyzést [ 'mennyiség'] [$ p_key];
után a következő sort: $ product -> product_sku = $ tmpProduct -> product_sku;
Adjuk hozzá a sort: $ product -> product_mpn = $ tmpProduct -> product_mpn;
sorban: $ termék-> mennyiség = (int) $ quantityPost;
vált: $ termék-> mennyiség = (float) $ quantityPost;
2) nyilvános függvény updateProductCart ($ cart_virtuemart_product_id = 0, $ mennyiség = null)
a sort: if ($ mennyiség === null) $ mennyiség = vRequest :: getInt ( 'mennyiség');
vált: if ($ mennyiség === null) $ mennyiség = vRequest :: getFloat ( 'mennyiség');
3) privát funkció checkForQuantities ($ termék, $ Mennyiség = 0, $ ERRORMSG = '')
a sort: if ($ mennyiség <1) меняем на: if ($quantity <0.01) / Здесь вы можете указать свой минимальный порог
4) függvény prepareAjaxData ($ checkAutomaticSelected = false)
találni: $ this-> adat-> termékek [$ i] [ 'product_sku'] = $ termék-> product_sku;
add alábbi: $ this-> adat-> termékek [$ i] [ 'product_mpn'] = $ termék-> product_mpn;
Szerkeszteni a fájlt: site.com/components/com_virtuemart/views/cart/tmpl/default_pricelist.php
Miután szerkesztési funkciókat funkció prepareAjaxData () objektum a változó $ helyezése lesz product_mpn.
És ez elérhető lesz default_pricelist.php file:
foreach ($ this-> kazettamentes> termékek $ pkey => $ hajóorr).
echo $ prow-> product_mpn;
.
>
Ehhez:
Hozzáadás az adatbázis tábla #__virtuemart_order_items területen, például order_item_mpn varchar (255)
és módosítsa a három fájlt:
1) site.com/administrator/components/com_virtuemart/tables/order_items.php
következő sorokat:
var $ order_item_sku = NULL;
add:
var $ order_item_mpn = NULL;
2) site.com/administrator/components/com_virtuemart/models/orders.php
függvényében (kb 1145 vonal) saját függvény _createOrderLines ($ _ id, $ _cart)
következő sorokat:
$ _orderItems-> order_item_sku = $ _prod-> product_sku;
add:
$ _orderItems-> order_item_mpn = $ _prod-> product_mpn;
funkcióval (körülbelül 173 vonal) public function getOrder ($ virtuemart_order_id) a lekérdezés
(Körülbelül 201 vonal) $ q = „SELECT virtuemart_order_item_id, product_quantity.
hozzáad
$ Q = „SELECT virtuemart_order_item_id, product_quantity, order_item_mpn,.
3) site.com/administrator/components/com_virtuemart/views/orders/tmpl/order.php
Add a fejléc egy táblázatot (mintegy 430 vonal)
és a lista áruk O ciklus hozzá egy oszlopot (500 sor):
Miután oszlop hozzáadása nem felesleges, hogy rögzítse az unió sejtek az alsó táblázat sorait.
Jelenleg az alábbi csak egy asztalon sorban összesen.
Ezért helyes kódot
nevezetesen,
site.com/components/com_virtuemart/views/invoice/tmpl/invoice_items.php
A megfelelő hely az asztal be egy oszlop fejlécére (mintegy 40 storoka):
és az oszlop is (egy foreach ciklus):