Cél:
Reklámeszközökkel foglalkozó cég webshopjában a felhasználók a termékoldalon egyedileg tudják megadni a szélesség/magasság/mennyiség értékeket. Akár többet is. A rendszer a megadott szélesség/magasság/mennyiség adatok alapján kiszámolja az adott négyzetmétert.
A termékenként megadott sávos árak alapján kiszámítja az árat (sávos ár*négyzetméter) és ezzel az árral teszi bele a terméket a kosárba. Vagyis a termék ára a bevitt értékektől és a termék adatlapján megadott sávos áraktól függ.
Specifikáció
Product Display: Kalkulátor
Product Variation Type): Kalkulátor
A működéshez szükséges mezők (a sok közül, amiket itt nem sorolok mind fel, mert nem releváns)
Ezek a termékhez (product variation type) tartozó mezők, amelyek a termék felvitelekor látszanak
- Maximális (tekercs) szélesség (egész,cm): az egyik bevitt méret (szélesség, vagy magasság) nem lehet ennél nagyobb
- Maximális (tekercs) magasság (egész,cm): az egyik bevitt méret (szélesség, vagy magasság) nem lehet ennél nagyobb
Példa: 150*130-as maximális méretnél valaki beüt egy 130*150-as méretet (elvileg nem jó, mert a magasság 150, holott 130 a max méret), akkor azt el kéne fogadnia a rendszernek, mert mindegy hogy fekvő, vagy álló lesz a nyomat (úgy teszik rá a vázra, ahogy kell). Tehát illessze rá a méretet fordítva. Ha egyáltalán nem passzol (pl: 160*140), akkor hibaüzenet:
Hibaüzenet: Ennek a nyomdai terméknek a maximális mérete xxx * xxx cm. Adjon meg kisebb értéket vagy válasszon más, szélesebb anyagot! - Minimális rendelhető mennyiség (egész, négyzetméter): erre a tételek felvitelénél lesz szükség az ellenőrzéskor. Ha például a minimális rendelhető mennyiség 15 négyzetméter, de a user csak 13-at rendelne, akkor hibaüzenet.
Hibaüzenet: Ennek a nyomdai terméknek a minimális rendelési tétele xx négyzetméter. - Bekerülési költség / m2 (ár mező, Ft) jelentéshez kell
- Sávos ár mezőcsoport (minden terméknél egyedi értékek lesznek, ezért kell ezt a termékhez rendelni): A tételek megadásakor az összesített négyzetméter alapján a rendszer ezek közül választja ki a sávos alapárat.
0 – 0,99* m2 (ár, Ft)
1 – 2,99* m2 (ár, Ft)
3 – 4,99* m2 (ár, Ft)
5 – 9,99* m2 (ár, Ft)
10 – 19,99* m2 (ár, Ft)
20 – 29,99* m2 (ár, Ft)
30 – 39,99* m2 (ár, Ft)
40 – 49,99* m2 (ár, Ft)
50m2 felett (ár, Ft) - Ár (commerce price, ár mező): ez alapértelmezetten nem kerül kitöltésre, mert ide kerül majd be a kalkulált ár. Ennek kiszámítása: sávos ár*(Terület)Mennyiség
Line item type (Tételtípus): kalkulator
A kalkulátor beviteli mezőinek megvalósítására egy filed collection mezőt hoztam létre, aminek 4 eleme van. Az első 3 mezőt a felhasználó tölti ki, míg a negyedik az ‘Összesen’ pedig egy read only mező kéne legyen, ami automatikusan megkapja az első 3 mezőbe bevitt értékekből számított értékét. Egy sor egy tétel. Több sort (tételt is hozzáadhat a felhasználó.)
- Szélesség (decimális, cm, kötelező): a felületen megadandó szélesség mező
- Magasság (decimális, cm, kötelező): a felületen megadandó magasság mező
- (Tétel)Mennyiség (egész, db, kötelező): a felületen megadandó mennyiség mező
- Összesen (decimális, m2): ez a sor ( vagy sorok) végén lévő read only mező, ami a szélesség*magasság*mennyiség/10000 (a négyzetméter miatt) számított értéke (egy tizedesjegyig)
A tételek megadásakor az alábbi mezők kapnak értéket (Ezek a mezők is a tételtípushoz kerülnek, de nem lehet őket szerkeszteni, mivel automatikusan kapják az értéküket):
- (Terület)Mennyiség (decimális, négyzetméter): ez a rendeléshez tartozó mennyiség read only mező, ami a fenti “Összesen” mező értékeinek az összege.
- Ár/m2: ez a mező a termék adatlapján megadott értékekből kapja meg azt a sávos értéket, amibe a fenti Terület(Mennyiség) mező tartozik.
- Ár: ez a mező a fenti két mező szorzata: Terület(Mennyiség) * Ár/m2. Fontos hogy ennek a mezőnek az értéke legyen a termék ára, vagyis a termék ezzel az árral kerüljön be a kosárba.
Ez a mező pedig a fenti 3 mező (Szélesség/Magasság/Tétel(mennyiség)) kitöltéseitől függ:
- Tételek (hosszú szöveg): ide kerülnek be a hozzáadott tételek, így látható lesz, hogy a felhasználó milyen tételeket állított össze.
(formázva, tételenként egy sor pl: 100 × 200 cm (10 db)
Kosárba tételkor a rendelés következő mezői megkapják a számításban kiszámolt értékeket:
Product: Termék neve
Tételek: ide kerülnek a tételek soronként
Price, Ár (commerce price, ár mező): a sávos m2 árat kapja meg
Quantity, Mennyiség: ez a szumma m2 értékét kapja meg. (Ezt a mezőt ne lehessen módosítani)
Total, Összesen (ár*mennyiség)
Ezt a fajta terméket az admin által létrehozott rendeléseknél is fel lehessen venni:
/admin/commerce/orders/add
Csak drupal modulokkal ez nem oldható meg, ezért a drupalon kívül érts a PHP-hoz és a Jqueryhez.
Megegyezés szerinti fizetség, tesztrendszer, személyes egyeztetés, stb, amire még szükség van.