wake-up-neo.net

Wie werde ich ein OpenCart-Guru?

Es scheint, als hätten sie keine Dokumentation außer einigen API-Calls in ihren offiziellen Foren. Ich habe Erfahrung mit Zend Framework und CodeIgniter Framework. Kann jeder OpenCart-Master mir empfehlen, ihn am besten zu erlernen und in kürzester Zeit zu meistern? Ich muss bald ein großes Projekt damit machen.

96
CodeCrack

OpenCart 1.5.X Entwickler-Kurzanleitung für Anfänger

Dieses Handbuch richtet sich an Entwickler, die bereits mit PHP, OOP und der MVC-Architektur vertraut sind

Im Folgenden finden Sie Beispiele für die Katalogseite des Einkaufswagens. Die Administrationsseite ist in der Funktion identisch, mit Ausnahme der Ansichten, die im entsprechenden Abschnitt angegeben sind


Bibliotheken verstehen

Alle Bibliotheksfunktionen sind über Controller, Model und Views mit $this->library_name verfügbar. Alle diese befinden sich im Ordner /system/library/. Um beispielsweise auf die Produkte des aktuellen Warenkorbs zuzugreifen, müssen Sie die Cart-Klasse verwenden, die sich in /system/library/cart.php befindet und über $this->cart->getProducts() aufgerufen werden kann.

Häufig verwendete Artikel

  • customer.php - Kundenbezogene Funktionen
  • user.php - Admin-Benutzerfunktionen
  • cart.php - Funktionen für den Wagen
  • config.php - Alle Einstellungen werden von diesem geladen
  • url.php - URL-Generierungsfunktionen

Den Routenparameter verstehen

Das OpenCart-Framework verwendet route=aaa/bbb/ccc im Parameter für die Abfragezeichenfolge, um zu wissen, was geladen werden soll, und ist die grundlegende Funktion, um die Dateien zu finden, die Sie für jede Seite bearbeiten müssen. Die meisten Routen verwenden eigentlich nur den aaa/bbb, der als zwei Teile betrachtet werden sollte, einige enthalten jedoch drei Teile aaa/bbb/ccc. Der erste Teil aaa bezieht sich im Allgemeinen auf den Ordner innerhalb eines generischen Ordners, z. B. der Controller- oder Vorlagenordner. Der zweite Teil bezieht sich normalerweise auf den Dateinamen ohne die entsprechende Erweiterung .php oder .tpl. Der dritte Teil wird im Abschnitt "Grundlegendes zu Steuerungen" erläutert


Sprachen verstehen

