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.”

Virtuemart frakcionált mennyiségű áru
1. kép.
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
Virtuemart frakcionált mennyiségű áru
Picture-2.
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 ');

  • Hozzáadása a kosárba, és frissíti a számát frakcionált termékek.
    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;

  • A következtetés törtszámok termék a „Kosár” oldalon.
    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;
    .
    >

  • Levezetjük árucikkeket az admin a rendelési oldalon.
    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)
    Unit.
    é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 tovább , ez körülbelül 566 sort.

  • Továbbra is hozzá product_mpn a szervezetben az e-mail, hogy a vevő a számla. Ön kitalálta, meg kell szerkeszteni a sablon fájlt.
    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):
    Unit.

    és az oszlop is (egy foreach ciklus):