UrShop你的商店

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

【UrShop 专属 · 仅对接 urshop.cn 后端时使用,与 Ushopun 是两套不同后端】当用户明确要开发对接 UrShop(urshop.cn / 优社电商,端点前缀 /v1/...,返回体 Code/Data 大写)后端的小程序商城时,才调用本技能;涵盖用户认证、商品、购物车、结算支付、订单、分销、优惠券等全部 API。注意:若用户只是泛泛地说「小程序商城 / 商城小程序 / 电商小程序」,或提及 Ushopun / 优社云 / dev.ushopun.com(接口前缀 /api/v2,返回体 code/content/data 小写),请改用技能 miniprogram-mall-ushopun-official,禁止使用本技能。

一句话选型结论

按资料字段整理

UrShop你的商店是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_99b1d2cb/urshop
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_99b1d2cb仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791659017
正文体量28.2 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
UrShop你的商店当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

28.2 KB
模型实际读到的说明书原文,来自技能仓库

【UrShop 专属】对接 UrShop(urshop.cn)后端的小程序商城开发规范

使用边界(先读这段,避免选错技能)

> ⚠️ 本技能只在用户明确要求对接 UrShop(urshop.cn / 优社电商)后端时使用,端点前缀 /v1/...、返回体 Code/Data(大写)。
>
> 它与 Ushopun(优社云AI,dev.ushopun.com,端点前缀 /api/v2、返回体 code/content/data 小写)是两套完全不同的后端。若用户只是泛泛说「小程序商城 / 商城小程序 / 电商小程序」,或提到 Ushopun / 优社云 / dev.ushopun.com,请改用技能 miniprogram-mall-ushopun-official,不要用本技能生成代码。

概述

本 Skill 用于开发对接 UrShop(优社电商) 后端的微信小程序商城前端。UrShop 是一套成熟的电商后端系统,提供标准 RESTful API,本 Skill 涵盖了所有核心 API 接口说明、数据格式、调用方式及前端页面实现规范。

> 获取 UrShop 后端:请访问 UrShop 官网或联系优社电商获取后端部署包,包含数据库脚本、API 服务、管理后台。


项目结构

miniProgram/
├── api/
│   ├── conf.js          # UrShop API 端点常量(完整接口清单)
│   └── api.js           # HTTP 请求封装(自动注入鉴权、店铺上下文)
├── pages/               # 页面
│   ├── index/           # 首页
│   ├── category/        # 分类
│   ├── subcategory/     # 二级分类
│   ├── detail/          # 商品详情
│   ├── search/          # 搜索
│   ├── cart/            # 购物车
│   ├── checkout/        # 结算下单
│   ├── order/           # 订单管理
│   ├── orderList/       # 订单列表
│   ├── checkoutdetail/  # 订单详情
│   ├── payFinish/       # 支付成功
│   ├── my/              # 个人中心
│   ├── login/           # 登录
│   ├── address/         # 地址管理
│   ├── address-edit/    # 地址编辑
│   ├── collect/         # 收藏
│   ├── comment/         # 评价
│   ├── distribution/    # 分销中心
│   ├── youhuijuan/      # 优惠券
│   ├── available_coupon/# 可用优惠券
│   ├── usedcunpond/     # 选择优惠券
│   ├── recharge/        # 充值
│   ├── point/           # 积分
│   ├── cashout/         # 提现
│   ├── warrant/         # 授权
│   ├── supplier/        # 供应商
│   ├── partner/         # 合伙人
│   ├── returnrequests/  # 售后申请
│   ├── returndetail/    # 售后详情
│   ├── wuliuxinxi/      # 物流信息
│   ├── sharepage/       # 分享页
│   ├── salePage/        # 销售页
│   ├── saleOrder/       # 销售订单
│   ├── myCustomer/      # 我的客户
│   ├── myinvitre/       # 我的邀请
│   ├── bonusDetail/     # 分红详情
│   ├── dividend/        # 分红
│   ├── question/        # 常见问题
│   ├── questionList/    # 问题列表
│   ├── platform/        # 平台
│   ├── idcar/           # 身份证
│   ├── pwdset/          # 密码设置
│   └── welcome/         # 欢迎页
├── templates/           # 可复用模板
├── style/               # 公共样式
├── utils/               # 工具函数
├── images/              # 图片
├── libs/                # 第三方库(腾讯地图SDK等)
├── wxParse/             # 富文本解析
├── data/                # 静态数据
├── app.js
├── app.json
└── app.wxss

