Magento 使用教程:从入门到精通

Magento(现为 Adobe Commerce)是一个功能极其强大但同时也相对复杂的开源电商平台,本教程将帮助你一步步掌握它的使用方法。


第一部分:基础准备与入门

什么是 Magento?

  • 定义:Magento 是一个基于 PHP 的、功能丰富的开源电子商务平台,由 Adobe 维护,它以其高度的可扩展性、灵活性和强大的功能而闻名,适合构建从小型到大型复杂的在线商店。
  • 版本
    • Magento Open Source (社区版):免费开源,功能强大,适合大多数中小企业。
    • Adobe Commerce (企业版):在社区版基础上增加了更多高级功能(如 B2B、高级客户服务、全球扩展等),并提供官方商业支持。
  • 技术栈:PHP, MySQL, JavaScript (jQuery, RequireJS), HTML/CSS。

环境准备

在开始之前,你需要一个本地或远程的运行环境。

  • 推荐本地环境工具
    • XAMPP / WAMP (Windows)
    • MAMP (macOS)
    • Laragon (Windows, 强烈推荐)
    • Docker (专业级,推荐)
  • 系统要求:确保你的 PHP 版本符合 Magento 的要求(目前推荐 PHP 8.1/8.2),并安装了必要的 PHP 扩展(如 pdo_mysql, xml, zip, gd, curl 等)。
  • 安装 Composer:Magento 使用 Composer(PHP 的依赖管理工具)来管理其核心代码和第三方扩展,请务必在你的系统中安装并配置好 Composer。

安装 Magento

