以前工作得很好,但是现在每当我创建一个新产品时,它都没有出现在任何地方,而不是我插入的类别或最新产品。但是当我尝试通过在特殊区域添加新价格来更新我的旧产品时,它正在更新。我尝试手动清除缓存但没有任何反应。我的所有产品也都已启用。
我也尝试在google中寻找答案,而我发现的最接近的是Latest Products not updating,但问题是在2009年被问到的,并且给出的答案不适用。 我也不熟悉php所以...有人可以帮忙吗?
答案 0 :(得分:0)
逐步检查
我正在拍摄产品所在的类别页面 opencart2 \ catalog \ controller \ product \ category.php
$results = $this->model_catalog_product->getProducts($filter_data);
检查$ results是否给出了一些输出,如果不是那么 转到opencart2 \ catalog \ model \ catalog \ product.php
检查第59行getProducts()函数和 检查$ sql是否提供输出
public function getProducts($data = array()) {
$sql = "SELECT p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1
WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating,
(SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id
AND pd2.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "'
AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW())
AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW()))
ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount,
(SELECT price FROM " . DB_PREFIX . "product_special ps
WHERE ps.product_id = p.product_id
AND ps.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "'
AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW())
AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW()))
ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special";
只有在这里你才能发现你的产品是从数据库出来的,如果没有,那么请更正你的sql查询或包含一些缺失值&#34;最有可能的是它将是添加产品的日期&#34;
OR 你说你的旧产品工作正常意味着有一些日期问题检查