Drupal Commerce egyedi átalakítása vagy új modul készítése

Szabó Gábor képe

Egy drupal commerce (dc) alapú webshop készülése közben derült ki egy kardinális probléma, ami a dc működési logikájából fakad: a product és a product display kezelése nem felel meg a cég egyedi termékeinek, de ez reményeink szerint a dc egyedivé tételével megoldható lehet. A drupal és a dc által nyújtott szolgáltatásokról nem szeretnének lemondani, ezért - ha lehetséges - a drupal commerce átalakításával kéne megoldani, de mindenképp a drupalon belül. A leírásban a dc-re alapozva írom

A módosítás oka
A webshopban lévő termékek reklámeszközök, amelyek kezelése eltér a hagyományos termékekétől.
Itt alapszerkezetek és nyomdai termékek vannak, kiegészítve variációs és méret tulajdonságokkal.
Ezek kombinációiból áll össze egy-egy termék. Tehát egy termék így néz ki:

http://dev.maxa.hu/product/roll-standard

Rollup standard

Magyarázat:

  • Termék neve: Roll-up Standard
  • Variáció: Exluzív (A variációból és a méretből állnak össze fősorok)
  • Méret: 50x150, 85x200, 100x200, 120x200, 150x200, 200x200
  • Állvány nyomtatás nélkül: ez maga egy konkrét termék:
    az alapszerkezet (1. termékfajta - lásd lentebb).
    Ára a terméknél beállított ár.
  • Laminált roll-up film nyomattal (és a többi): ez egy termékmix, ami tartalmazza a nyomdai terméket ( 2. termékfajtát - lásd lentebb) és az alapszerkezetet.
  • Ára az alapszerkezet ára + (a nyomdai terméknél beállított négyzetméter ár * a méretnél megadott értékkel) (a nyomdai terméket úgy adjuk itt hozzá, hogy a m2 árat és a mennyiséget is itt adjuk meg(m2))

Kosárba téve:

  • Ha az alapszerkezetet teszi kosárba akkor egyszerű a helyzet, úgy működik, mint a dc-ben.
  • Ha egy termékmixet tesz a kosárba, akkor a termékmixben lévő termékeket kell a kosárba tennie: az alapszerkezetet és a nyomdai terméket.

Amiben eltér a drupal commerce funkcionalitásától:

  • A dc-ben az egyes product displayekbe csak termékeket tudunk tenni. Itt a product displayben a termék felvétel funkciója mellett szükség van a termékekből összeállított termékmixek, termékcsomagok felvételére is.
  • A dc-ben minden egyes variációra létre kellett hozni külön terméket (pl: méret szerint). Itt a termékmix befoglalójában (legjobb szó erre: product display a product displayben) jelöljük az egyes variációkat (pl a méretet), így a termékek száma jóval kevesebb és átlátható lesz. Csak az alapszerkezetek és a nyomdai termékeket kell felvenni.
    Példa: Ha 8 alapszerkezetet és 5 nyomdai terméket viszünk föl, akkor ebből létre lehessen hozni méretek és variációk szerint akárhány terméket (termékmixekben) anélkül, hogy 13 db terméknél több lenne a rendszerben. Tehát a termékmixek csak virtuálisan, logikailag fogjanak csokorba termékeket(,ahogy a product display is).
  • Épp ezért a dc-ben, mivel az egyes méret szerinti termékek külön cikkszámon futottak, ezért kosárba tételnél külön tételként is szerepeltek. Itt most az a lényeg, hogy ha pl 3 féle méretű nyomdai terméket (pl: laminált rollup film nyomattal 85*200, laminált rollup film nyomattal 100*200, laminált rollup film nyomattal 120*200 ) teszünk a kosárba akkor (ahogy normál esetben is) a kosárba jelenjen meg minden “tétel” soronként vagyis
    Roll up Standard 85x200, Laminált roll-up filmmel - 1db
    Roll up Standard 100x200, Laminált roll-up filmmel - 1db
    Roll up Standard 120x200, Laminált roll-up filmmel - 1db

DE: de az admin résznél az eladásoknál fontos, hogy a “Laminált rol-up film” nyomdai termék legyen felszámolva (a kimutatásban, jelentésben)

