OpenCart 3.0.3.x – 3.0.5.x PHP 7.x / 8.x Admin kiegészítő OCMOD

Order Admin Tools

Rendelés kezelést könnyítő segítő kiegészítések, az OpenCart rendeléskezelő felületét egészítik ki. Az Order Status Colors a rendelés listán háttérszínnel jelöli a státuszokat és email cím szerint szűrhetővé teszi a listát. Az Order History Indicator a rendelés részletek oldalán jelzi, ha az ügyfélnek korábbi rendelései is vannak, és megjeleníti a termékek raktári helyét.

Mit csinál?

Rendelés lista (sale/order)

  • A státusz-cella háttérszíne státuszonként egyedileg beállítható az admin felületen — kódszerkesztés nélkül.
  • A szűrősávban megjelenik egy Email keresőmező — részleges egyezéssel (LIKE '%…%') keres az oc_order.email mezőben.
  • Az összeg szerinti szűrőmező rejtve van (a szűrési logika megmarad, csak az input nem látható).

Rendelés részletek (sale/order/info)

  • A Beállítások panelben megjelenik egy sor a kapcsolódó rendelések számával: zöld gomb ha minden rendben, piros gomb ha van köztük negatív státuszú rendelés. Ha nincs más rendelés, a sor nem jelenik meg.
  • Regisztrált vásárlóknál customer_id alapján, vendégeknél email alapján (kis-nagybetű független) keres. Az aktuális rendelést és a 0 státuszút kizárja.
  • Minden megrendelt termék neve alatt — ha az oc_product.location nem üres — kis szürkével megjelenik a termék raktári helye. Csak olvasható, nem szerkeszthető.

Hogyan működik?

1

Státusz háttérszín – CSS generálás

Az Order Status Colors beállítási oldalán mentéskor a ModelExtensionModuleOrderColors::writeCss() felülírja az admin/view/stylesheet/order_colors.css fájlt. Minden státuszhoz egy CSS sor keletkezik, amely a státusz-cella data-status attribútumát célozza:

CSS – generált példa
td[data-status="Feldolgozás alatt"] { background-color: #fff3cd !important; }
td[data-status="Kiszállítva"]      { background-color: #d4edda !important; }
td[data-status="Törölve"]          { background-color: #f8d7da !important; }

A data-status attribútumot az OCMOD injektálja az order_list.twig státusz-cellájára (<td>). A CSS fájlt szintén az OCMOD linkeli be a {{ footer }} elé. A színek az oc_setting táblában tárolódnak (module_order_colors_colors kulcs), külön tábla nem keletkezik.

2

Email szűrő – twig + controller + model OCMOD

Az összeg szűrő mezőt az OCMOD email mezőre cseréli: a label és az input is új értéket kap (name="filter_email"), az eredeti összeg input hidden mezőként marad. Mivel a szűrő gomb JS-sel építi fel az URL-t (nem form submit), az OCMOD a JS blokkba is beilleszt egy sort, amely hozzáfűzi a filter_email paramétert az URL-hez.

A controllerben az OCMOD a $filter_data tömbbe közvetlenül beleírja a filter_email GET paraméter értékét, és visszaadja a twig-nek is (hogy az input megőrizze az értékét lapozáskor). A modellben (getOrders()) a rendezési tömb ($sort_data) elé kerül egy AND o.email LIKE '%…%' WHERE feltétel — ez az egyedi anchor, amely csak a getOrders() függvényben szerepel.

3

Kapcsolódó rendelések badge – controller + twig OCMOD

Az OCMOD a setOutput hívás elé injektál egy kódblokkot az info() metódusban. Ez betölti az OrderHistoryIndicator modellt, és a getOrderSummary() SQL lekérdezés alapján beállítja a $data['ohi_row'] változót — egy kész <tr> HTML stringként (zöld vagy piros Bootstrap gombbal) vagy üres stringként ha nincs találat. Regisztrált vásárlónál customer_id alapján, vendégnél email alapján keres; az aktuális és a 0 státuszú rendeléseket kizárja. A twig az {{ ohi_row }} változót az invoice sor elé szúrja be.

4

Termék raktári hely – controller + twig OCMOD

A $data['vouchers'] sor elé injektált foreach ciklus minden termékhez lekéri a location mezőt az oc_product táblából, és hozzáadja a $data['products'] tömb megfelelő eleméhez. A twig OCMOD a {% for option in product.option %} sort lecseréli: ha a location nem üres, egy <small class="text-muted"> elemben megjeleníti a termék neve alatt, az opciók előtt.

1. Fájlok másolása

Másold az upload/ mappa tartalmát az OpenCart gyökérkönyvtárába. Az install.xml az OpenCart gyökérbe kerül (nem az upload/ mappán belül).

upload/admin/
  ├── controller/extension/module/order_colors.php — Order Status Colors beállítások oldal
  ├── controller/extension/module/orderhistoryindicator.php — Order History Indicator beállítások oldal
  ├── model/extension/module/order_colors.php — CSS fájl generálása (writeCss)
  ├── model/extension/module/orderhistoryindicator.php — kapcsolódó rendelések SQL lekérdezés
  ├── view/template/extension/module/order_colors.twig — színválasztó felület
  ├── view/template/extension/module/orderhistoryindicator.twig — negatív státuszok konfigurálása
  ├── view/stylesheet/order_colors.css — generált CSS (mentéskor felülíródik, írható legyen)
  ├── language/en-gb/extension/module/order_colors.php — angol
  ├── language/en-gb/extension/module/orderhistoryindicator.php — angol
  ├── language/hu-hu/extension/module/order_colors.php — magyar
  └── language/hu-hu/extension/module/orderhistoryindicator.php — magyar
Fontos: Az admin/view/stylesheet/order_colors.css fájlnak írhatónak kell lennie a webszerver számára (ajánlott jogosultság: 644, könyvtár: 755).

2. OCMOD aktiválása

1

Extensions → Modifications

Admin felületen: Extensions → Modifications menüpont.

2

Refresh gomb

Kattints a jobb felső sarokban lévő Refresh (fogaskerék) gombra. Ez újraalkalmazza az összes aktív OCMOD-ot, beleértve az install.xml-t is.

Fontos: Ha Twig template cache van engedélyezve, töröld a system/storage/cache/template/ mappa tartalmát is, különben a twig módosítások nem látszanak.

3. Modulok telepítése

Admin felületen: Extensions → Extensions, majd a típus legördülőből válaszd a Modules lehetőséget. Mindkét modult telepíteni kell:

1

Order Status Colors – Install

Keresd meg az Order Status Colors sort és kattints a zöld Install ikonra.

2

Order History Indicator – Install

Keresd meg az Order History Indicator sort és kattints a zöld Install ikonra.

4. Beállítások

Order Status Colors

1

Edit megnyitása

Az Order Status Colors sor végén kattints az Edit (ceruza) ikonra.

2

Színek kiválasztása

Minden státuszhoz egy színválasztó jelenik meg. Ha egy státuszhoz nem szeretnél háttérszínt, hagyd fehéren (#ffffff).

3

Mentés

Mentéskor a modul automatikusan generálja az order_colors.css fájlt. A rendelés lista azonnal az új színekkel jelenik meg.

Order History Indicator

1

Edit megnyitása

Az Order History Indicator sor végén kattints az Edit (ceruza) ikonra.

2

Modul engedélyezése

A Status legördülőből válaszd az Enabled értéket.

3

Negatív státuszok kijelölése

Jelöld be azokat a rendelési státuszokat, amelyek negatívnak számítanak (pl. Cancelled, Denied). Ha ilyen státuszú rendelést talál az ügyfélnél, a badge piros lesz.

4

Mentés

Kattints a jobb felső sarokban lévő Save gombra.

Fájlszerkezet

orderhistoryindicator/
├── install.xml — OCMOD manifest (12 operation, 4 core fájl)
├── docs/
│   ├── orderhistoryindicator-oc3.html — ez a dokumentáció
│   └── docs.css — stíluslap
└── upload/admin/
    ├── controller/extension/module/order_colors.php — színbeállítás, CSS generálás indítása
    ├── controller/extension/module/orderhistoryindicator.php — negatív státuszok konfigurálása
    ├── model/extension/module/order_colors.php — writeCss(): CSS fájl generálása
    ├── model/extension/module/orderhistoryindicator.php — getOrderSummary(): kapcsolódó rendelések SQL
    ├── view/template/extension/module/order_colors.twig — színválasztó felület
    ├── view/template/extension/module/orderhistoryindicator.twig — negatív státuszok felület
    ├── view/stylesheet/order_colors.css — generált CSS (mentéskor felülíródik)
    └── language/{en-gb,hu-hu}/extension/module/ — order_colors.php + orderhistoryindicator.php

OCMOD – mit módosít?

Core fájlOperationMit csinál
sale/order_list.twig replace data-status attribútum a státusz <td>-re (CSS szín célzáshoz)
sale/order_list.twig before order_colors.css belinkelése {{ footer }} elé
sale/order_list.twig replace Összeg szűrő label + input cseréje Email mezőre; összeg hidden inputra kerül
sale/order_list.twig before filter_email JS paraméter hozzáfűzése az URL-hez a szűrő gomb click handlerében
controller/sale/order.php after × 2 filter_email átadása a modellnek ($filter_data) és visszaadása a twig-nek
controller/sale/order.php before location mező hozzáadása $data['products'] minden eleméhez
controller/sale/order.php before $data['ohi_row'] kiszámítása (badge HTML) setOutput előtt
model/sale/order.php before × 1 Email LIKE WHERE feltétel a getOrders()-ben (anchor: $sort_data)
sale/order_info.twig before {{ ohi_row }} badge sor az invoice sor elé
sale/order_info.twig replace Termék location megjelenítése a termék neve alatt, opciók előtt

Hibaelhárítás

Nem jelennek meg a háttérszínek

  • Ellenőrizd az OCMOD állapotát: Extensions → Modifications — az Order History Indicator legyen zöld. Ha nem, futtasd a Refresh-t.
  • Töröld a Twig cache-t: system/storage/cache/template/ mappa ürítése.
  • Ellenőrizd az admin/view/stylesheet/order_colors.css tartalmát — ha üres, a mentés nem írta felül (jogosultsági probléma: fájl legyen 644).
  • A státusz neve kulcsként szerepel a CSS selectorban. Ha az admin felület más nyelven van mint amin a státuszok generálódtak, a CSS nem egyezik.

Az email szűrő nem szűr

  • Ellenőrizd hogy az OCMOD Refresh lefutott-e és a cache törölve lett-e.
  • A szűrés az oc_order.email mezőben keres — guest és regisztrált rendeléseknél egyaránt.

A kapcsolódó rendelések badge nem jelenik meg

  • Ellenőrizd hogy az Order History Indicator modul Enabled státuszra van-e állítva.
  • Ha az ügyfélnek tényleg nincs más rendelése (count = 0), a sor szándékosan nem jelenik meg.

Mindig piros a badge

  • Ellenőrizd a beállításokban a negatív státuszok listáját — ha egy státusz sincs kijelölve, soha nem lesz piros.
Általános tipp: Minden telepítés vagy módosítás után: OCMOD Refresh + system/storage/cache/template/ törlése. A böngésző DevTools-ban (F12) ellenőrizd, hogy a státusz-cellán megjelenik-e a data-status attribútum, és hogy az értéke egyezik-e a generált CSS selectorral.

Változásnapló

VerzióDátumVáltozás
2.0.0 2026-04-07 Order Status Colors integrálva: státusz háttérszín OCMOD alapon (td[data-status] selector), email szűrő a rendelés listán, összeg szűrő elrejtve. Egységes csomag, egyetlen install.xml.
1.1.0 2026-04-06 Termék location mező megjelenítése a rendelés részleteken. OCMOD: twig replace + controller foreach.
1.0.0 2026-04-05 Első kiadás. Kapcsolódó rendelések badge (zöld/piros). OCMOD: twig injection + controller injection. Negatív státuszok konfigurálhatók.