A class that enables two otherwise incompatible systems to work together without modifying the systems' source code. Examples include database adapters, cache adapters, filesystem adapters, post-processor libraries adapters and other types of computing adapters.
In a web browser when a user is unable to view an image, alt text (embedded in the HTML code) appears in place of the image. Also, blind or visually impaired users are able to interpret web mages through alt text as they navigate with a screen reader.
The text, or label, in a hyperlink that is visible and clickable. Anchor text is important in search engine optimization.
Abbreviation for application program interface. A software interface that lets third-party applications read and write to a system using programming language constructs or statements. Magento supports and provides REST and SOAP.
Learn more: Get Started with Magento APIs
Generally used in the same way as "server side".
The Magento Admin and all features for configuring and managing your storefront, products, orders, shipments, etc is considered a backend system.
To perform a task or make a change to multiple items all at once, without manual repetition.
Bulk operations are actions that are performed on a large scale. Example bulk operations tasks include importing or exporting items, changing prices on a mass scale, and assigning products to a warehouse.
Learn more: DevDocs Bulk Operations
Stores cache records into a two-level backend system within Zend’s default framework. A first-level cache is fast — for example, an APC or Memcached backend — but it’s limited and doesn’t support tagging and grouping of cache entries. A second-level cache — for example, a file system or a Redis backend — is slower but supports tagging and grouping.
Specifies what kind of data is stored in the cache backend.
A cache stores data so that future calls for that data can be loaded quicker, and Magento includes these types: configuration, layout, block HTML layout, full page (the most well-known), collections, DDL, EAV, reflection, translation, integration configuration, integration API configuration, web services configuration. Other types can be created and defined.
Pages (or parts of pages) that are stored to improve the page load time of subsequent requests.
A page's single preferred URL, which can be referenced from multiple URLs. Aids in search engine optimization.
The process of gathering the payment and shipping information that is necessary to complete the purchase of items in the shopping cart. After the customer reviews the information and submits the order, an email confirmation is sent to the customer.
Checkout has many options and configuration out-of-the-box and through extension.
A resource provided over the internet that hosts or shares computer processing capability and data to computers and other devices on demand. Cloud services include software as a service (SaaS), platform as a service (PaaS) and infrastructure as a service (IaaS). Benefits include: • Infrastructure costs avoided • Savings in infrastructure passed on to core business • Applications can be implemented quicker • More uptime, when the system is working an available, due to redundancy • Less maintenance
Abbreviation for "content management system." A software system that is used to create, edit, and maintain content on a website.
In general, processes related to translating code from one application to another. The Magento code migration tool assists you with porting Magento 1 customizations to Magento 2.
An open-source CSS authoring framework that is an extension of the Sass stylesheet language. Compass includes a compiler and a large collection of mixins and functions. Can be bundled into a library and used in multiple projects without requiring using multiple sources for each project.
Data that is associated with multiple product options.
A library, or file bundle, that is obtained using Composer — an external software — and that provides functionality or fulfills a dependency. The content of the package contains PHP code, a name and a version that identify the package, as well as metadata. For installation, the source definition is the information that is most relevant — this describes where to get the package contents and any dependencies.
The technology used to download items that works manages dependencies in PHP. This tool allows users to specify libraries to be used and it manages the installation and updates for the libraries.
A “package” is the composer’s smallest unit of delivery. Example: A .zip file containing a directory tree of files. Composer places each Magento component — module, theme or language pack — to be downloaded into a separate package, creating a 1:1 relationship between components and packages.
In Magento, we use Composer to package components and manage installations of Magento core, modules, extensions, etc. We recommend developers and merchants include composer.json in the component’s root directory even if they do not intend to distribute it to other merchants using Magento.
The composite pattern is a programming design pattern that describes the uniform treatment of single objects or a composition of objects.
content delivery network
A large distributed network of servers that specializes in the high performance delivery of multimedia content.
The structure of data in a database. Defines how data is organized and how data relationships are governed, including all constraints applied to the data. A module can contain fragments of the database schema if that module has data that needs to be stored in the database.
A software design pattern that allows a class to specify its dependencies without having to construct them. This class delegates the responsibility of injecting the dependency to the calling class. Used to make testing easier. To define dependencies for classes, edit the di.xml configuration file.
dynamic media URL
A URL address that is generated dynamically by the system to reference an image or other media. The address links directly to assets stored on a server or a content delivery network. To use a static URL, change the configuration setting. However, if dynamic media URLs are included in your catalog when you disable the setting, each reference in your catalog will become a broken link. Links can be restored by again enabling dynamic media URLs. Using dynamic media URLs can affect catalog search's performance.
Code format: media url="path/to/image.jpg"
entity attribute value
For database entities, a data model that efficiently encodes entities. Stores the entity id, attribute name, and value as a triple, which allows new entity attribute names to be created at any time. In encoding, the number of attributes that can be used to describe entities can scale extensively, but the number that applies to a given entity is minimized. This data model is very flexible, but can be slow.
Learn more: EAV and extension extension_attributes
A user action or other occurrence that is detected by the system and triggers a response. Interactive experiences are made possible by events that change the program flow. Software typically incorporates event loops or other dedicated event handlers to identify and manage events.
A software mechanism that manages the response to an exception. The manner in which an exception is handled might change the program flow and require specialized programming.
An abnormal condition that requires special processing.
A software framework is a foundation of defined code in which more code can be added to fully customize or build out the software.
In the Magento framework, parts of the software leverage Zend, an open-source, object-oriented PHP framework. Modules are built using the Magento framework. Frameworks can be used for developing software applications, products and solutions (combinations of products and services). To integrate different components, development can include integration of APIs, code libraries, compilers, support programs and other toolsets.
Unlike libraries, frameworks feature the following:
- Flow of control dictated by the framework, not the caller
- A default behavior that is user-centric and logical
- Extensibility, enabling users to more easily build an application
Properties that determine the presentation and behavior of an attribute from the standpoint of the customer in your store.
In a client-server application, there is the backend and frontend. The frontend component, or client, is an interface that enables users to manipulate or interact with the underlying backend code. Backend code runs on a server. A user cannot directly access backend code. A user interacts with the storefront, which in turn uses code running on the Magento server. Note: In the past, the Magento storefront has been referred to as the "frontend", and the Magento Admin has been referred to as the "backend". This usage is no longer supported.
GraphQL is a data query language developed internally by Facebook in 2012 before being publicly released in 2015. Magento implements GraphQL to provide an alternative to REST and SOAP web APIs for frontend development.
PWA Studio uses GraphQL for development. GraphQL is a specification for a data query language on the client side and a service layer on the server side. It is often seen as an alternative to using REST endpoints.
One of the main advantages GraphQL has over REST is that a single GraphQL endpoint can accommodate requests for any combination of X, Y, and Z pieces of data, whereas REST requires specialized endpoints for different data request combinations. Unlike REST, which can require multiple server requests to aggregate data, a single GraphQL request returns only the data needed and nothing more.
Performance is an important metric for PWAs. Using GraphQL improves this by reducing the number of server calls and the amount of data returned.
GraphQL is also a Magento Community Engineering project, open to contributions:
Generally, a handle is a way to reference an object. In Magento, handles are used in many places, most commonly to identify a page. For page handles, the handle name is derived from the URL, then used to locate and load the layout files for the referenced page. For example, in the Magento Customer module, there is a layout file called “view/frontend/layout/checkoutcartindex.xml”. Here “frontend” is the area name and “checkoutcartindex” is the handle name, both of which are derived from the URL.
Abbreviation for "HyperText Markup Language". A coding language with tags that identify and structure text, images, videos, and other media on a web page.
An API endpoint that can be used by third-party applications to access a particular device.
The process of injecting new code before, after, or around an existing public function of a PHP class.
To intercept a function, a plug-in implements the additional code to be invoked. Plug-ins are associated with interception points by the dependency injection configuration file (di.xml). If multiple plug-ins are defined on the same function, the dependency injection configuration defines the order in which the plug-ins are invoked, allowing multiple plug-ins to be used without conflict.
A scripting language that can be used with HTML to produce dynamic effects and interactions on web pages.
Provides translation dictionaries used to localize the Magento application. A language package includes one or more translation files. A package is a one of the components in Magento, which also include modules and themes.
Markup in a layout file that describes changes to be applied to a structured element tree of blocks, containers, and UI components. A single layout file can contain multiple layout instructions. Layout instructions are encoded in XML in layout files.
Stands for "Leaner CSS". Simply put, Less combines CSS language (which applies visual styles to HTML pages) with other items - embedded variables, mixins, functions, and other features.
This combination enables CSS to be themed and more maintainable and extendable. As a pre-processor, Less processes and exports its code into a standard CSS file that browsers can read and render into web pages.
The order in which scripts are loaded into memory. Used for modules. To work correctly, some scripts must be loaded before others.
A set of configurations that defines the user’s language, country, tax rate, and other settings. Example: "en_US".
In marketing and retail, a percentage added to the cost of an item to determine the retail price. Configure the markup, or markdown, of a product through product customizable options.
In development, a computer language that controls the processing, presentation, and formatting of text. Also, markup tags are snippets of code that add functionality or content to a CMS page or block.
A dedicated space, which can be included on the content delivery network, for your media assets.
Data that describes other data. Metadata helps users find and work with data.
An empty package that contains requirements and will trigger their installation, but neither contains files nor writes anything to the filesystem. No dist or source key is required for installation.
MFTF stands for Magento Functional Testing Framework. It provides a testing framework for Magento developers and software engineers, such as QA specialists, PHP developers, and system integrators. Developers and QA can write tests to attempt user interactions with web applications, verify functionality, and automate regression testing.
A class that contains a combination of methods from other classes. Mixins encourage code reuse and can be used to avoid the inheritance ambiguity that multiple inheritance can cause (the diamond problem), or to work around lack of support for multiple inheritance in a language. How such a combination is done depends on the language, but it is not by inheritance. If a combination contains all methods of combined classes it is equivalent to multiple inheritance.
Magento UI components, a Less frontend library, use a set of mixins for base elements to ease frontend theme development and customization.
A set of symbols used to organize a variety of objects so that the objects may be referred to with a name.
In PHP, a namespace determines where a PHP file is located within the namespace hierarchy. The same class name can be reused, but a namespace provides differentiation between files.
An open-source web application firewall (WAF) for Nginx.
(Pronounced "engine x") A free, open-source software that functions as a web server or a reverse proxy (for TCP, UDP, HTTP, HTTPS, SMTP, POP3, and IMAP protocols), as well as a load balancer and an HTTP cache.
The process of creating a distributable module for Magento Marketplace or another distribution system.
A payment gateway is a third-party service that seamlessly processes credit card transactions without the customer leaving the merchant's site.
payments as a service
A software as a service that connects international payment systems. It uses its own standard APIs and functions as a layer on top of the systems, enabling two-way communication between a system and the payments as a service software.
An open-source, server-side (backend) scripting language designed mainly for web development. The script is embedded within a Web page’s HTML. When a user has requested the page, the Web server calls PHP to read the script and perform its operation.
PHP pages typically have file name suffixes that include: ".php" ".php3," or ".phtml". PHP pages are dynamic, driven by the how the script is read.
platform as a service
A platform — used by Magento Cloud — that features cloud computing services that enable the development and management of applications.
PaaS does not require customers to buy and manage infrastructure, including hardware, software, network, servers operating systems and storage. Customers can control running applications and, in some cases, the application-hosting configuration settings. “PaaS” can be used on second reference.
To split a process in advance, so similar processes are immediately available later, if required.
publisher, subscriber pattern
Where one or more "publishers" can send a message on a message bus without knowing who is interested in the message. Subscribers can listen to the message by "subscribing". The pattern is normally used as a one-to-many broadcast of messages, but it can be used as many-to-many, if appropriate.
A Progressive Web App, or PWA, is a web application that uses modern web technologies and design patterns to provide a reliable, fast, and engaging user experience. PWA sites are fast, secure, responsive for all devices, cross-browser compatible, supports an offline mode, etc.
The Magento PWA Studio project is a set of developer tools that allow for the development, deployment, and maintenance of a PWA storefront on top of Magento 2. It uses modern tools and libraries to create a build system and framework that adheres to the Magento principle of extensibility.
PWA is also a Magento Community Engineering project, open to contributions:
Learn more: Magento PWA Documentation
It provides a global store object that holds application state that multiple components depend on. Components that plug into the store have direct access to the specific state data they need. This library is often paired with React to alleviate the problem of passing data down multiple component layers.
A type of beta version that is almost ready to become finalized, unless significant bugs emerge. The Magento community is encouraged to provide feedback and Pull Requests (PR) in GitHub to fix errors in code, design, and documentation.
A file placed on a website that tells search-engine crawlers which pages not to index.
Abbreviation for Syntactically Awesome Stylesheets. A language that extends CSS — adding inline imports, mixins, nested rules, and variables — and keeps it well-organized with the assistance of the Compass style library.
A tool which securely validates and encrypts data that travels both ways between the browser (client) and server. Sites with a security certificate use the “HTTPS” protocol, displayed in the web address bar. SSL is the standard certificate.
In a client-server application, backend code runs on a server. The frontend component, or client, is an interface on a local computer or workstation that and enables users to access the remote server and manipulate the backend code. A user cannot directly access backend code.
In Magento, customers interact with the storefront (UI), merchants interact with the Magento Admin (front end client / browser). These interactions launch the server-side "backend" code, or Magento application programs, remotely.
A set of PHP interfaces that are defined for a module. A service contract includes data interfaces, which preserve data integrity, and service interfaces, which hide business logic details from service requestors such as controllers, web services, and other modules. Web APIs can be bound to service contracts via configuration files.
A service worker is a script that runs in the background. Progressive web applications use service workers for caching and resource retrieval.
The set of products that a customer has selected to purchase, but has not yet purchased. Also refers to an area of an ecommerce site where these products can be found in order to review and checkout.
Abbreviation for Stock Keeping Unit. A number or code assigned to a product to identify the product, options, price, and manufacturer.
software as a service
A software delivery model where the vendor provides the software and hosting environment, and customers pay for the service by subscription or per use.
An external set of code developed by a third-party developer or partner.
Comma-separated value (CSV) message catalog files that provide translations for strings displayed in Magento.
A tag designed for Magento 2 software to enable simpler and more flexible user interface (UI) rendering. The goals of the UI component system include the following:
- Simplifying Layout Handle XML files
- Enabling the creation of more complex UI components out of smaller components
- Pre-rendering data for UI components as JSON, binding closely to Magento backend data objects
- Using AJAX to update component data
- Introducing a new DSL for creating all of the above
PWA Studio uses UPWARD in development. UPWARD is an acronym for Unified Progressive Web App Response Definition. An UPWARD definition file describes how a web server delivers and supports a Progressive Web Application.
UPWARD definition files provide details about server behavior using platform-independent, declarative language. This lets a Progressive Web Application run on top of an UPWARD-compliant server in any language on any tech stack because the application is only concerned about the HTTP endpoint behavior from the UPWARD server.
An UPWARD server uses a definition file to determine the appropriate process or service for a request from an application shell. It describes how the server should handle a request and build the response for it.
A PWA project can include an UPWARD definition file to specify its service dependencies.
Virtual types are a way to inject different dependencies into existing PHP classes without affecting other classes and without having to create a new class file. Virtual types can only be referenced in by argument overrides in a
An application programming interface (API) for a web server or browser, usually limited to the client side.
Abbreviation for "Extensible Markup Language". A markup format derived from SGML that is used to format information for publication and distribution.