Kalkulátoros terméktípus készítése Drupal Commerce alá

Szabó Gábor képe

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)

Kalkulátoros termék beviteli mezők

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.

Kalkulátoros termék beviteli mezők és számított mezők

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)

Kalkulátoros termék a kosárban

Ezt a fajta terméket az admin által létrehozott rendeléseknél is fel lehessen venni:
/admin/commerce/orders/add

Munka jellege: 
Távmunka
Nyelvtudás: 
magyar
Idő igénybevétel: 
Eseti, project jellegű
Elvárások: 

Csak drupal modulokkal ez nem oldható meg, ezért a drupalon kívül érts a PHP-hoz és a Jqueryhez.

Amit a kiíró nyújt: 

Megegyezés szerinti fizetség, tesztrendszer, személyes egyeztetés, stb, amire még szükség van.

Jelentkezés határideje: 
2018. 08. 31
Szükséges tapasztalat szintje: 
középhaladó
haladó
Buzzwords: 
ekereskedelem
javascript
jQuery
modulfejlesztés
sürgős
Szervezet megnevezése: 
magánszemély
Kapcsolattartó neve: 
Szabó Gábor
Telefonszám: 
+36705158529