Die Sprachen werden im Ordner /catalog/language/ im Unterordner your-language gespeichert. In diesem werden allgemeine Textwerte, die auf verschiedenen Seiten verwendet werden, in der your-language.php-Datei im Ordner gespeichert. Für die englische Sprache auf der Katalogseite finden Sie die Werte in catalog/language/english/english.php. Für einen bestimmten Seitentext benötigen Sie die Variable route (Dies ist im Allgemeinen der Fall, nicht jedoch always, da Sie eine beliebige Sprachdatei angeben können). Die Suchseite hat beispielsweise die Route product/search. Der sprachspezifische Text für diese Seite befindet sich in catalog/language/english/product/search.php (Beachten Sie, dass der Dateiname und der Unterordner der Route mit der Route gefolgt von .php übereinstimmen.

Um die Sprache in einen Controller zu laden, verwenden Sie

$this->language->load('product/search');

Dann können Sie die Sprachbibliothek-Funktion get verwenden, um bestimmte Sprachentexte wie z. B. abzurufen

$some_variable = $this->language->get('heading_title');

Die Sprachvariablen werden in der Sprachdatei mit einer speziellen Variablen $_ zugewiesen, die ein Array von Schlüsseln und Textwerten ist. In Ihrem /catalog/language/english/product/search.php sollten Sie etwas Ähnliches finden

$_['heading_title']     = 'Search';

Die Werte in der globalen Sprachdatei english/english.php werden automatisch geladen und können ohne die $this->language->load-Methode verwendet werden


Controller verstehen

Controller werden basierend auf der route geladen und sind relativ einfach zu verstehen. Controller befinden sich im Ordner /catalog/controller/. Mit dem letzten Beispiel fortfahren, befindet sich der Controller für die Suchseite in /product/search.php in diesem Ordner. Beachten Sie erneut, dass die Route gefolgt von .php verwendet wird.

Wenn Sie die Controller-Datei öffnen, sehen Sie einen Pascal Case-Klassennamen, der die Controller-Klasse mit dem Namen ControllerProductSearch erweitert. Dies ist wiederum spezifisch für die Route, mit Controller gefolgt vom Namen des Unterordners und Dateinamen ohne die Erweiterung. Die Großschreibung ist nicht erforderlich, wird jedoch zur besseren Lesbarkeit empfohlen. Es ist erwähnenswert, dass Klassennamen außer Buchstaben und Zahlen keine Werte aus dem Unterordner und dem Dateinamen entnehmen. Unterstriche werden entfernt.Innerhalb der Klasse gibt es die Methoden. Auf public deklarierte Methoden der Klasse können über die Route ausgeführt werden - private sind nicht möglich. Standardmäßig wird bei einer zweigeteilten Standardroute (aaa/bbb oben) eine Standardmethode index() aufgerufen. Wenn der dritte Teil einer Route (ccc oben) verwendet wird, wird stattdessen diese Methode ausgeführt. Beispielsweise lädt account/return/insert die /catalog/controller/account/return.php-Datei und -Klasse und versucht, die insert-Methode aufzurufen.


Modelle verstehen

Modelle in OpenCart befinden sich im Ordner /catalog/model/ und sind nach Funktion und nicht nach Route gruppiert. Daher müssen Sie sie in Ihre Steuerung über laden

$this->load->model('xxx/yyy');

$this->model_xxx_yyy

$this->load->model('tool/image'); $this->model_tool_image->resize('image.png', 300, 200);

$this->data zuweisen, bei der es sich im Wesentlichen um ein Array von Schlüsselpaaren mit dem Wert => handelt. Als Beispiel

$this->data['example_var'] = 123;

.


Themen verstehen

Designs stehen nur für die Katalogseite zur Verfügung und sind im Wesentlichen ein Ordner mit Vorlagen, Stylesheets und Designbildern. Themenordner werden im Ordner /catalog/view/theme/ abgelegt, gefolgt vom Namen des Themas. Der Ordnername ist mit Ausnahme des Ordners default nicht von Bedeutung

Die Administratorseite verwendet /admin/view/template/ (überspringt den /theme/theme-name/ aus dem Pfad, da keine unterschiedlichen Designs zulässig sind.)

Vorlagendateien befinden sich in einem template-Ordner innerhalb des Designordners. Sollte für das aktuell ausgewählte Design keine Vorlage verfügbar sein, wird stattdessen die Vorlage des Standardordners als Fallback verwendet. Dies bedeutet, dass Themen mit sehr wenigen Dateien erstellt werden können und trotzdem voll funktionieren. Außerdem werden Code-Duplizierungen und Probleme bei Upgrades reduziert


Ansichten verstehen (Vorlagen)

Wie bei Sprache und Modellen beziehen sich die Ansichtsdateien im Allgemeinen auf die Route, müssen dies jedoch nicht. Vorlagen auf Katalogseite befinden sich normalerweise in /catalog/view/theme/your-theme/template/, sofern sie nicht vorhanden sind. In diesem Fall werden die Vorlagen der Standardthemen verwendet. Für das Beispiel unserer Suchseite lautet die Datei product/search.tpl. Für Routen mit drei Teilen ist es normalerweise in aaa/bbb_ccc.tpl, obwohl es keine feste Regel gibt. Im Admin folgen die meisten Seiten diesem, mit der Ausnahme, dass Seiten, die Artikel wie die Produktlistenseite auflisten, in catalog/product_list.tpl und das Produktbearbeitungsformular in catalog/product_form.tpl enthalten sind. Auch diese sind nicht festgelegt, sondern ein Standard für den Standardwagen.

Die Vorlagendatei ist eigentlich nur eine andere PHP-Datei, hat jedoch die Erweiterung .tpl und wird tatsächlich in der Controller-Datei ausgeführt. Daher können alle Dinge, die Sie in einem Controller codieren können, in einer Vorlagendatei ausgeführt werden notwendig).


Das Datenbankobjekt verstehen

Abfragen werden mit ausgeführt

$result = $this->db->query("SELECT * FROM `" . DB_PREFIX . "table`");

$result gibt ein Objekt für SELECT-Abfragen mit einigen Eigenschaften zurück