一、UrShop API 对接规范

1.1 基础配置

// app.js globalData
host: 'https://your-domain.urshop.cn/api'  // UrShop API 地址

1.2 请求封装(api/api.js)

所有请求统一入口,自动注入鉴权和店铺上下文:

const app = getApp()
const request = (url, options) => {
  return new Promise((resolve, reject) => {
    var shopId = 0
    if (wx.getStorageSync('adress')) { 
      shopId = wx.getStorageSync('adress').Id
    }
    url = `${app.globalData.host}${url}`
    wx.request({
      url: url,
      method: options.method,
      data: options.method === 'GET' ? options.data : JSON.stringify(options.data),
      header: {
        'Content-Type': 'application/json; charset=UTF-8',
        guid: wx.getStorageSync('guid'),          // 用户唯一标识
        authorization: wx.getStorageSync('token'), // 鉴权 Token
        shopId: shopId                             // 店铺/分店 ID
      },
      success(request) {
        if (request.data.Code === 200) {
          resolve(request.data)
        } else if (request.data.Code === 401) {
          resolve(request.data)  // 未授权,由调用方处理跳转登录
        } else {
          reject(request.data)   // 业务错误,Content 字段含错误描述
        }
      },
      fail(error) { reject(error.data) }
    })
  })
}

const get    = (url, options = {}) => request(url, { method: 'GET', data: options })
const post   = (url, options) => request(url, { method: 'POST', data: options })
const put    = (url, options) => request(url, { method: 'PUT', data: options })
const remove = (url, options) => request(url, { method: 'DELETE', data: options })

module.exports = { get, post, put, remove }

1.3 响应格式

UrShop 所有 API 统一返回格式:

{
  "Code": 200,
  "Data": { ... },
  "Content": "错误描述(Code != 200 时)"
}
Code 含义
200 成功
220 需审核/待处理
250 业务成功(有特殊处理逻辑)
401 未授权/未登录
其他 业务错误,Content 字段含具体描述

二、UrShop API 接口全览(按模块)

2.1 用户认证模块(AUTH)

端点常量 路径 方法 说明
login /v1/user/login GET 用户登录
weixinopenlogin /v1/weixinopen/login GET 微信开放平台登录
weixinopenphonenumber /v1/plugin/weixinopenphonenumber GET 获取微信手机号
weixinopeninfosubmit /v1/plugin/weixinopeninfosubmit GET 提交微信用户信息
accountlogin /v1/account/login POST 账号密码登录
register /v1/account/register POST 注册账号
pwdset /v1/account/pwdset POST 设置/修改密码
sendsmsforregister /v1/account/sendsmsforregister POST 发送注册短信验证码
sendsmsforfindpwd /v1/account/sendsmsforregister POST 发送找回密码短信

登录流程:

1. wx.login() → 获取 code
2. api.get(weixinopenlogin, { code, guid, encryptedData, iv, state })
   → 返回 { Data: { guid, token, openId } }
3. wx.setStorageSync('guid', data.guid)
4. wx.setStorageSync('token', data.token)
5. api.get(getcustomer) → 获取完整用户信息(邀请码、头像等)

获取手机号:

// WXML 按钮
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">授权手机号</button>

