WordPress eCommerce

Ugyan eredetileg blogírással akartam múlatni az időt, a sors úgy hozta, hogy a WordPress eCommerce pluginját hackeltem. Ez, mértékadó blogok szerint, az egyik legjobbnak számít a WP webshop pluginek között. Idő hiányában hallgattam ezekre a blogokra, és a Google-re, aki ezeket a blogokat ajánlotta. A telepítés gyors és fájdalommentes. Miután automatikusan létrehozta a táblákat, ellenőrizzük le, hogy olyan adatbázis kódolással dolgozunk, ami támogatja az ékezetes betűket. A legjobb, ha utf8, mivel a WP is ezt használja.

Nálam nem így volt, ezért kisebb harcba került megállapítani, hogy hol tűnnek el az ű és ő betűk.  Sajnos hiába találtam rá a mysql beállítási gondra, a tábla kódolásának átállítása nem állította át automatikusan a megfelelő mezők kódolását is, ezt érdemes tehát leellenőrizni.

A plugin köré egy ügyes marketing fogás épült: bár maga a plugin ingyenes, használható dokumentációt nehéz találni. Kivételt ez alól a WP eCommerce Biblia képez, amelyet csupán 37$ áron magunkénak tudhatunk, elektromos formában. A könyvet ennyi pénzért nem rendelem meg (max ha papir formában adják, vagy olcsóbban), tehát marad a hackelés.

Több problémával szembesültem eddig:

  • bár vannak nyelvi fájlok (magyar is), sajnos nem minden angol nyelvi kifejezést fordítottak le
  • néhány kifejezés hard-coded, azaz a php forrásokban van
  • egyes információk megszerzése / kiiratása (pl. product group description) komoly kutató munka végzését igényli
  • lehet csoportokat létrehozni, de több termékből egy bandage-et, kötegelt csomagot nem, vagy még mindig nem találtam meg hozzá az infót.
  • sikerült egy SQL hibát fogni, ami egy termék több termékcsoportba történő linkelésénél jelentkezik. A 33 terméket hirtelen 10 oldalra akarta elhelyezni, az 5-10. oldalak pedig üresek voltak. (lásd lent)
  • egy termékhez csak egy képet lehetet beilleszteni

Kevésbé komoly probléma, de kellemetlenséget okozhat, hogy az AJAX termékfelvivő felülete csak adott számú terméket mutat meg. Ha azt csináljátok mint mi, hogy egyvalaki viszi fel a termék főbb adatait (cikkszám, kép), a másik pedig “csak” a leírással foglalkozik, akkor ne lepődjetek meg, hogy a termék listában egyszer csak leírás nélküli, kizárólag cikkszámmal rendelkező cikkekkel találkoztok. Mi meglepődtünk, hogy néhány dolgot kétszer rögzítettem.

A másik hülyeség, hogy rögzítheted az SKU-t, de azt nem tudod beállítani, hogy a termékleírásnál meg is jelenjen. Ez pedig a sok, nevében azonos, de funkciójában vagy szín, stb. eltérő terméknél kellemetlen. A megoldás az lett, hogy a terméknévbe beírtuk a cikkszámot is, de azért ez nem az igazi.

A harmadik pont, amit jó lett volna előre tudni, hogy egy termékhez hivatalosan csak egy képet lehet beilleszteni. Ezt aztán lightbox-szal az eredeti méretre zoomolhatjuk. Ha további képeket akarunk felvinni, akkor vagy a WP felületén keresztül, vagy FTP-n keresztül vigyük fel a képeket, HTML kóddal illesszük őket be a termék leírásba. Ha akarjuk a lightbox-ot is használni, akkor “szokás szerint” helyezzünk el linket a képre, adjuk meg a class='thickbox preview_link' -t (a linknél) és írjunk be valami számunka egyértelműt a rel-hez. Én a cikkszámot írtam be, a program pedig a termék nevéből kódol valami jó értéket. PHP kódot nem tudtam beilleszteni, arra meg nem volt kedvem, hogy egy esetleges terméknév változást kézzel kövessek végig a képeknél, így maradt egyszerű megoldásnak a cikkszám.

A negyedik pont, hogy az ügyfélnek nem tetszik a 128×128-as thumbnail kép, ő valami arányos kisebbítést akar (a 4:3 arány miatt a képek jobb-bal oldalát levágták). A thumbnailt persze resizolni kellene, amit mindegyikre nem tudok meghívni. De ez legyen a legkisebb gond, mert ezt egyszer eldönti az ember, és utána nem nyúl hozzá.

Amiért megtartom

Egyrészt egy csomó adatot felvittünk, és senkinek sincs kedve egy másik bevásárló rendszerre átállni. Ha az ember nem szalad el egy kis PHP kódtól, akkor egész gyorsan kijavíthatóak a kód hibái, illetve beépíthetők új feature-ék. Saját template-ekkel tud dolgozni, nagyon gyorsan hozzá tudtam illeszteni mind használatban, mind külső megjelenésben a meglévő oldalhoz. Egy hét alatt egész jól meg lehetett ismerni a program szerkezetét, legalábbis ami a termékek kilistázásának hackjeit illeti. Ha mindent beállítottunk, akkor a vezérlőpulton kellemes felület kapunk.

Azt a site felépítésénél tudtam, hogy a kiegészítő információk és előzetes ismereteim alapján WordPress-t fogunk használni. Végső soron akármilyen 3rd party “P plugint telepítettem volna, egy ilyen komplex feladatnál mindig előfordulhatnak olyan pontok, amelyeknél felmerül a testre szabhatóság igénye.

Bugfix:

product_display_functions.php

$ssql  = "SELECT DISTINCT COUNT(`".$wpdb->prefix."product_list`.`id`) AS `count` FROM `".$wpdb->prefix."product_list`,`".$wpdb->prefix
."item_category_associations` WHERE `".$wpdb->prefix."product_list`.`active`='1' AND `".$wpdb->prefix."product_list`.`id` = `".$wpdb->prefix."item_category_associations`.`product_id` $no_donations_sql $group_sql";

A count mindig egy értéket ad vissza, teljesen fölösleges hozzá a distinct. Írjuk át

$ssql  = "SELECT COUNT(DISTINCT `".$wpdb->prefix."product_list`.`id`) AS `count` FROM `".$wpdb->prefix."product_list`,`".$wpdb->prefix
."item_category_associations` WHERE `".$wpdb->prefix."product_list`.`active`='1' AND `".$wpdb->prefix."product_list`.`id` = `".$wpdb->prefix."item_category_associations`.`product_id` $no_donations_sql $group_sql";

-re, és helyesen fogja kiszámolni, hogy hány oldalra van szüksége.

4 Comments

Comments are closed.