$result->row enthält die Daten der ersten Zeile, wenn eines oder mehrere als assoziatives Array zurückgegeben werden

$result->rows enthält ein Array mit Zeilenergebnissen, ideal für die Verwendung von foreach

$result->num_rows enthält die Anzahl der zurückgegebenen Ergebnisse

Es gibt auch einige zusätzliche Methoden, die das $this->db-Objekt hat

$this->db->escape() verwendet mysql_real_escape_string () } für den übergebenen Wert

$this->db->countAffected gibt die Anzahl der Zeilen zurück, die von einer UPDATE-Abfrage usw. betroffen sind

$this->db->getLastId() gibt die letzte Auto-Inkrement-ID mit mysql_insert_id () zurück. _


Reservierte Variablen verstehen

OpenCart hat vordefinierte Variablen, die anstelle des Standards $_GET, $_POST, $_SESSION, $_COOKIE, $_FILES, $_REQUEST UND $_SERVER verwendet werden sollen.

$_SESSION wird mit $this->session->data bearbeitet, wobei Daten ein assoziatives Array sind, das den $_SESSION imitiert.

Auf alle anderen kann mit $this->request zugegriffen werden und sie wurden "gesäubert", um die aktivierten/deaktivierten magischen Anführungszeichen zu erfüllen

$_GET wird $this->request->get

$_POST wird $this->request->post

$_COOKIE wird $this->request->cookie

$_FILES wird $this->request->files

$_REQUEST wird $this->request->request

$_SERVER wird $this->request->server


Zusammenfassung

Das obige ist zwar kein kugelsicherer Leitfaden für Entwickler, aber es ist hoffentlich ein guter Ausgangspunkt für den Einstieg

While the above isn't a bulletproof guide for developers, hopefully it will serve as a good starting point for those getting started

305
Jay Gilford

Globale Bibliotheksmethoden: Grundlegende Funktionen der OpenCart-Bibliothek zusammen mit ihren Funktionen. Die meisten davon können von überall im Katalog oder in den Verwaltungsordnern (Controller, Modelle, Ansichten) aufgerufen werden

CACHE
$this->cache->delete($key) - Deletes cache [product, category, country, zone, language, currency,
manufacturer]

CART
$this->cart->getProducts() Gets all products currently in the cart including options, discounted prices, etc.
$this->cart->add( $product_id, $qty = 1, $options = array()) - Allows you to add a product to the cart
$this->cart->remove( $key ) - Allows you to remove a product from the cart
$this->cart->clear() - Allows you to remove all products from the cart
$this->cart->getWeight() - Sum of the weight of all products in the cart that have require shipping set to Yes
$this->cart->getSubTotal() - returns the subtotal of all products added together before tax
$this->cart->getTotal() - returns the total of all products added together after tax
$this->cart->countProducts() - returns the count of all product in the cart
$this->cart->hasProducts() - returns true if there is at least one item in the cart
$this->cart->hasStock() - returns false if there is at least one item in the cart that is out of stock
$this->cart->hasShipping() - returns true if there is at least one item in the cart that requires shipping
$this->cart->hasDownload() - returns true if there is at least one item in the cart that has a download
associated

CONFIG
$this->config->get($key) - returns setting value by keyname based on application (catalog or admin)
$this->config->set($key, $value) - set the value to override the setting value. DOES NOT SAVE TO DATABASE

CURRENCY
$this->currency->set($currency) - set or override the currency code to be used in the session
$this->currency->format($number, $currency = '', $value = '', $format = TRUE) - format the currency
$this->currency->convert($value, $from, $to) - convert a value from one currency to another. Currencies must
exist
$this->currency->getId() - get the database entry id for the current currency (1, 2, 3, 4)
$this->currency->getCode() - get the 3-letter iso code for the current currency (USD, EUR, GBP, AUD, etc)
$this->currency->getValue($currency) - get the current exchange rate from the database for the specified
currency.
$this->currency->has(currency) - Check if a currency exists in the opencart currency list

CUSTOMER
$this->customer->login($email, $password) - Log a customer in
$this->customer->logout() - Log a customer out
$this->customer->isLogged() - check if customer is logged in
$this->customer->getId() - get the database entry id for the current customer (integer)
$this->customer->getFirstName() - get customer first name
$this->customer->getLastName() - get customer last name
$this->customer->getEmail() - get customer email
$this->customer->getTelephone() - get customer telephone number
$this->customer->getFax() - get customer fax number
$this->customer->getNewsletter() - get customer newsletter status
$this->customer->getCustomerGroupId() - get customer group id
$this->customer->getAddressId() - get customer default address id (maps to the address database field)