// JS 处理
getPhoneNumber(e) {
  wx.login({
    success(res) {
      api.get(weixinopenphonenumber, {
        code: res.code,
        encryptedData: e.detail.encryptedData,
        iv: e.detail.iv
      }).then(res => {
        wx.setStorageSync('phone', res.Data.phone)
      })
    }
  })
}

2.2 首页模块(HOME)

端点常量 路径 方法 参数 返回 说明
banner /v1/common/banner GET { name } { Data: { Items: [...] } } 获取轮播图,name 如 "homehotbanner"
homePro /v1/product/homeproducts GET - 首页推荐商品 首页商品(兼容旧接口)
homecategories /v1/category/homecategories GET - { Data: [...] } 首页分类列表
hotcategory /v1/search/hotcategory GET - { Data: [...] } 热门分类
notice /v1/topic/detail GET { systemName: 'notice' } { Data: { Body } } 系统公告
topic /v1/topic/detail GET - 专题详情
topicList /v1/topic/list GET - 专题列表
searCate /v1/search/findbycid GET { cid, size, page, showOnHome } { Data: { Items, Name, Description } } 按分类查商品
productbytag /v1/product/getbytag GET { tagName, tagshow } { Data: [...] } 按标签查商品,如 tagName: "热卖"
referrerinfo /v1/common/referrerinfo GET { code } { Data: { ReferrerCode, ShopName, ... } } 推荐人信息
referrerauto /v1/common/referrerauto GET - 自动绑定推荐关系
checkshop /v1/customer/checkshop POST ?Id=xxx 校验店铺 切换店铺时调用
formsubmit /v1/common/formsubmit POST - 表单提交
uploadpicture /v1/common/uploadpicture POST - 上传图片
getUnlimited /v1/wxminisdk/getUnlimited POST - 生成小程序码

2.3 商品模块(PRODUCT)

端点常量 路径 方法 参数 返回 说明
productId /v1/product/getbyid GET { id } { Data: { Id, Name, Price, Pictures, StockQuantity, Full, AttrValueList, ... } } 商品详情
getproductspec /v1/product/getproductspec GET { pId } { Data: [...] } 商品规格参数
getproductattr /v1/product/getproductattr GET { pId } { Data: { attrs: [...], tables: [...] } } 商品SKU属性(多属性联动)
tierprices /v1/tierprice/tierprices GET { productId } { Data: [{ Price, Quantity }] } 阶梯价格

商品详情 Data 关键字段:

{
  "Id": 1234,
  "Name": "商品名称",
  "Price": "¥99.00",
  "OldPrice": "¥199.00",
  "ProductCost": "¥50.00",
  "StockQuantity": 100,
  "SaleVolume": 500,
  "Published": true,
  "IsSpecialProduct": false,
  "SpecialStartDate": "2024-01-01 00:00:00",
  "SpecialEndDate": "2024-12-31 23:59:59",
  "Pictures": [{ "BigUrl": "https://...", "NormalUrl": "https://..." }],
  "AttrValueList": [{ "Id": 1, "AttributesXml": "颜色:红色[S]", "Price": "¥99.00", "Qty": 50 }],
  "Full": "<p>商品详情HTML</p>",
  "PushSystem": false,
  "RebateAmount": 10.00,
  "ShippingAddress": "全国包邮",
  "IsIDUpload": false
}

SKU 多属性联动解析:

// getproductattr 返回的 tables 结构
// { attrs: [{ name: "颜色", attrValArr: [{ name: "红色", value: "红色" }, ...] }, ...],
//   tables: [{ info: { qty: 50, price: 99, sku: "R001" }, arrs: [{ value: "红色" }, { value: "M" }] }] }
// 需要转换为键值对形式用于快速匹配

2.4 分类模块(CATEGORY)

端点常量 路径 方法 参数 说明
category /v1/category/sublist GET - 一级分类列表(含子分类)
gethotcate /v1/category/get GET - 获取热门分类

2.5 搜索模块(SEARCH)

