opencart上传产品后前台不显示的若干原因和解决办法

opencart上架产品后,前台不显示的原因挺多的,要么是设置问题,要么是环境问题,要么是插件设置之类的。

设置

首先,产品设置了什么分类?还是没设置分类?如果有设置分类,去对应的分类查看产品,因为首页的模块不一定有显示你上架的产品。除非你设置了最新产品模块放首页。其次,你设置的分类是子分类,你在主分类是看不到的。这一点是OC设计问题,可以找我买插件解决。然后你去看看子分类是否有。

如果设置的分类也没有,那回头看看产品的状态是否启用,如果是关闭是不会显示的哦。后台有个复制产品功能,复制的产品默认是关闭的。请注意。

插件

有一些多商家插件,或者需要特殊设置的产品才显示出来,也是有的。之前就遇到过。需要关联商家才显示,是插件的代码逻辑就这样。虽然可以在select查询语句的where条件里去掉这个查询,但是如果这个是必须的,那么不建议修改。

环境

之前遇到过,怎么排查都没问题,但是我一个个打印where条件的时候,发现时间有问题,在仔细对比后发现录入的产品时间比实际上数据库的时间要早。比如录入的日期是31号,但是SQL查询的时间还是30号,就导致无法输出这个产品。如果是VPS云服务器,建议调整mysql系统和服务器系统时间,如果是虚拟主机,只好改代码了。具体修改如下图:

图左是文件路径,右边是对应的代码。GMT+6这个设定主要是因为,数据库的时间对应时区是GMT+6这个,那么我就要让上架产品的时候,默认选择的日期是对应数据库的日期。就不用每次都是改为前一天了。

好了,方法提供了,如果还是不懂,就付费修改吧。按照图的两个注释中间的代码添加,那么问题来了,如何知道时间差和时区呢?打印下就知道了。

打印查询

需要修改,肯定要知道时区要怎么设定,首先要查询数据库时间,和主机时间,查询对比。得到时差,查询时区,就知道要设置什么时区了。如下:

代码不贴了,看图,在getProduct()这个方法下面写入图中代码,自己多打打字吧。代码都用英文的括号和引号、分号,切记~~

然后前台随便打开一个产品,页头会输出信息,如果没,请刷新后台缓存。就是扩展管理里,右上角的ocmod缓存刷新。如果有其他缓存请一并刷新。

 

发布者

yumanutong

网名 yumanutong ,简称小草,可以付费找我解决问题哦。