DATABASE
$this->db->query($sql) - Execute the specified sql statement. Returns row data and rowcount.
$this->db->escape($value) - Escape/clean data before entering it into database
$this->db->countAffected($sql) - Returns count of affected rows from most recent query execution
$this->db->getLastId($sql) - Returns last auto-increment id from more recent query execution 4

DOCUMENT (*Called from controller only before renderer)
$this->document->setTitle($title) - Set page title
$this->document->getTitle()- Get page title
$this->document->setDescription($description) - Set meta description
$this->document->getDescription()- Get meta description
$this->document->setKeywords()- Set meta keywords
$this->document->getKeywords()- Get meta keywords
$this->document->setBase($base) - Set page base
$this->document->getBase() - Get page base
$this->document->setCharset($charset) - Set page charset
$this->document->getCharset() - Get page charset
$this->document->setLanguage($language) - Set page language
$this->document->getLanguage()- Get page language
$this->document->setDirection($direction) - Set page direction (rtl/ltr)
$this->document->getDirection()- Get page direction (rtl/ltr)
$this->document->addLink( $href, $rel ) – Add dynamic <link> tag
$this->document->getLinks()- Get page link tags
$this->document->addStyle( $href, $rel = 'stylesheet', $media = 'screen' ) – Add dynamic style
$this->document->getStyles()- Get page styles
$this->document->addScript( $script ) - Add dynamic script
$this->document->getScripts()- Get page scripts
$this->document->addBreadcrumb($text, $href, $separator = ' &gt; ') – Add breadcrumb
$this->document->getBreadcrumbs()- Get Breadcrumbs

ENCRYPT
$this->encryption->encrypt($value) - Encrypt data based on key in admin settings
$this->encryption->decrypt($value) - Decrypt data based on key in admin settings

IMAGE
$this->image->resize($width = 0, $height = 0)

JSON
$this->json->encode( $data )
$this->json->decode( $data , $assoc = FALSE)

LANGUAGE
$this->language->load($filename);

LENGTH
$this->length->convert($value, $from, $to) - convert a length to another. units must exist
$this->length->format($value, $unit, $decimal_point = '.', $thousand_point = ',') - format the length to use
unit

LOG
$this->log->write($message) - Writes to the system error log

REQUEST
$this->request->clean($data) - Cleans the data coming in to prevent XSS
$this->request->get['x'] - Same as $_GET['x']
$this->request->post['x'] - Same as $_POST['x']

RESPONSE
$this->response->addHeader($header) - additional php header tags can be defined here
$this->response->redirect($url) - redirects to the url specified

TAX
$this->tax->setZone($country_id, $zone_id) - Set the country and zone id for taxing (integer)
$this->tax->calculate($value, $tax_class_id, $calculate = TRUE) - Calculate all taxes to be added to the total
$this->tax->getRate($tax_class_id) - Get the rates of a tax class id
$this->tax->getDescription($tax_class_id) - Get the description of a tax class id
$this->tax->has($tax_class_id) - Check if a tax class id exists in opencart

SESSION
$this->session->data['x'] - Same as $_SESSION['x']  
34
Abdul Rehman

Es gibt eine OpenCart Wiki-Website mit Dokumentation für Anfänger. __ Folgen Sie den unten angegebenen URLs, um weitere Informationen zu erhalten:

http://wiki.opencarthelp.com/doku.php?id=start
http://wiki.opencarthelp.com/doku.php?id=methods_reference

Z.B. Methodenreferenz enthält Details für:

  1. Kundenlogin
  2. DB-Zugriff
  3. Einkaufswagen-Handling
  4. Konfig
  5. Zwischenspeicher
  6. Währungsabwicklung

Es sind noch einige Seiten im Aufbau, aber es wird hilfreich sein.

[Update]

Seit Januar 2018 ist die Domain opencarhelp.com inaktiv.

8
Dharmang

Obwohl dieses Thema schon oft beantwortet wurde, möchte ich auf der Grundlage meiner Erfahrungen einen anderen Ansatz für die Beherrschung von OpenCart anbieten.

Lernen durch Tun