端点常量 路径 方法 参数 说明
search /v1/search/find GET { q, page } 关键词搜索商品
searCate /v1/search/findbycid GET { cid, size, page } 按分类ID查商品

2.6 购物车模块(CART)

端点常量 路径 方法 参数 返回 说明
getShoppingcart /v1/shoppingcart/get GET - { Data: { Items: [...], OrderTotal } } 获取购物车列表
producttocart /v1/shoppingcart/producttocart POST { PId, Qty, AttrValue } - 加入购物车
productstocart /v1/shoppingcart/productstocart POST [{ PId, Qty }] - 批量加入购物车
updatecartitem /v1/shoppingcart/updatecartitem POST { Id, Quantity, Selected } - 更新购物车项(数量/选中)
removecartitem /v1/shoppingcart/removecartitem POST ?id=xxx - 删除购物车项
cartCount /v1/shoppingcart/count GET - { Data: Number } 购物车商品数量
cartallselected /v1/shoppingcart/cartallselected POST ?selected=true/false - 全选/取消全选

购物车 Item 结构:

{
  "Id": 1,
  "Name": "商品名",
  "ProductType": "新品",
  "Picture": { "NormalUrl": "https://..." },
  "UnitPrice": "¥99.00",
  "Qty": 2,
  "Selected": true,
  "Warnings": ["库存不足"]
}

2.7 收藏/心愿单模块(FAVORITES)

端点常量 路径 方法 参数 说明
favoriteslist /v1/favorites/list GET - 收藏列表
favoritessubmits /v1/favorites/submit POST { ProductId } 添加收藏
remove /v1/favorites/remove POST ?id=xxx 取消收藏
iscollect /v1/shoppingcart/iscollect POST { pid } 判断是否已收藏
towishlist /v1/shoppingcart/towishlist POST { PId, Qty } 添加到心愿单
wishlist /v1/shoppingcart/wishlist GET - 心愿单列表
removewishlistitem /v1/shoppingcart/removewishlistitem POST - 移除心愿单项

2.8 结算/下单模块(CHECKOUT)

端点常量 路径 方法 参数 返回 说明
producttocheckout /v1/shoppingcart/producttocheckout POST { PId, Qty, AttrValue } - 立即购买(单品直转结算)
getcheckout /v1/checkout/get GET - { Data: { Items, Address, OrderTotal, Shopping } } 获取结算信息
checkminsubtotal /v1/checkout/checkminsubtotal GET - - 检查最低消费/勾选
submitcheckout /v1/checkout/submit POST { AddressId, PaymentMethod, Balance, Remark, CouponId, RentDays, PushSystem } { Data: { OrderId, SubOrders } } 提交订单

submitcheckout 参数说明:

参数 类型 必填 说明
AddressId Number 是 收货地址 ID
PaymentMethod String 是 支付方式,"Payments.WeixinOpen"
Balance Number 否 使用余额金额,0 表示不用余额
Remark String 否 订单备注
CouponId Number 否 使用的优惠券 ID
RentDays Number 否 租赁天数
PushSystem Boolean 否 是否为租赁订单

2.9 支付模块(PAYMENT)

端点常量 路径 方法 参数 返回 说明
paymentweixinwap /v1/payment/paying GET { orderId, paytype: 'Order' } { Data: { OrderId, CreateTime, OrderPrice, KeyValue: { timeStamp, nonceStr, package, signType, paySign } } } 获取微信支付参数

完整支付流程:

// 1. 提交订单
api.post(submitcheckout, { AddressId, PaymentMethod, Balance, Remark, CouponId })
  .then(res => {
    const orderId = res.Data.OrderId
    // 2. 处理子订单(如果有)
    if (res.Data.SubOrders) {
      // 展示子订单列表,逐个支付
    } else {
      // 3. 发起支付
      pay(orderId)
    }
  })

