the function of CuDNN

本文介绍了一种通过安装和启用CuDNN来显著减少GPU内存消耗的方法。默认的Caffe模型可能占用超过12GB的GPU内存,而CuDNN可以将其降低到大约1.5GB,有效解决因内存不足导致的错误。


Q: Out of memory error - I get an error similar to: Check failed: error == cudaSuccess (2 vs. 0) out of memory.

A: Most probably cuDNN is not installed/enabled, the default Caffe model uses >12 GB of GPU memory, cuDNN reduces it to ~1.5 GB.

From the statement ,I come to realize that CuDNN can reduce the consumation of memory.


(rtx5070_env) PS E:\PyTorch_Build\pytorch> # 设置下载URL和目标路径 (rtx5070_env) PS E:\PyTorch_Build\pytorch> $downloadUrl = "https://www.7-zip.org/a/7z2406-x64.msi" (rtx5070_env) PS E:\PyTorch_Build\pytorch> $installerPath = "$env:TEMP\7z-installer.msi" (rtx5070_env) PS E:\PyTorch_Build\pytorch> $installDir = "E:\Program Files\7-Zip" (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 下载安装程序 (rtx5070_env) PS E:\PyTorch_Build\pytorch> Invoke-WebRequest -Uri $downloadUrl -OutFile $installerPath (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 创建目标目录 (rtx5070_env) PS E:\PyTorch_Build\pytorch> New-Item -ItemType Directory -Path $installDir -Force Directory: E:\Program Files Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 2025/9/3 19:41 7-Zip (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 使用msiexec手动安装 (rtx5070_env) PS E:\PyTorch_Build\pytorch> Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$installerPath`" INSTALLDIR=`"$installDir`" /quiet" -Wait (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 验证安装 (rtx5070_env) PS E:\PyTorch_Build\pytorch> if (Test-Path "$installDir\7z.exe") { >> Write-Host "7-Zip 已成功安装到 $installDir" -ForegroundColor Green >> >> # 添加到系统PATH >> $env:Path += ";$installDir" >> [Environment]::SetEnvironmentVariable("Path", $env:Path, "Machine") >> } else { >> # 手动解压作为备用方案 >> $zipUrl = "https://www.7-zip.org/a/7z2406-x64.zip" >> $zipPath = "$env:TEMP\7z-x64.zip" >> Invoke-WebRequest -Uri $zipUrl -OutFile $zipPath >> >> # 使用.NET解压 >> Add-Type -AssemblyName System.IO.Compression.FileSystem >> [System.IO.Compression.ZipFile]::ExtractToDirectory($zipPath, $installDir) >> } 7-Zip 已成功安装到 E:\Program Files\7-Zip (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 清理安装包 (rtx5070_env) PS E:\PyTorch_Build\pytorch> Remove-Item $installerPath -ErrorAction SilentlyContinue (rtx5070_env) PS E:\PyTorch_Build\pytorch> Remove-Item $zipPath -ErrorAction SilentlyContinue InvalidOperation: The variable '$zipPath' cannot be retrieved because it has not been set. (rtx5070_env) PS E:\PyTorch_Build\pytorch> .\manual_install_7zip.ps1 .\manual_install_7zip.ps1: The term '.\manual_install_7zip.ps1' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. (rtx5070_env) PS E:\PyTorch_Build\pytorch> .\fixed_setup_env.ps1 环境变量配置完成: CUDA_PATH = E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0 CUDNN_INCLUDE_DIR = E:\Program Files\NVIDIA\CUNND\v9.12\include\13.0 CUDNN_LIBRARY = E:\Program Files\NVIDIA\CUNND\v9.12\lib\13.0\x64\cudnn64_9.lib (rtx5070_env) PS E:\PyTorch_Build\pytorch> .\verify_cudnn.ps1 E:\Program Files\NVIDIA\CUNND\v9.12\include\13.0\cudnn.h : 存在 E:\Program Files\NVIDIA\CUNND\v9.12\lib\13.0\x64\cudnn64_9.lib : 存在 E:\Program Files\NVIDIA\CUNND\v9.12\lib\13.0\x64\cudnn64_9.dll : 缺失 测试CUDA和cuDNN集成: nvcc fatal : nvcc cannot find a supported version of Microsoft Visual Studio. Only the versions between 2019 and 2022 (inclusive) are supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this version check; however, using an unsupported host compiler may cause compilation failure or incorrect run time execution. Use at your own risk. .\test_cudnn.exe: E:\PyTorch_Build\pytorch\verify_cudnn.ps1:40 Line | 40 | .\test_cudnn.exe | ~~~~~~~~~~~~~~~~ | The term '.\test_cudnn.exe' is not recognized as a name of a cmdlet, function, script file, or executable | program. Check the spelling of the name, or if a path was included, verify that the path is correct and try | again. (rtx5070_env) PS E:\PyTorch_Build\pytorch> pip install numpy ninja pybind11 typing_extensions pyyaml future Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Requirement already satisfied: numpy in e:\python310\lib\site-packages (1.26.3) Requirement already satisfied: ninja in e:\python310\lib\site-packages (1.13.0) Collecting pybind11 Using cached https://pypi.tuna.tsinghua.edu.cn/packages/cd/8a/37362fc2b949d5f733a8b0f2ff51ba423914cabefe69f1d1b6aab710f5fe/pybind11-3.0.1-py3-none-any.whl (293 kB) Requirement already satisfied: typing_extensions in e:\python310\lib\site-packages (4.14.1) Requirement already satisfied: pyyaml in e:\python310\lib\site-packages (6.0.2) Collecting future Using cached https://pypi.tuna.tsinghua.edu.cn/packages/da/71/ae30dadffc90b9006d77af76b393cb9dfbfc9629f339fc1574a1c52e6806/future-1.0.0-py3-none-any.whl (491 kB) WARNING: Error parsing dependencies of torch: [Errno 2] No such file or directory: 'e:\\python310\\lib\\site-packages\\torch-2.6.0.dev20241112+cu121.dist-info\\METADATA' Installing collected packages: pybind11, future Successfully installed future-1.0.0 pybind11-3.0.1 (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 验证cuDNN文件 (rtx5070_env) PS E:\PyTorch_Build\pytorch> Test-Path "E:\Program Files\NVIDIA\cuDNN\v9.12\include\cudnn.h" False (rtx5070_env) PS E:\PyTorch_Build\pytorch> Test-Path "E:\Program Files\NVIDIA\cuDNN\v9.12\bin\cudnn64_9.dll" False (rtx5070_env) PS E:\PyTorch_Build\pytorch> Test-Path "E:\Program Files\NVIDIA\cuDNN\v9.12\lib\cudnn64_9.lib" False (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 验证7-Zip (rtx5070_env) PS E:\PyTorch_Build\pytorch> Test-Path "E:\Program Files\7-Zip\7z.exe" True (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 验证Visual Studio编译器 (rtx5070_env) PS E:\PyTorch_Build\pytorch> Get-Command cl.exe -ErrorAction SilentlyContinue CommandType Name Version Source ----------- ---- ------- ------ Application cl.exe 14.16.270… C:\Program Files\Microsoft Visual Studio… (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 安装7-Zip (rtx5070_env) PS E:\PyTorch_Build\pytorch> .\install_7zip.ps1 .\install_7zip.ps1: The term '.\install_7zip.ps1' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 修复cuDNN (rtx5070_env) PS E:\PyTorch_Build\pytorch> .\fix_cudnn.ps1 .\fix_cudnn.ps1: The term '.\fix_cudnn.ps1' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 修复VS路径 (rtx5070_env) PS E:\PyTorch_Build\pytorch> .\find_cl.exe.ps1 .\find_cl.exe.ps1: The term '.\find_cl.exe.ps1' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 更新环境变量 (rtx5070_env) PS E:\PyTorch_Build\pytorch> $env:Path = @( >> "E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin", >> "E:\Program Files\NVIDIA\cuDNN\v9.12\bin", >> "E:\Program Files\NVIDIA\cuDNN\v9.12\lib", >> "E:\Program Files\CMake\bin", >> "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\bin\Hostx64\x64", >> "E:\Python310\Scripts", >> $env:Path >> ) -join ';' (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 设置cuDNN路径变量 (rtx5070_env) PS E:\PyTorch_Build\pytorch> $env:CUDNN_INCLUDE_DIR = "E:\Program Files\NVIDIA\cuDNN\v9.12\include" (rtx5070_env) PS E:\PyTorch_Build\pytorch> $env:CUDNN_LIBRARY = "E:\Program Files\NVIDIA\cuDNN\v9.12\lib\cudnn64_9.lib" (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 验证最终配置 (rtx5070_env) PS E:\PyTorch_Build\pytorch> .\verify_paths_fixed.ps1 .\verify_paths_fixed.ps1: The term '.\verify_paths_fixed.ps1' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. (rtx5070_env) PS E:\PyTorch_Build\pytorch>
09-04
(pytorch_env) PS E:\PyTorch_Build\pytorch> # 接受所有必要的许可协议 (pytorch_env) PS E:\PyTorch_Build\pytorch> conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main accepted Terms of Service for https://repo.anaconda.com/pkgs/main (pytorch_env) PS E:\PyTorch_Build\pytorch> conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r accepted Terms of Service for https://repo.anaconda.com/pkgs/r (pytorch_env) PS E:\PyTorch_Build\pytorch> conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/msys2 accepted Terms of Service for https://repo.anaconda.com/pkgs/msys2 (pytorch_env) PS E:\PyTorch_Build\pytorch> (pytorch_env) PS E:\PyTorch_Build\pytorch> # 安装所有依赖 (pytorch_env) PS E:\PyTorch_Build\pytorch> conda install -c conda-forge -y ` >> libuv=1.46 ` >> openssl=3.1 ` >> numpy ` >> mkl=2024.1 ` >> mkl-include=2024.1 ` >> libblas=*=*mkl 3 channel Terms of Service accepted Retrieving notices: done Channels: - conda-forge - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - defaults Platform: win-64 Collecting package metadata (repodata.json): done Solving environment: failed PackagesNotFoundError: The following packages are not available from current channels: - libuv=1.46 Current channels: - https://conda.anaconda.org/conda-forge - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - defaults To search for alternate channels that may provide the conda package you're looking for, navigate to https://anaconda.org and use the search bar at the top of the page. (pytorch_env) PS E:\PyTorch_Build\pytorch> (pytorch_env) PS E:\PyTorch_Build\pytorch> # 验证 MKL 安装 (pytorch_env) PS E:\PyTorch_Build\pytorch> python -c "import mkl; print(f'MKL version: {mkl.__version__}')" Traceback (most recent call last): File "<string>", line 1, in <module> ModuleNotFoundError: No module named 'mkl' (pytorch_env) PS E:\PyTorch_Build\pytorch> # 设置正确的 cuDNN 路径 (pytorch_env) PS E:\PyTorch_Build\pytorch> $cudnn_path = "E:\Program Files\NVIDIA\CUNND\v9.12" (pytorch_env) PS E:\PyTorch_Build\pytorch> (pytorch_env) PS E:\PyTorch_Build\pytorch> # 清理之前的构建 (pytorch_env) PS E:\PyTorch_Build\pytorch> Remove-Item -Recurse -Force build -ErrorAction SilentlyContinue (pytorch_env) PS E:\PyTorch_Build\pytorch> (pytorch_env) PS E:\PyTorch_Build\pytorch> # 设置环境变量 (pytorch_env) PS E:\PyTorch_Build\pytorch> $env:CUDNN_ROOT_DIR = $cudnn_path (pytorch_env) PS E:\PyTorch_Build\pytorch> $env:CUDNN_INCLUDE_DIR = "$cudnn_path\include" (pytorch_env) PS E:\PyTorch_Build\pytorch> $env:CUDNN_LIBRARY = "$cudnn_path\lib\x64\cudnn.lib" (pytorch_env) PS E:\PyTorch_Build\pytorch> (pytorch_env) PS E:\PyTorch_Build\pytorch> # 永久生效 (pytorch_env) PS E:\PyTorch_Build\pytorch> [Environment]::SetEnvironmentVariable("CUDNN_ROOT_DIR", $cudnn_path, "Machine") (pytorch_env) PS E:\PyTorch_Build\pytorch> [Environment]::SetEnvironmentVariable("CUDNN_INCLUDE_DIR", "$cudnn_path\include", "Machine") (pytorch_env) PS E:\PyTorch_Build\pytorch> [Environment]::SetEnvironmentVariable("CUDNN_LIBRARY", "$cudnn_path\lib\x64\cudnn.lib", "Machine") (pytorch_env) PS E:\PyTorch_Build\pytorch> # 切换到 PyTorch 源码目录 (pytorch_env) PS E:\PyTorch_Build\pytorch> Set-Location E:\PyTorch_Build\pytorch (pytorch_env) PS E:\PyTorch_Build\pytorch> (pytorch_env) PS E:\PyTorch_Build\pytorch> # 创建缺失的 CMakeLists.txt (pytorch_env) PS E:\PyTorch_Build\pytorch> @" >> cmake_minimum_required(VERSION 3.18) >> project(torch) >> add_subdirectory(csrc) >> "@ | Out-File -FilePath torch\CMakeLists.txt -Encoding ASCII (pytorch_env) PS E:\PyTorch_Build\pytorch> (pytorch_env) PS E:\PyTorch_Build\pytorch> # 创建缺失的 Python 文件 (pytorch_env) PS E:\PyTorch_Build\pytorch> New-Item -Path torch\_utils_internal.py -ItemType File -Force Directory: E:\PyTorch_Build\pytorch\torch Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2025/9/1 19:07 0 _utils_internal.py (pytorch_env) PS E:\PyTorch_Build\pytorch> New-Item -Path torch\csrc\api\include\torch\version.h.in -ItemType File -Force Directory: E:\PyTorch_Build\pytorch\torch\csrc\api\include\torch Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2025/9/1 19:07 0 version.h.in (pytorch_env) PS E:\PyTorch_Build\pytorch> (pytorch_env) PS E:\PyTorch_Build\pytorch> # 添加基本内容到 version.h.in (pytorch_env) PS E:\PyTorch_Build\pytorch> @" >> #pragma once >> >> #define TORCH_VERSION_MAJOR 2 >> #define TORCH_VERSION_MINOR 9 >> #define TORCH_VERSION_PATCH 0 >> "@ | Out-File -FilePath torch\csrc\api\include\torch\version.h.in -Encoding ASCII (pytorch_env) PS E:\PyTorch_Build\pytorch> # 设置构建参数 (pytorch_env) PS E:\PyTorch_Build\pytorch> $env:USE_CUDNN = "1" (pytorch_env) PS E:\PyTorch_Build\pytorch> $env:MAX_JOBS = [Environment]::ProcessorCount (pytorch_env) PS E:\PyTorch_Build\pytorch> (pytorch_env) PS E:\PyTorch_Build\pytorch> # 添加 MKL 路径 (pytorch_env) PS E:\PyTorch_Build\pytorch> $mkl_include = "$env:CONDA_PREFIX\Library\include" (pytorch_env) PS E:\PyTorch_Build\pytorch> $mkl_lib = "$env:CONDA_PREFIX\Library\lib\mkl_rt.lib" (pytorch_env) PS E:\PyTorch_Build\pytorch> (pytorch_env) PS E:\PyTorch_Build\pytorch> # 构建命令 (pytorch_env) PS E:\PyTorch_Build\pytorch> python setup.py install --cmake ` >> -DMKL_INCLUDE_DIR="$mkl_include" ` >> -DMKL_LIBRARIES="$mkl_lib" ` >> -DCUDNN_INCLUDE_DIR="$env:CUDNN_INCLUDE_DIR" ` >> -DCUDNN_LIBRARY="$env:CUDNN_LIBRARY" ` >> 2>&1 | Tee-Object -FilePath build_log.txt Building wheel torch-2.9.0a0+git2d31c3d option -D not recognized (pytorch_env) PS E:\PyTorch_Build\pytorch> # 设置构建参数 (pytorch_env) PS E:\PyTorch_Build\pytorch> $env:USE_CUDNN = "1" (pytorch_env) PS E:\PyTorch_Build\pytorch> $env:MAX_JOBS = [Environment]::ProcessorCount (pytorch_env) PS E:\PyTorch_Build\pytorch> (pytorch_env) PS E:\PyTorch_Build\pytorch> # 添加 MKL 路径 (pytorch_env) PS E:\PyTorch_Build\pytorch> $mkl_include = "$env:CONDA_PREFIX\Library\include" (pytorch_env) PS E:\PyTorch_Build\pytorch> $mkl_lib = "$env:CONDA_PREFIX\Library\lib\mkl_rt.lib" (pytorch_env) PS E:\PyTorch_Build\pytorch> (pytorch_env) PS E:\PyTorch_Build\pytorch> # 构建命令 (pytorch_env) PS E:\PyTorch_Build\pytorch> python setup.py install --cmake ` >> -DMKL_INCLUDE_DIR="$mkl_include" ` >> -DMKL_LIBRARIES="$mkl_lib" ` >> -DCUDNN_INCLUDE_DIR="$env:CUDNN_INCLUDE_DIR" ` >> -DCUDNN_LIBRARY="$env:CUDNN_LIBRARY" ` >> 2>&1 | Tee-Object -FilePath build_log.txt Building wheel torch-2.9.0a0+git2d31c3d option -D not recognized (pytorch_env) PS E:\PyTorch_Build\pytorch> # Dockerfile (pytorch_env) PS E:\PyTorch_Build\pytorch> FROM nvidia/cuda:13.0-devel-ubuntu22.04 ParserError: Line | 1 | FROM nvidia/cuda:13.0-devel-ubuntu22.04 | ~~~~ | The 'from' keyword is not supported in this version of the language. (pytorch_env) PS E:\PyTorch_Build\pytorch> (pytorch_env) PS E:\PyTorch_Build\pytorch> RUN apt-get update && \ RUN: The term 'RUN' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. (pytorch_env) PS E:\PyTorch_Build\pytorch> apt-get install -y git ninja-build python3-pip apt-get: The term 'apt-get' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. (pytorch_env) PS E:\PyTorch_Build\pytorch> (pytorch_env) PS E:\PyTorch_Build\pytorch> RUN pip3 install cmake RUN: The term 'RUN' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. (pytorch_env) PS E:\PyTorch_Build\pytorch> (pytorch_env) PS E:\PyTorch_Build\pytorch> RUN git clone https://github.com/pytorch/pytorch RUN: The term 'RUN' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. (pytorch_env) PS E:\PyTorch_Build\pytorch> WORKDIR pytorch WORKDIR: The term 'WORKDIR' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. (pytorch_env) PS E:\PyTorch_Build\pytorch> (pytorch_env) PS E:\PyTorch_Build\pytorch> RUN git submodule update --init --recursive RUN: The term 'RUN' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. (pytorch_env) PS E:\PyTorch_Build\pytorch> RUN python3 setup.py install RUN: The term 'RUN' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. (pytorch_env) PS E:\PyTorch_Build\pytorch>
09-02
多角色体系 支持管理员、商家、消费者三种角色,权限分级管控: 管理员:负责平台整体配置、用户审核、数据监控等全局操作。 商家:管理店铺信息、发布商品、处理订单、回复评价等。 消费者:浏览商品、加入购物车、下单支付、评价商品等。 实现用户注册(手机号 / 邮箱验证)、登录(支持密码 / 验证码 / 第三方登录)、个人信息管理(头像、收货地址、密码修改)。 权限精细化控制 商家仅能管理自家店铺及商品,消费者仅能查看和购买商品,管理员拥有全平台数据访问权限。 二、商品管理功能 商品信息维护 商家可发布商品:填写名称、分类(如服饰、电子产品)、子类别(如手机、笔记本)、规格(尺寸、颜色、型号)、价格、库存、详情描述(图文)、物流信息(运费、发货地)等。 支持商品上下架、库存调整、信息编辑,系统自动记录商品状态变更日志。 商品分类与搜索 按多级分类展示商品(如 “数码产品→手机→智能手机”),支持自定义分类体系。 提供智能搜索功能:按关键词(名称、品牌)搜索,支持模糊匹配和搜索联想;结合用户浏览历史对搜索结果排序(优先展示高相关度商品)。 商品推荐 基于用户浏览、收藏、购买记录,推荐相似商品(如 “浏览过该商品的用户还买了…”)。 首页展示热门商品(销量 TOP10)、新品上架、限时折扣等推荐列表。 三、订单与交易管理 购物车与下单 消费者可将商品加入购物车,支持修改数量、选择规格、移除商品,系统自动计算总价(含运费、折扣)。 下单流程:确认收货地址→选择支付方式(在线支付、货到付款)→提交订单→系统生成唯一订单号。 订单处理流程 订单状态跟踪:待支付→已支付→商家发货→物流运输→消费者收货→订单完成,各状态变更实时通知用户。 商家端功能:查看新订单提醒、确认发货(填写物流单号)、处理退款申请(需审核理由)。 消费者端功能:查看订单详情、追踪物流、申请退款 / 退货、确认收货。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值