Indem Sie Ihr eigenes OpenCart-Framework aus einer Handvoll Dateien erstellen, können Sie nachvollziehen, wie alles zusammengesetzt ist. Ich werde die Dateistruktur von OpenCart für Sie nachahmen.

Erstelle eine Datei index.php

<?php
// My simpleCart

1. Registrierung

Opencart verwendet das Registrierungsmuster, um alle Instanzen geladener Klassen aufzulisten. Es ist das Herzstück Ihrer OpenCart-App. Das Registrierungsobjekt wird dann an jede Kategorie, jedes Modell und jede Bibliothek weitergegeben, um schnell auf andere Objekte zugreifen zu können.

erstelle eine Datei mit Pfad /system/engine/registry.php

<?php
// Registry class. 
class Registry
{
    private $data = array();

    public function set($key, $value){
        $this->data[$key] = $value;
    }

    public function get($key){
        return (isset($this->data[$key])) ? $this->data[$key] : false;
    }
}

in deinem index.php

<?php
// My simpleCart

//load dependency files
require_once('system/engine/registry.php');

//initialize registry
$registry = new Registry;

2. Ausgabe

Fügen wir nun eine Ausgabe hinzu, die in Zukunft unser HTML-Code sein wird. Schließlich ist die ganze Idee, eine Zeichenfolge von Text an den Browser zu senden.

Datei erstellen system/library/response.php

<?php
class Response {
    private $output;

    public function getOutput() {
        return $this->output;
    }

    public function setOutput($output) {
        $this->output = $output;
    }

    public function output() {
        if ($this->output) {
            echo $this->output;
        }
    }
}

und in deinem index.php

<?php
// My simpleCart

//load dependency files
require_once('system/engine/registry.php');
require_once('system/library/response.php');

//initialize registry
$registry = new Registry;

//initialize response
$response = new Response;
//add response object to the registry
$registry->set('response', $response);

//lets set an output as a test
$registry->get('response')->setOutput('Hello World');

//send the output to the client
$registry->get('response')->output();

Beachten Sie, dass ich Hello World nur als Beispiel hinzugefügt habe. Wir werden es weiter entfernen. Aktualisieren Sie Ihre Site, um sie zu überprüfen. Der Browser sollte Hello World anzeigen.

3. Steuerungen

Stellen Sie sich Controller als Seiten vor. Sie definieren, was dem Client angezeigt wird: Text, HTML, JSON, Download oder sogar ein Bild. Im Moment möchten wir nur eine Seite, die Text sendet.

Wir werden einen Controller für die Seite home erstellen.

füge eine Datei mit Pfad hinzu catalog/controller/common/home.php

<?php

class ControllerCommonHome{

    private $registry = array();

    public function __construct($registry){
        $this->registry = $registry;
    }

    public function index(){

        $output = 'Home Page';
        //using the registry to get the response object and set the Output
        $this->registry->get('response')->setOutput($output);
    }
}

und bearbeite deinen index.php

<?php
// My simpleCart

//load registry
require_once('system/engine/registry.php');
//load response
require_once('system/library/response.php');

//initialize registry
$registry = new Registry;

//initialize response
$response = new Response;
//add resoinse object to the registry
$registry->set('response', $response);

//load controller common/home
require_once('catalog/controller/common/home.php');
$controller = new ControllerCommonHome($registry);
$controller->index();

//send the output to the client
$registry->get('response')->output();

beachten Sie, wie ich den $refistry an das ControllerCommonHome übergeben habe, damit ich im Controller darauf zugreifen kann.

4. Router

Wir wollen nicht, dass Controller fest codiert werden. Wir verwenden einen Parameter route aus der URL-Adresse, um unserem Einkaufswagen mitzuteilen, welcher Controller geladen werden soll.

Erstelle eine Datei mit Pfad system/library/request.php

<?php
class Request {
    public $get = array();

    //for now I just need the $_GET parameter
    public function __construct() {
        $this->get = $_GET;
    }
}

Erstellen Sie die Routerklasse, die für die Initialisierung der Controller-Datei auf der Grundlage der Route verantwortlich ist (mit anderen Worten: Rufen Sie den Controller dynamisch auf).

<?php
class Router {
    private $registry;

    public function __construct($registry) {
        $this->registry = $registry;
    }

    public function dispatch($route) {
        require_once('catalog/controller/'.$route.'.php');
        $class = "Controller".str_replace('/', '', $route);
        $controller = new $class($this->registry);
        $controller->index();
    }
}