function pay(orderId) {
  api.get(paymentweixinwap, { orderId, paytype: 'Order' })
    .then(res => {
      const rep = res.Data.KeyValue
      wx.requestPayment({
        timeStamp: rep.timeStamp,
        nonceStr: rep.nonceStr,
        package: rep.package,
        signType: rep.signType,
        paySign: rep.paySign,
        success() { /* 跳转支付成功页 */ },
        fail()    { /* 提示支付失败 */ }
      })
    })
}

2.10 订单模块(ORDER)

端点常量 路径 方法 参数 说明
orderList /v1/order/list GET { orderstatus, page } 订单列表(分页,每页12条)
orderDetail /v1/order/detail GET - 订单详情
ordercancel /v1/order/cancel POST 订单 GUID 取消订单
orderconfirm /v1/order/complete POST - 确认收货
deliver /v1/order/deliver POST - 发货信息
returnrequests /v1/order/returnrequests GET - 售后申请列表
returnpost /v1/order/returnpost POST - 提交售后申请
returnreasons /v1/common/returnreasons GET - 退货原因列表
returnactions /v1/common/returnactions GET - 退货操作列表

订单状态映射:

OrderStatusId OrderStatus 说明
10 待付款 可取消、可支付
20 待发货 可查看详情
30 待收货 可查看物流、确认收货
40 已完成 可查看详情

2.11 地址模块(ADDRESS)

端点常量 路径 方法 参数 说明
addressList /v1/address/list GET - 收货地址列表
addressdefault /v1/address/default GET - 默认地址
addressadd /v1/address/add POST { Name, Phone, ProvinceName, CityName, AreaName, Address } 新增地址
addressedit /v1/address/edit POST { Id, Name, Phone, ... } 编辑地址
pickuplist /v1/shipping/pickuplist GET - 自提点/分店列表

2.12 物流模块(LOGISTICS)

端点常量 路径 方法 参数 说明
shipments /v1/shipping/shipments GET - 物流信息
detail /v1/shipping/shipments GET - 物流详情
wuliuxinxi /Plugins/ExpressYuantong/Api GET - 圆通快递查询
kd100api /v1/kd100/api GET - 快递100查询

2.13 钱包/账户模块(WALLET)

端点常量 路径 方法 参数 返回 说明
wallet /v1/wallet/get GET - { Data: { AvailAmount, ... } } 钱包信息(余额等)
getminiaccount /v1/miniaccount/get GET - 小程序账户信息
rechargeminiaccount /v1/miniaccount/recharge POST - 充值
rechargelist /v1/miniaccount/rechargelist GET - 充值记录
exchange /v1/wallet/exchange POST - 积分兑换
cardexchange /v1/wallet/cardexchange POST - 卡券兑换
recordlist /v1/wallet/recordlist GET - 交易记录

2.14 优惠券模块(COUPON)

端点常量 路径 方法 参数 说明
usablecoupon /v1/coupon/usablecoupon GET { orderTotal } 可用优惠券列表(按订单金额筛选)
couponlist /v1/coupon/couponlist GET - 用户优惠券列表
couponshow /v1/coupon/show POST { Account } 展示优惠券
getcoupon /v1/coupon/getcoupon POST { Code } 领取优惠券
coupon_center /v1/coupon/center GET - 领券中心

2.15 评价模块(REVIEW)

端点常量 路径 方法 参数 说明
commentlist /v1/productreview/list GET { pId } 商品评价列表
commentsubmit /v1/productreview/submit POST - 提交评价
myreviews /v1/productreview/myreviews GET - 我的评价
productreviewing /v1/productreview/productreviewing GET - 待评价商品

2.16 分销/代理模块(DISTRIBUTION)