这里介绍最常用的命令行安装方式。

  1. 下载 Magento 打开终端或命令提示符,导航到你希望安装 Magento 的目录(htdocswww),然后运行:

    composer create-project --repository=https://repo.magento.com/ magento/project-community-edition .

    这会下载 Magento 社区版的最新稳定版。

  2. 设置文件权限 Magento 需要对特定目录有写入权限,在 Linux/macOS 上,运行以下命令:

    find var generated pub/static pub/media app/etc -type f -exec chmod g+w {} +
    find var generated pub/static pub/media app/etc -type d -exec chmod g+w {} +
    chown -R <your_web_server_user>:<your_web_server_user> .
    chmod u+x bin/magento

    (注意:将 <your_web_server_user> 替换为你的 Web 服务器用户名,如 www-dataapache)

  3. 运行安装程序 在浏览器中访问你的域名(http://localhost/magento/),安装向导会自动启动,或者,你也可以通过命令行安装:

    bin/magento setup:install \
    --db-host=localhost \
    --db-name=magento \
    --db-user=root \
    --db-password= \
    --admin-firstname=Admin \
    --admin-lastname=Admin \
    --admin-email=admin@example.com \
    --admin-user=admin \
    --admin-password=admin123 \
    --language=en_US \
    --currency=USD \
    --timezone=America/Chicago \
    --use-rewrites=1 \
    --backend-frontname=admin

    安装成功后,你就可以访问你的新商店了。


第二部分:后台管理核心操作

登录后台:http://your-domain.com/admin,使用你安装时设置的管理员账户登录。

产品管理

这是电商的核心。

  • 添加产品

    1. 导航到 Catalog > Products
    2. 点击 Add Product
    3. 选择产品类型
      • Simple Product (简单产品):最常见,没有变体,一个SKU对应一个商品。
      • Configurable Product (可配置产品):有多个变体(如不同颜色、尺寸),用户可以选择,需要先创建对应的简单产品作为“关联产品”。
      • Bundle Product (捆绑产品):可以购买多个相关产品的组合。
      • Grouped Product (分组产品):将多个简单产品展示在一个页面,用户可以分别选择购买。
      • Virtual Product (虚拟产品):非实物,如服务、软件下载。
      • Downloadable Product (可下载产品):虚拟产品的一种,允许客户下载文件。
    4. 填写信息
      • General:名称、SKU、描述、状态(启用/禁用)、价格等。
      • Images and Videos:上传产品主图、画廊图片。
      • Categories:将产品分配到相应的分类。
      • Inventory:管理库存数量、是否允许“缺货下单”等。
      • Design:为该产品指定特定的主题布局或模板。
  • 管理分类: 导航到 Catalog > Categories,分类采用树状结构,是组织和导航产品的基础,你可以为每个分类设置显示名称、描述、图片,并选择它在导航菜单和页脚中的显示位置。

订单管理

  • 查看订单Sales > Orders,所有客户订单都会显示在这里,你可以按状态、日期、客户等筛选。
  • 处理订单
    • 状态:Pending(待处理)、Processing(处理中)、Complete(已完成)、Canceled(已取消)等。
    • 操作:你可以更改订单状态、添加评论、打印发票/装箱单/发货单、创建退货(Credit Memo)。
  • 客户Customers > All Customers,管理客户账户、查看其订单历史、地址信息和余额。

内容与页面管理

  • 页面Content > Pages,用于创建静态页面,如“关于我们”、“联系我们”、“隐私政策”等。
  • Content > Blocks,创建可重用的内容片段(如一段介绍文字、一个广告横幅),可以在任何页面或布局中引用。
  • 布局与主题:这是 Magento 的核心概念之一。
    • 布局:决定了页面上各个区块(如 Header, Main Content, Footer, Left Sidebar)的位置和顺序。
    • 主题:决定了网站的视觉外观(颜色、字体、图片等)。
    • XML:Magento 使用 XML 文件来定义布局。catalog_product_view.xml 文件定义了产品详情页的布局。

第三部分:主题开发与定制

如果你想让你的商店与众不同,就需要开发自定义主题。

Magento 主题结构

Magento 主题遵循一个清晰的继承结构: app/design/frontend/VendorName/ThemeName/

  • VendorName:你的公司或开发者名称。
  • theme.xml:主题配置文件,定义主题名称、父主题等。
  • registration.php:主题注册文件,让 Magento 系统能识别你的主题。
  • web/:存放所有静态文件(CSS, JS, images, fonts)。
  • templates/:存放 .phtml 模板文件,定义 HTML 结构。
  • layout/:存放 .xml 布局文件,覆盖或扩展默认布局。

创建一个简单主题

  1. 创建主题目录

    mkdir -p app/design/frontend/MyCompany/MyTheme
  2. 创建 registration.php

    <?php
    \Magento\Framework\Component\ComponentRegistrar::register(
        \Magento\Framework\Component\ComponentRegistrar::THEME,
        'frontend/MyCompany/MyTheme',
        __DIR__
    );
  3. 创建 theme.xml

    <theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
        <title>My Custom Theme</title>
        <parent>Magento/luma</parent> <!-- 继承自 Luma 主题 -->
    </theme>
  4. 启用主题

    • 登录后台,进入 Content > Configuration
    • 点击你网站对应的 "Store View"。
    • 在 "Theme" 部分,从下拉菜单中选择 "My Custom Theme"。
    • 点击 Save Config
  5. 修改样式

    • app/design/frontend/MyCompany/MyTheme/web/css/source/ 目录下,你可以找到 _theme.less 文件。
    • 修改其中的变量,$base-color,来改变网站的主色调。
    • 保存后,需要清空缓存才能看到效果:bin/magento cache:clean

第四部分:模块开发与扩展

Magento 的强大之处在于其模块化的架构,几乎所有功能都是通过模块实现的。

什么是模块?

模块是 Magento 功能的基本单元,一个模块可以包含:

  • 控制器:处理 URL 请求。
  • 模型:处理业务逻辑和数据。
  • 视图:包含模板和布局。
  • Block:在模板中提供数据。
  • 等等。

创建一个简单模块

这是一个“Hello World”示例模块,在首页显示一个自定义的 Block。

  1. 注册模块: 在 app/code/ 目录下创建 app/code/MyCompany/HelloWorld/etc/module.xml 文件。

    <?xml version="1.0"?>
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
        <module name="MyCompany_HelloWorld" setup_version="1.0.0">
            <sequence>
                <module name="Magento_Store"/>
            </sequence>
        </module>
    </config>
  2. 启用模块: 在终端运行:

    bin/magento module:enable MyCompany_HelloWorld
    bin/magento setup:upgrade
  3. 创建 Blockapp/code/MyCompany/HelloWorld/Block/HelloWorld.php

    <?php
    namespace MyCompany\HelloWorld\Block;
    class HelloWorld extends \Magento\Framework\View\Element\Template
    {
        public function getHelloWorldMessage()
        {
            return "Hello, Magento World!";
        }
    }
  4. 创建模板app/code/MyCompany/HelloWorld/view/frontend/templates/hello.phtml

    <div class="helloworld">
        <h2><?php echo $block->getHelloWorldMessage(); ?></h2>
    </div>
  5. 在页面中调用: 编辑 app/design/frontend/MyCompany/MyTheme/Magento_Theme/layout/default.xml (或你主题的首页布局文件),添加以下内容:

    <body>
        <!-- ... 其他内容 ... -->
        <block class="MyCompany\HelloWorld\Block\HelloWorld" name="helloworld.block" template="MyCompany_HelloWorld::hello.phtml" />
    </body>

现在刷新首页,你应该能看到 "Hello, Magento World!" 的文字。


第五部分:性能优化与维护

Magento 是一个资源密集型应用,性能优化至关重要。

缓存管理

Magento 有一个强大的缓存系统。

  • 后台操作System > Tools > Cache Management,你可以在这里刷新所有缓存或刷新特定缓存。

  • 命令行操作

    # 清空所有缓存
    bin/magento cache:clean
    # 刷新所有缓存
    bin/magento cache:flush
    # 禁用缓存(仅用于开发)
    bin/magento cache:disable

索引管理

索引是将数据(如产品价格、库存、分类关系)整理成易于搜索的格式。

  • 后台操作System > Index Management,当你在后台修改了大量数据后,需要手动重新编译索引。
  • 命令行操作
    # 重新编译所有索引
    bin/magento indexer:reindex

优化技巧

  • 使用 Varnish 或 Redis:配置 Varnish 作为全页面缓存,或使用 Redis 作为缓存和会话存储,可以极大地提升性能。
  • 优化图片:使用 Magento 的 image 适配器,并启用 WebP 格式,减少图片加载时间。
  • 启用静态内容签出:将编译后的 CSS 和 JS 文件部署到独立的静态文件服务器。
  • 选择优质扩展:避免安装来源不明、质量差的扩展,它们是网站性能和安全的主要杀手。

第六部分:重要提示与最佳实践

  1. 备份!备份!备份!:在进行任何重大操作(如升级、安装扩展)之前,务必备份数据库和文件系统。
  2. 使用版本控制:将你的主题和自定义代码放在 Git 等版本控制系统中,方便追踪和管理变更。
  3. 遵循官方文档Magento DevDocs 是最权威、最准确的学习资源。
  4. 从社区版开始:对于新手,先在社区版上进行学习和实验,熟悉后再考虑企业版。
  5. 安全第一:保持 Magento 核心和所有扩展为最新版本,使用强密码,并定期扫描网站漏洞。

这份教程涵盖了 Magento 使用的大部分核心内容,Magento 是一个深度和广度都很大的平台,不可能一蹴而就,建议你从搭建一个基础商店开始,逐步探索每个功能模块,并结合官方文档进行深入学习,祝你使用愉快!