Opencart设置商店首选项

时间:2015-06-07 03:14:06

标签: opencart opencart2.x

在Opencart中,我们有以下类型的产品。

印刷书籍(硬拷贝)将发送给客户。

同样我们有数字下载。

我们希望在商店级别设置一个选项,无论用户是想查看下载还是打印副本。

当用户选择下载选项时,它应仅显示所有类别中的可下载产品。

当用户选择“打印副本”时,它应仅显示每个类别中的打印产品。

欢迎任何有关实现此功能的建议。

由于

1 个答案:

答案 0 :(得分:0)

  

“有关实现此功能的任何建议”

从我的观点来看(可能不是最佳的)我们需要:

  • 用户偏好的永久存储 [完成5%]
    如果用户对所有产品感兴趣,则<DB_PREFIX>customer类型为INT,值为01用于数字下载等,向表TEXT添加一列。 ..,如果您以后可能会添加新的首选项,那么最好将所有用户首选项的序列化版本存储在User类型的列中
  • 检索用户偏好的方法 [完成25%]
    您可以在每次需要时从数据库中检索它,更好的方法是将其保留在会话中,就像保存类$data['products'][] = array(中的用户数据(如地址,电话)一样
  • 更改用户偏好的方法 [已完成40%]
    在用户设置页面中的某个复选框,用户首选项显示在他姓名旁边的标题中,并且可以直接从那里编辑
  • 最后,根据该偏好显示产品 [100%完成:D]
    您需要更改类别页面控制器,畅销模块,最新产品中的一些代码....(涉及显示产品的任何模块)
    • 简单,天真和丑陋的解决方案:您会注意到有一个代码段将产品数据复制到视图数据,它看起来像是 OC 2.X中的$this->data['products'][] = array(和OC 2之前版本的{{1}},这里的简单if条件就足够了,只需检查用户偏好并相应地决定是否将产品复制到视图数据<或li>
    • 更好的解决方案:从模型函数的最开始根据用户偏好过滤产品,为检索产品的所有模型函数添加额外的可选参数(不要忘记那些检索产品的函数count)表示用户的偏好,如果设置了参数则检查模型函数内部,那么你是否在查询中工作