端点常量 路径 方法 参数 返回 说明
customer /v1/customer/submit POST - 提交客户信息
getcustomer /v1/customer/get GET - { Data: { Code, Phone, AvatarUrl, RoleIdArray, Fields, ... } } 获取当前用户信息
myinvitees /v1/customer/myinvitees GET - 我的邀请列表
myinvitecode /v1/customer/myinvitecode GET - { Data: { Code } } 我的邀请码
agentmyinfo /v1/agents/myinfo GET - { Data: { Approved, ... } } 代理信息
agentmyusers /v1/agents/myusers GET - 我的团队成员
agentmyorders /v1/agents/myorders GET - 团队订单
agentmysummary /v1/agents/mysummary GET - 销售汇总
agentmybonus /v1/agents/mybonus GET - 我的分红
agentsupgrade /v1/agents/upgrade GET - 升级代理(Code=220需审核)
agentspostinfo /v1/agents/postinfo POST { RealName, Phone } 提交代理申请

三、核心业务流程

3.1 用户登录授权流程

┌─────────────┐
│ wx.login()  │ → 获取临时 code
└──────┬──────┘
       ↓
┌──────────────────────────────────┐
│ wx.getUserProfile() 获取用户信息  │ → encryptedData, iv
└──────┬───────────────────────────┘
       ↓
┌──────────────────────────────────────────────────┐
│ api.get(weixinopenlogin, { code, guid,            │
│   encryptedData, iv, state })                     │
│ → 返回 { guid, token, openId }                    │
│ → 存储 guid, token 到 Storage                     │
└──────┬───────────────────────────────────────────┘
       ↓
┌────────────────────────┐
│ api.get(getcustomer)   │ → 获取完整用户信息 + 邀请码
└──────┬─────────────────┘
       ↓
┌──────────────────────────────────────────────┐
│ <button open-type="getPhoneNumber">           │
│ → api.get(weixinopenphonenumber)             │
│ → 存储 phone 到 Storage                       │
└──────────────────────────────────────────────┘

3.2 商品购买完整流程

详情页 → 选择规格SKU → 加入购物车 / 立即购买
                          ↓
                    购物车列表 → 勾选商品 → 去结算
                          ↓
                    结算页(选择地址、优惠券、支付方式)
                          ↓
                    提交订单(submitcheckout)
                          ↓
                  ┌──────┴──────┐
                  ↓              ↓
             无子订单        有子订单(SubOrders)
                  ↓              ↓
          微信支付调用      逐个展示子订单
                  ↓              ↓
          支付成功          逐个子订单支付
                  ↓              ↓
        跳转成功页       全部支付完成

3.3 分销推广流程

用户A 分享小程序(携带邀请码 code)
      ↓
用户B 通过分享链接进入
      ↓
wx.setStorageSync('code', code) → 存储推荐码
      ↓
用户B 完成登录授权
      ↓
api.get(referrerauto) → 自动绑定推荐关系
      ↓
用户B 下单消费 → 用户A 获得佣金/分红

3.4 代理申请流程

个人中心 → 点击"成为合伙人"
      ↓
api.get(agentsupgrade)
      ↓
Code=200 → 已是代理,直接进入分销中心
Code=220 → 未申请/审核中 → 弹出表单
      ↓
填写真实姓名 + 手机号 → api.post(agentspostinfo, { RealName, Phone })
      ↓
提交成功 → 等待审核

四、页面实现要点

4.1 首页(index)

  • 轮播图:api.get(banner, { name: 'homehotbanner' }) → res.Data.Items[].Picture.BigUrl
  • 分类入口:api.get(homecategories) → 网格展示
  • 热卖商品:api.get(productbytag, { tagName: '热卖', tagshow: true }) → 横向滚动
  • 分类商品:先 api.get(hotcategory) 获取热门分类,再对每个分类调用 api.get(searCate, { cid, size: 3 })
  • 分店切换:展示 app.globalData.currentAdress,点击跳转 options 页面