lade es in deinen index.php

<?php
require_once('system/engine/registry.php');
require_once('system/engine/router.php');
require_once('system/library/response.php');
require_once('system/library/request.php');

$registry = new Registry;

$response = new Response;
$registry->set('response', $response);

$request = new Request;
$registry->set('request', $request);

//get the route from the url
if(isset($registry->get('request')->get['route'])){
    $route = $registry->get('request')->get['route'];
}else{
    $route = 'common/home';
}

//initiate the router and dispatch it base on the route
$router = new Router($registry);
$router->dispatch($route);


$registry->get('response')->output();

Beachten Sie, wie ich alles in den $registry lade und es dann an den $router weitergebe, der es dann an den $controller weitergibt.

Dieser Beitrag ist bereits zu lang, aber ich hoffe, dass er ein grundlegendes Verständnis des MVC-Musters in OpenCart vermittelt.

Wenn Sie möchten, dass ich mit diesem Beitrag fortfahre und Ihnen erzähle, wie andere Dinge wie Modelle und Ansichten funktionieren, bewerten Sie diese Antwort, damit ich weiß.

Schauen Sie sich auch mein Youtube https://www.youtube.com/dreamvention und mein Blog https://dreamvention.com/blog an. Ich werde dort weitere Tipps und Tutorials für Sie veröffentlichen!

1
Dmitriy Zhuk

PHP ist eine relativ große Sprache mit über 5000 integrierten Funktionen . Eine Strategie für das Erlernen einer neuen Plattform ist es, zu ermitteln, welche Funktionen am häufigsten verwendet werden, und einige Zeit damit verbringen, diese sehr gut kennenzulernen. 

Ich habe einige Abfragen zum OpenCart-Quellcode ausgeführt. Die 10 am häufigsten verwendeten Funktionen sind:

array()
count()
explode()
implode()
mktime()
delete()
time()
date()
sprintf()
list()

Alle hier aufgeführten 52 Befehle sowie Linux-Bash-Befehle können Sie in jeder Codebase verwenden, um häufig verwendete Funktionen zu identifizieren: https://www.antropy.co.uk/blog/efficient-learning-for-new-opencart -Entwickler/

0
Paul Feakins

Diese Youtube Video Playlist kann auch hilfreich sein, um OpenCart-Entwickler Gurus zu werden:

OpenCart Videos Tutorials

  1. Einführung und Inhaltsverzeichnis Dieses Video führt die Einführung der Serie durch
  2. OpenCart-Installation localhost Dieses Video durchläuft die OpenCart-Installation in localhost
  3. Dateien und Ordnerstruktur von Opencart Es beschreibt Dateien und Ordnerstrukturen von OpenCart
  4. Erstellen eines Datenbanktabellenschemas in OpenCart Es zeigt ein Datenbanktabellenschema und zeigt, wie Datenbanktabellen in OpenCart erstellt werden
  5. OpenCart Library - Methoden für vordefinierte Objekte Es beschreibt die Methoden für OpenCart Library - vordefinierte Objekte und zeigt, wo sie zu finden sind.
  6. MVCL-Muster, Codefluss und Anforderung und Antwort in OpenCart Es zeigt das MVCL-Muster, Codefluss und Anforderung und Antwort in OpenCart. Sie beschreiben den Fluss wie im Bild unten:  MVCL described with Code

  7. Installieren, Konfigurieren und Deinstallieren des Opencart-Moduls Es werden drei Möglichkeiten zum Hochladen von Modulen sowie zum Installieren, Konfigurieren und Deinstallieren des OpenCart 3-Moduls/der Erweiterung angezeigt. 

  8. Layouts und Position in Opencart 3 Es beschreibt die Layouts und Positionen von OpenCart 3. Es zeigt, wie Layouts für verschiedene Seiten angepasst werden und Beispiele für Kategorienseiten enthalten. Wir zeigen das unterschiedliche Layout für eine andere Kategorie.

  9. Ereignisübersicht von Opencart Sie erfahren, was Ereignisse in OpenCart sind, wie sie funktionieren und was sie so nützlich macht.

  10. Opencart-API-Dokumentation für Entwickler Dieses Video zeigt, wie Sie eine benutzerdefinierte Opencart-API verwenden und erstellen

Sobald Sie diese Videos sehen, können Sie mit der Codierung beginnen :)

0
Rupak Nepali