Commerce 里的产品使用了基于 Rules 模块的定价规则, Rules 就是规则模块,也就是你可以创建不同的规则应用在不同的情况下,来影响产品的单价。比如你可以让不同的用户角色看到不同的价格,可以根据用户购买的产品数量来打折,或者设置产品在某个时间段的价格等等。
Commerce 的很多地方都是基于规则模块的,所以如果你还不知道什么是规则模块,可以看一下宁皓网的 《xx》这个课程。
下面我们创建一个简单的基于用户角色的定价规则 .. 当用户拥有管理员角色的时候,可以7折购买产品。
先打开 模块 .. 找到 Commerce 区域 ... 确定一下已经启用了 Product Pricing 产品定价,还有 Product Pricing UI ,产品定价界面 这两个模块 ...
然后点击 商店 .. 配置 .. 打开 商品定价规则 ..
在这里我们可以配置和管理商品定价的规则 .. 它其实就是一个规则模块的配置界面 . 只不过这里显示的是跟商品定价相关的规则 ..
下面我们添加一条新的定价规则 .. 添加定价规则 ..
先输入规则的机读名称 ... admin user discount .. 编辑 .. 再输入一个中文名 .. 管理员折扣 ..
在这个规则里,我们可以添加一个条件来判断一下用户的角色是否是管理员 .. 如果是,那么会执行添加的动作 .. 也就是让产品的单价乘以 0.7 。
添加条件 ... 条件的类型选择 用户的角色 ... 用户 是 current-user 也就是当前登录的用户 .. 角色 .. 选择 administrator .. 管理员 ..
保存 ...
你可以添加其它的条件,比如可以判断一下产品的类型等等 ...
下面我们再添加要执行的动作 .. 添加动作 ... 在 Commerce 行项 区域里,你可以选择影响产品价格的动作 .. 可以在单价上加上或减去一定数目的金额 ...
这里我们要做的是打折 .. 所以可以选择 用某个数目乘以单价 ...
然后在数目这里,输入要乘以的数值 ... 输入 .7 ... 乘以一个小数就相当于是打折了 ... 乘以 0.7 相当于为产品打 7 折。
下面的价格组件我们选择 折扣 .. 价格的舍入模式选择 进位 .. 然后点击 保存 ...
预览
我们可以先用一个普通的用户查看一件产品 ... 这辆 Epic 碳纤维的自行车的售价是 6 万块钱 ... 再回到用管理员登录的浏览器 ...
找到 Epic 这件产品 ... 因为我们现在的身份是管理员 .. 所以产品单价会打 7 折 .. 6 万块钱打 7 折正好是 4 万 2 .
下面我们可以修改一下价格的显示格式 .. 让用户更清楚的知道自己享受的折扣 ...
价格的显示
打开 商品 .. 产品 .. 产品类型 .. 点击 自行车产品 后面的 管理显示 .. 找到 价格 字段 ... 格式 这里 选择 带组件的格式化金额 ..
保存 .. 回到 自行车产品内容 .. 刷新 ...
你会看到价格的显示会有点变化 .. 上面会显示产品的原价 .. 还有给用户的折扣,最后是用户购买这件产品的最终价格 ...
我们可以安装模块来扩展产品价格的显示,Commerce Extra Price Formatters 模块就提供了几种价格展示形式 .. 在这个地址你可以下载到这个模块,然后再去导入课程资料包里的这个模块的中文翻译 ..
这里我已经提前安装好了这个模块 ... 一起来看一下 ... 回到自行车产品的管理显示 .. 找到价格字段 .. 点开格式下拉菜单 ..
这里的前三种格式就是 Commerce Extra Price Formatters 模块提供的 ..
先看一下建议零售价 .. 选择以后,点击字段后面的配置按钮 .. 勾选一下 对比建议零售价显示顾客节省的价格 ..
你可以自己去定义价格前面的标签 ... 点击 更新 ... 然后 保存 ...
再回到自行车产品内容 .. 刷新 ...
这里会显示产品的市场价,也就是建议零售价,还有给当前用户的销售价格 .. 另外还可以显示为用户节省的价格 ..