4.2 商品详情(detail)

  • 商品信息:api.get(productId, { id }) → 完整商品数据
  • 富文本:使用 wxParse 渲染 res.Data.Full
  • SKU 面板:api.get(getproductattr, { pId }) → 多属性联动
  • 加入购物车:api.post(producttocart, { PId, Qty, AttrValue })
  • 立即购买:api.post(producttocheckout, { PId, Qty, AttrValue }) → 跳转 checkout
  • 收藏切换:api.post(favoritessubmits, { ProductId }) / api.post(remove + '?id=' + id)
  • 特价倒计时:解析 SpecialStartDate / SpecialEndDate,setTimeout 每秒刷新

4.3 购物车(cart)

  • 列表:api.get(getShoppingcart) → res.Data.Items
  • 选中切换:api.post(updatecartitem, { Id, Quantity, Selected: !selected })
  • 数量修改:api.post(updatecartitem, { Id, Quantity, Selected })
  • 全选:api.post(cartallselected + '?selected=' + flag, {})
  • 删除:api.post(removecartitem + '?id=' + id, {})
  • 结算:api.get(checkminsubtotal) 检查后跳转 checkout

4.4 结算页(checkout)

  • 结算数据:api.get(getcheckout) → 商品清单、地址、运费、合计
  • 可用优惠券:api.get(usablecoupon, { orderTotal })
  • 钱包余额:api.get(wallet) → res.Data.AvailAmount
  • 提交订单:api.post(submitcheckout, { AddressId, PaymentMethod, Balance, Remark, CouponId, RentDays, PushSystem })
  • 支付:api.get(paymentweixinwap, { orderId, paytype: 'Order' }) → wx.requestPayment
  • 租赁:isrent=true 时需填写租赁天数,计算 rentPrice = rentUnitPrice × days

4.5 订单(order)

  • 列表:api.get(orderList, { orderstatus, page }) → 分页加载
  • 取消:api.post(ordercancel, { OrderGuid })
  • 确认收货:api.post(orderconfirm)
  • 支付:直接对未支付订单调用 pay(orderId) 流程

4.6 个人中心(my)

  • 用户信息:api.get(getcustomer) → 头像、昵称、手机号、邀请码
  • 钱包:api.get(wallet) → 余额
  • 邀请码:api.get(myinvitecode) → 展示 + 复制到剪贴板
  • 代理申请:api.get(agentsupgrade) → Code=200 进入分销 / Code=220 弹出表单

五、对接 UrShop 后端的启动步骤

  1. 部署 UrShop 后端:从 UrShop 获取后端服务包,部署到服务器
  2. 配置 API 地址:修改 app.js 中 globalData.host 为你的 UrShop API 地址
  3. 配置小程序 AppID:在 project.config.json 中填写你的小程序 AppID
  4. 配置地图 Key:在 app.js 中替换腾讯地图 SDK 的 key
  5. 配置微信支付:在 UrShop 管理后台配置微信支付商户信息
  6. 发布上线:使用微信开发者工具上传代码,提交审核

六、开发注意事项

  1. 所有 API 端点必须在 conf.js 中定义为常量,禁止硬编码 URL
  2. 请求 header 自动携带 guid(用户标识)、authorization(Token)、shopId(店铺ID)
  3. 响应码 Code === 200 为成功,Code === 401 需跳转登录授权
  4. 错误时 reject() 的 data 对象 .Content 字段包含业务错误描述
  5. 使用 this.setData() 更新视图,数组项更新使用字符串路径 ['arr['+i+']']
  6. 特殊状态码:220(需审核)、250(特殊业务成功)
  7. 购物车数量上限 99
  8. 金额字段保留两位小数,使用 toFixed(2)
  9. 分页统一每页 12 条
  10. 图片使用 mode="widthFix" 自适应

常见问题

5 问
答案由本站依据条目字段整理
UrShop你的商店怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_99b1d2cb/urshop。安装方式为未标注。装完刷新技能列表或重开客户端。

UrShop你的商店支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

UrShop你的商店权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

UrShop你的商店收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

UrShop你的商店用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。