Vagyis a fenti 3 termékvariáció megrendelésekor ezek fogynak a nyilvántartásból:
Roll up Standard 85x200 szerkezet - 1db
Roll up Standard 100x200 szerkezet - 1db
Roll up Standard 120x200 szerkezet - 1db
Laminált roll-up film - 6,1 m2

Lehetséges működés

1. Termék (product) létrehozása (külön-külön a háttérben)

/admin/commerce/products/add/product

1.termékfajta: Alapszerkezet - mezői

  • Cikkszám
  • Beker ár (db)
  • Ár
  • Beszállító
  • Készlet
  • Kategória (lenyíló lista)

2.termékfajta: Nyomdai termék - mezői

  • Cikkszám
  • Beker ár / m2
  • Ár / m2
  • Beszállító
  • Készlet (ne legyen kötelező kitölteni, mert nem fogjuk vezetni a raktáron lévő anyagokat)
  • Kategória (lenyíló lista. Ugyanaz a lista, mint az alapszerkezetnél)

2. Termék felvitele a webshopba (Product display)

  • Tulajdonságok hozzáadása: Méret, variáció legördülőkben (ezzel alakul ki a lista és ártáblázat szerkezete) - lásd lenti ábra
  • Gyártási idő (szövegmező): x munkanap, raktáron
  • Termékfajták variációinak összeállítása
    - Alapszerkezet hozzáadása, darabszám megadásával
    - Alapszerkezet hozzáadása, darabszám megadásával + Nyomdai termék hozzáadása, m2 és m2 ár megadásával (a m2 árat és a mennyiséget is itt adjuk meg(m2))

Mentéskor automatikusan hozza létre az ártáblázatot a kosárba tesz gombokkal.
Ártáblázat

A kosárba tesz gombok létrehozását a Commerce Add to Cart Filter modul által biztosított shortcode segítségével lehet most megoldani:
[ product-button:PRODUCTID title=BUTTONTEXT ]

3. Kalkulátor felvitele a webshopba (Product display)


Kalkulátor

Ez egy másik product display, ahol hivatkozunk egy nyomdai termékre (2. termékfajta), megadunk pár adatot* (lásd lejjebb), majd a méreteket és a mennyiséget a felhasználó viszi be.
A kosárba a hivatkozott nyomdai termék kerül be a felhasználó által megadott méretekből kiszámolt mennyiséggel (m2) és a mennyiségből kiszámolt árral.

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

A felhasználó által bevitt értékek mezői:

  • Szélesség (decimális, cm): a felületen megadandó szélesség mező
  • Magasság (decimális, cm): a felületen megadandó magasság mező
  • (Tétel)Mennyiség (egész, db): a felületen megadandó mennyiség mező

*A megadott pár adat a felvitelkor:

  • Maximális tekercs szélesség: cm
  • Maximális tekercs magassága: cm
  • Minimális rendelhető mennyiség: m2
  • Sávos ár mezőcsoport (minden terméknél egyedi értékek lesznek, ezért kell ezt a termékhez rendelni)
    0 – 0,99* m2 (ár, Ft)
    1 – 2,99* m2 (ár, Ft)
    3 – 4,99* m2 (ár, Ft)
    5 – 9,99* v (á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)

Admin rendelés

/admin/commerce/orders/add

A drupal commerce által adott lehetőség (meglévő ügyfél kiválasztása, vagy új létrehozása) után az alábbi lehetőségek közül lehessen választani.

Termék felvitele: a 2-es pont szerint
Kalkulátor felvitele: a 3-as pont szerint



---------------
Kérdés esetén állok rendelkezésre (privát üzenetben).
Köszönöm, hogy elolvastad.
-----------------------

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

Olyan embert, céget keresek, akik azt csinálják, amit mondanak és ígérnek.

Jelentkezés határideje: 
2017. 01. 15
Szükséges tapasztalat szintje: 
haladó
Buzzwords: 
ekereskedelem
modulfejlesztés
webáruház
Szervezet megnevezése: 
magánszemély
Kapcsolattartó neve: 
Szabó Gábor
Telefonszám: 
+36705158529