Manufacturer Description

Gyártói leírás és SEO meta adatok kezelése OpenCart 3.0.x / Journal 3 áruházakhoz – OCMOD alapú, core fájl módosítás minimalizálásával. A gyártó adatai alapból az OpenCart-ban elég szegényesek, Nincs több nyelv támogatás, nincs leírás, nincs meta adat. Ez a bővítmény ezt oldja meg.

OpenCart 3.0.x Journal 3 OCMOD PHP 8.x kompatibilis v0.2

Mi ez a bővítmény?

A Manufacturer Description bővítmény lehetővé teszi, hogy az OpenCart adminisztrációs felületen minden gyártóhoz leírást és SEO meta adatokat (meta title, meta description, meta keywords) rendelj, nyelvenként külön-külön.

A megadott meta adatok automatikusan megjelennek a gyártó frontend oldalának <head> részében, javítva a keresőoptimalizálást. A leírás a gyártó oldalán jeleníthető meg a témán belül.

💡

A bővítmény az OpenCart natív OCMOD rendszerét használja, és egy önálló modul controller gondoskodik az adatbázis tábla automatikus létrehozásáról és törléséről.

Funkciók

✍️

Gyártói leírás

Szöveges leírás hozzáadása minden gyártóhoz, Summernote WYSIWYG szerkesztővel.

🔍

SEO Meta Title

Egyedi meta cím beállítása gyártónként és nyelvenként a jobb keresőmegjelenésért.

📝

Meta Description

Egyedi meta leírás megadása, ami a Google keresési találatokban jelenik meg.

🏷️

Meta Keywords

Kulcsszavak hozzárendelése gyártónként a teljes SEO kontroll érdekében.

🌐

Többnyelvű

Minden mező nyelvenként külön kezelhető – minden telepített nyelv megjelenik tabként.

⚙️

Automatikus install

Az adatbázis tábla automatikusan létrejön az Install gomb megnyomásakor.

Követelmények

Komponens Verzió / feltétel
OpenCart 3.0.x – Journal 3 témával tesztelve
PHP 7.2 vagy újabb, PHP 8.x kompatibilis
MySQL / MariaDB InnoDB támogatással (MySQL 5.7+ / MariaDB 10.2+)
FTP hozzáférés A fájlok feltöltéséhez, vagy az Extension Installer ZIP-hez
Admin hozzáférés Extensions → Modules → Install futtatásához és Modifications Refresh-hez

Fájlstruktúra

A csomag az alábbi fájlokat tartalmazza. Az upload/ mappán belüli fájlok kerülnek az OpenCart gyökerébe, az install.xml az OCMOD motor által kerül feldolgozásra.

manufacturedescription_oc3/
├── install.xml                                       ← OCMOD módosítási definíció
└── upload/
    └── admin/
        ├── controller/extension/module/
        │   └── manufacturer_desc.php             ← install / uninstall / index
        └── language/en-gb/extension/module/
            └── manufacturer_desc.php             ← language strings

Az OCMOD az alábbi meglévő OpenCart fájlokat módosítja telepítéskor:

Módosított core fájlok (OCMOD által, nem kerülnek felülírásra):
├── admin/controller/catalog/manufacturer.php
├── admin/model/catalog/manufacturer.php
├── admin/view/template/catalog/manufacturer_form.twig
├── admin/language/en-gb/catalog/manufacturer.php
├── catalog/controller/product/manufacturer.php
├── catalog/model/catalog/manufacturer.php
└── catalog/view/theme/*/template/product/manufacturer_info.twig
⚠️

Az OCMOD nem írja felül a fájlokat – a módosításokat runtime alkalmazza a cache-be. Az eredeti core fájlok érintetlenek maradnak.

Telepítési lépések

1

Fájlok feltöltése FTP-vel

Töltsd fel az upload/ mappa tartalmát az OpenCart gyökérkönyvtárába, és az install.xml fájlt a csomag gyökerébe (Extension Installer esetén ZIP-be csomagolva).

2

OCMOD frissítés

Navigálj: Admin → Extensions → Modifications, majd kattints a Refresh gombra. Ez aktiválja az install.xml-ben definiált módosításokat.

3

Modul telepítése

Navigálj: Admin → Extensions → Extensions → Modules, keresd meg a Manufacturer Description bejegyzést, és kattints az Install gombra. Ez létrehozza az adatbázis táblát.

4

Ellenőrzés

Nyisd meg bármelyik gyártó szerkesztő oldalát az adminban: Catalog → Manufacturers → Edit. A form alján meg kell jelennie a leírás és meta mezőknek, nyelvi tabokkal.

Eltávolítás

Az Uninstall gomb (Extensions → Modules) törli az adatbázis táblát és az összes gyártói leírást.

🗑️

Figyelem: az Uninstall az oc_manufacturer_description táblát teljesen törli, az összes megadott leírással és meta adattal együtt. Ezt megelőzően készíts adatbázis mentést.

Az OCMOD módosítások eltávolításához: Extensions → Modifications → keresd meg a Manufacturer Description bejegyzést → töröld → Refresh.

Tábla struktúra

CREATE TABLE IF NOT EXISTS `oc_manufacturer_description` (
  `manufacturer_id`   int(11)        NOT NULL,
  `language_id`       int(11)        NOT NULL,
  `description`       text           NOT NULL,
  `meta_title`        varchar(255)   NOT NULL,
  `meta_description`  varchar(255)   NOT NULL,
  `meta_keyword`      varchar(255)   NOT NULL,
  PRIMARY KEY (`manufacturer_id`, `language_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
Mező Típus Leírás
manufacturer_id int(11) PK A gyártó azonosítója – az oc_manufacturer táblából.
language_id int(11) PK A nyelv azonosítója – az oc_language táblából. A PRIMARY KEY páros garantálja, hogy gyártónként és nyelvenként csak egy sor létezhet.
description text A gyártó leírása HTML formátumban (Summernote szerkesztővel töltik ki).
meta_title varchar(255) A gyártó oldalának <title> tagje. Kötelező mező, 3–255 karakter között.
meta_description varchar(255) A <meta name="description"> tartalma. A Google keresési snippetben jelenik meg.
meta_keyword varchar(255) A <meta name="keywords"> tartalma, vesszővel elválasztott kulcsszavak.

Admin kezelés

A bővítmény telepítése után a gyártó szerkesztő oldalán (Catalog → Manufacturers → Edit / Add) a form alján új szekció jelenik meg, nyelvi tabokkal.

Leírás mező

A leírás mezőhöz a Summernote WYSIWYG szerkesztő tölt be automatikusan, így formázott szöveget, képeket és linkeket is el lehet helyezni a gyártói leírásban.

Meta Title (kötelező)

A meta cím kitöltése kötelező – legalább 3, legfeljebb 255 karakter. Ha a mentés előtt üres vagy túl rövid, validációs hibaüzenet jelenik meg. Ez az érték kerül a frontend oldal <title> tagjébe.

Meta Description és Meta Keywords

Mindkét mező opcionális, de SEO szempontból erősen ajánlott kitölteni. A meta description ideális hossza 120–160 karakter.

💡

Minden nyelvi tabban külön tölthetők ki az adatok. Ha egy gyártóhoz nincs leírás mentve egy adott nyelven, a frontend oldalon az oc_manufacturer_description tábla LEFT JOIN-nal csatlakozik, így a gyártó oldala üres leírás esetén is hibátlanul betölt.

Frontend megjelenés

Meta adatok a <head>-ben

A gyártó oldalán (/index.php?route=product/manufacturer&manufacturer_id=X) az alábbi meta tagek kerülnek be automatikusan:

<title>{{ meta_title }}</title>
<meta name="description" content="{{ meta_description }}">
<meta name="keywords"    content="{{ meta_keyword }}">

Leírás megjelenítése

A leírás a manufacturer_info.twig sablonban jelenik meg, a termékek listája előtt:

{% if (description is not empty) %}
  {{ '<div>' ~ description ~ '</div>' }}
{% endif %}
⚠️

A Journal 3 téma egyedi manufacturer_info.twig fájlt használhat. Az OCMOD * wildcard-ja minden témára alkalmazza a módosítást, de ha a Journal saját cache-t épít a sablonokhoz, szükség lehet a Journal cache ürítésére is.

OCMOD módosítások – technikai részletek

Admin controller – manufacturer.php

Betölti a nyelvi stringeket, a telepített nyelvek listáját, és kezeli a POST adatokból érkező leírásokat. Ha a gyártónak már van mentett leírása, a getManufacturerDescriptions() modell metódussal tölti be.

Admin model – manufacturer.php

Új getManufacturerDescriptions($manufacturer_id) metódus kerül be, valamint az addManufacturer és editManufacturer metódusok kiegészülnek az oc_manufacturer_description tábla írásával. A deleteManufacturer a leírásokat is törli.

Catalog model – manufacturer.php

A gyártó lekérdező SQL LEFT JOIN-nal csatlakoztatja az oc_manufacturer_description táblát az aktuális nyelv szerint:

SELECT * FROM oc_manufacturer m
  LEFT JOIN oc_manufacturer_to_store m2s
         ON (m.manufacturer_id = m2s.manufacturer_id)
  LEFT JOIN oc_manufacturer_description md
         ON (md.manufacturer_id = m.manufacturer_id
        AND  md.language_id = '[aktuális nyelv]')
 WHERE m.manufacturer_id = '[id]'
   AND m2s.store_id = '[store_id]'

A LEFT JOIN garantálja, hogy ha egy gyártóhoz nincs még leírás felvíve, a gyártó oldala akkor is hibátlanul betölt – nem kap üres találatot a lekérdezés.

Hibaelhárítás

Tünet Lehetséges ok és megoldás
A leírás/meta mezők nem jelennek meg a gyártó szerkesztőben Az OCMOD Refresh nem futott le. Navigálj: Extensions → Modifications → Refresh.
A Manufacturer Description nem jelenik meg a Modules listában Az upload/admin/controller/extension/module/manufacturer_desc.php vagy a language fájl hiányzik. Ellenőrizd, hogy mindkét fájl feltöltésre került.
Install gomb hibát dob Az oc_manufacturer_description tábla már létezik, vagy az adatbázis jogosultság hiányzik. Ellenőrizd phpMyAdmin-ban, és szükség esetén töröld a táblát manuálisan, majd nyomj újra Install-t.
A gyártó frontend oldala nem tölt be (üres oldal / hiba) Az OCMOD módosítás alkalmazása előtt a gyártóhoz nem volt leírás felvíve és INNER JOIN volt a lekérdezésben. A v0.2-es verzióban ez LEFT JOIN-ra javítva – frissíts a legújabb verzióra és futtass Modifications Refresh-t.
A meta title validáció hibásan működik PHP 8-on A régi verzió utf8_strlen()-t használt, ami PHP 8-ban nem elérhető natívan. A v0.2-es verzió mb_strlen()-re javítja ezt.
A leírás a frontend Journal témában nem jelenik meg Ürítsd a Journal cache-t az admin felületen (Journal → Settings → Cache Clear). A Journal saját cache mechanizmusa felülírhatja az OCMOD által módosított twig sablont.
Több gyártó leírásai összekeverednek Valószínűleg OC oldal cache probléma. Ürítsd az OpenCart cache-t: Dashboard → kék fogaskerék → Refresh, vagy töröld a system/cache/ mappa tartalmát FTP-vel.

A bővítmény kizárólag az oc_manufacturer_description táblát hozza létre és kezeli. Eltávolítás után az áruház visszaáll az eredeti állapotba – a core fájlok nem módosultak.