尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

EasyWeChat 小程序微信小商店(Mall)SDK 实战指南:商品、购物车、订单与媒体管理

发布时间:2026/9/24 14:44:39

资讯中心
01
ARTICLE

EasyWeChat 小程序微信小商店(Mall)SDK 实战指南:商品、购物车、订单与媒体管理

EasyWeChat 小程序微信小商店(Mall)SDK 实战指南:商品、购物车、订单与媒体管理
后端即时通讯【免费下载链接】easywechat 一个 PHP 微信 SDK项目地址https://gitcode.com/gh_mirrors/ea/easywechat点击查看免费下载微信小商店是微信官方提供的电商能力小程序开发者可以通过官方接口在小程序内完成商品管理、购物车、订单履约等电商闭环操作。EasyWeChat 在 5.x 版本的小程序模块中提供了完整的「微信小商店」封装将微信小商店的所有 HTTP 接口收敛为$app-mall下的一组语义化客户端本文将以 docs/src/5.x/mini-program/mall.md 为骨架结合仓库源码深入讲解其获取实例、商品管理、购物车管理、订单管理、媒体文件管理的完整用法并给出可直接复制的完整示例与注意事项。一、微信小商店能力概览微信小商店是微信官方提供的电商解决方案小程序通过相关接口即可管理商品、订单等核心电商数据无需自行搭建交易后台。在 EasyWeChat 中该能力被组织为mall应用下的五个子模块子模块用途核心方法product商品管理import、query、getStatus、updateStatuscart购物车管理add、get、deleteorder订单管理add、updateStatus、listmedia媒体文件管理uploadImg、getImg二、获取小商店实例在完成小程序应用初始化后通过$app-mall即可获得小商店客户端。按照 docs/src/5.x/mini-program/index.md 的说明$app指Factory::miniProgram($config)得到的实例use EasyWeChat\Factory; $config [ app_id wx3cf0f39249eb0exx, secret f1c242f4f28f735d4687abb469072axx, // 下面为可选项 // 指定 API 调用返回结果的类型array(default)/collection/object/raw/自定义类名 response_type array, log [ level debug, file __DIR__ . /wechat.log, ], ]; $app Factory::miniProgram($config); $mall $app-mall;从源码结构看mall下挂载的product、cart、order、media等子客户端通过应用的动态属性机制暴露$mall-product、$mall-cart等即对应微信小商店的各业务接口分组。所有请求都经由 src/MiniApp/Application.php 中createClient()构建的AccessTokenAwareClient发出SDK 会自动携带 access_token、按errcode与error字段判断请求是否失败开发者无需手动拼接 URL 或处理鉴权。三、商品管理商品是小商店交易的核心数据微信小商店要求商品与 SKU 分层建模EasyWeChat 的$mall-product封装了完整的商品生命周期操作。3.1 导入或更新商品import方法支持批量导入或更新商品信息。相同product_id的商品会被更新不存在的则新建。价格统一以分为单位$products [ [ product_id product_001, title 商品标题, sub_title 商品副标题, head_imgs [图片URL1, 图片URL2], category_id 1234, brand_id 5678, model 型号, third_cat_id 9012, product_type 1, qualification_pics [资质图片URL], src_wxapp_path pages/product/detail?id123, skus [ [ sku_id sku_001, price 9900, // 以分为单位 original_price 12900, status 1, // 1:上架 0:下架 stock_num 100, sku_attrs [ [attr_key 颜色, attr_value 红色], [attr_key 尺寸, attr_value L] ] ] ] ] ]; $result $mall-product-import($products, false); // false表示正式环境参数要点head_imgs为商品头图 URL 数组必须先上传到微信服务器或使用 HTTPS 图片地址category_id、third_cat_id等分类 ID 需从微信官方小商店类目体系获取skus中的price、original_price单位为分status为 1 表示上架、0 表示下架import的第二个布尔参数控制环境传入false表示正式环境按微信小商店接口约定不同环境调用的能力有差异请以微信官方当前规则为准。3.2 查询商品信息query方法按product_id查询商品详细信息need_edit_spu控制返回的 SPU 数据是否可用于编辑回填$params [ product_id product_001, need_edit_spu 1 ]; $result $mall-product-query($params);3.3 获取商品状态批量查询多个商品当前的上架/下架状态入参为product_id字符串数组$result $mall-product-getStatus([product_001, product_002]);3.4 更新商品状态updateStatus接收一个元素为「商品 ID 目标状态」的数组可一次性批量上下架多个商品$result $mall-product-updateStatus([ [product_id product_001, status 1], // 1:上架 0:下架 [product_id product_002, status 0] ]);四、购物车管理购物车能力面向已登录用户通过user_open_id标识围绕「商品 SKU」粒度进行增删查操作。4.1 添加商品到购物车$params [ user_open_id user_openid, sku_product_id product_001, sku_id sku_001, num 2 ]; $result $mall-cart-add($params);4.2 获取购物车商品按用户维度拉取该用户购物车中的全部商品条目$params [ user_open_id user_openid ]; $result $mall-cart-get($params);4.3 删除购物车商品删除时需要同时指定商品 ID 与 SKU ID精确到具体规格$params [ user_open_id user_openid, sku_product_id product_001, sku_id sku_001 ]; $result $mall-cart-delete($params);五、订单管理订单模块覆盖「生成订单 → 更新订单状态 → 批量拉取订单」的核心履约链路。订单数据结构较为复杂分为商品信息、支付信息、价格信息、配送信息四大部分。5.1 生成订单add方法一次性提交整单数据。create_time、prepay_time等时间字段建议直接使用time()生成 Unix 时间戳order_id需要业务侧保证唯一可通过order_ . time()之类的策略生成$orderData [ create_time time(), type 1, order_id order_ . time(), openid user_openid, union_id user_unionid, product_infos [ [ product_id product_001, sku_id sku_001, product_cnt 2, sale_price 9900, head_img 商品图片URL, title 商品标题, path pages/product/detail?id123 ] ], pay_info [ pay_method 微信支付, pay_method_type 1, prepay_id prepay_id_xxx, prepay_time time() ], price_info [ order_price 19800, freight 1000, discounted_price 0, additional_price 0, additional_remarks ], delivery_info [ delivery_type 1, receiver_name 张三, detailed_address 详细地址, tel_number 13800138000, country 中国, province 北京市, city 北京市, town 朝阳区 ] ]; $result $mall-order-add($orderData);结构说明product_infos下单商品明细sale_price为该 SKU 的成交单价分pay_info支付信息prepay_method_type区分支付方式prepay_id通常来自微信支付统一下单返回price_info整单金额拆分order_price为订单总价、freight为运费、discounted_price为优惠金额、additional_price为加价金额分delivery_info收货信息delivery_type指定配送方式收货地址按国家/省/市/区四级填写。5.2 更新订单状态订单状态变更需要严格遵循微信小商店的状态机规范action_type标识操作类型action_remark为操作备注$params [ order_id order_123, status 2, // 订单状态 action_type 1, // 操作类型 action_remark 操作备注 ]; $result $mall-order-updateStatus($params);5.3 批量获取订单list方法按创建时间区间批量拉取订单支持游标分页首次调用last_index传空字符串后续用上一次返回的分页标识继续翻页$params [ start_create_time strtotime(-30 days), end_create_time time(), last_index , // 分页标识 page_size 10 ]; $result $mall-order-list($params);六、媒体文件管理商品头图、资质图片等素材需要先上传至微信服务器获得media_id后才能在商品数据中引用这也印证了「图片需要先上传到微信服务器」的注意事项。6.1 上传图片$result $mall-media-uploadImg(/path/to/image.jpg);6.2 获取图片根据上传返回的media_id获取图片信息$result $mall-media-getImg(media_id);七、完整示例下面把「初始化应用 → 导入商品 → 查询商品」串成一段可直接运行验证的完整流程use EasyWeChat\Factory; $config [ app_id your-app-id, secret your-app-secret, // ... ]; $app Factory::miniProgram($config); $mall $app-mall; // 导入商品 $products [ [ product_id test_product_001, title 测试商品, sub_title 这是一个测试商品, head_imgs [https://example.com/img1.jpg], category_id 1234, skus [ [ sku_id sku_001, price 9900, original_price 12900, status 1, stock_num 100 ] ] ] ]; $result $mall-product-import($products); if ($result[errcode] 0) { echo 商品导入成功\n; // 查询商品信息 $productInfo $mall-product-query([product_id test_product_001]); print_r($productInfo); }关于返回值SDK 底层由 AccessTokenAwareClient 负责在请求前注入 access_token并在收到响应后按errcode与error字段判定成败默认配置下返回数组response_type array因此可以直接用$result[errcode] 0判断业务是否成功。若配置了http.throw业务失败时会抛出异常而非返回错误数组具体可参考 src/MiniApp/Application.php 中createClient()的 failureJudge 逻辑。八、注意事项金额单位商品价格、订单金额等所有货币字段一律以分为单位如9900表示 99 元切勿直接使用元否则会造成金额差 100 倍图片素材图片需要先通过mall-media-uploadImg()上传到微信服务器获取media_id或直接使用 HTTPS URL否则商品头图、资质图片无法生效分类 ID商品分类 IDcategory_id等需要从微信官方小商店类目体系获取不同品类对应不同 ID需要与平台方核对确认订单状态流转订单状态变更必须按照微信小商店的规范执行非法状态跳转会报错请务必在业务侧维护状态机调用频率限制微信小商店 API 有调用频率限制批量操作导入、批量拉单时请合理控制调用频次建议结合缓存与队列削峰。九、小结本文基于 docs/src/5.x/mini-program/mall.md 完整梳理了 EasyWeChat 小程序微信小商店的四个业务模块商品product、购物车cart、订单order与媒体media。在实际项目中建议按照「先上传媒体获取media_id→ 导入商品 → 用户加购 → 生成订单 → 按需更新订单状态」的链路组织业务代码并始终牢记金额以分存储、分类 ID 以官方数据为准、订单状态严格按规范流转这三点核心约束。更多小程序模块如business商户功能可继续查阅 docs/src/5.x/mini-program 目录下的对应文档。赞分享后端即时通讯【免费下载链接】easywechat 一个 PHP 微信 SDK项目地址https://gitcode.com/gh_mirrors/ea/easywechat点击查看免费下载相关推荐statamic/cms电子商务商品管理、购物车与订单处理statamic/cms电子商务商品管理、购物车与订单处理 还在为静态网站添加电子商务功能而烦恼吗Statamic作为一款强大的Laravel CMS虽然后端前端上一篇Picturefill与CSS媒体查询构建无缝响应式体验下一篇Swin Transformer S3 Tiny与AutoFormerV2技术融合搜索视觉Transformer空间的最佳实践创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。