0

如何编写 PHP 片段来读取 OpenCart 数据库以按类别提取产品并将其显示在 OpenCart 框架之外?例如,我为小部件 A 和 B 构建了一个不错的前端网站,然后有一个名为 /cart 的子目录,其中安装了 OpenCart,在我的前端网站中,我加载了某种 OpenCart 库文件,然后读取数据库以获取产品按类别(A 和 B)。或者,也许您知道直接 SQL 本身的技术?

这个问题与这个问题不同,因为我试图不在 OpenCart 中构建新模板,而是使用 API(或直接访问数据库)在 OpenCart 的应用程序框架之外和我自己的应用程序框架中显示产品。

4

3 回答 3

0

如果你想要最快的方式,建立链接,如

https://your-shop.com.au/index.php?route=product/product&product_id=1579

您可以像这样获取类别“230”的product_id:

SELECT `oc_product`.`product_id`,`name`,`description`,`image` 
FROM `oc_product`,`oc_product_description` 
JOIN `oc_product_to_category` 
    ON `oc_product_to_category`.`product_id` = `oc_product_to_category`.`product_id`  
WHERE
    `oc_product_to_category`.`category_id` = '230' 
    AND `oc_product`.`status` = '1'

如果您想要 SEO 链接,请使用产品 ID 数组并处理此查询:

SELECT * 
FROM `oc_url_alias` 
WHERE 
    `query` LIKE '%PRODUCT_ID%' 
ORDER BY `url_alias_id` DESC

然后你可以做

https://your-shop.com.au/keyword
于 2021-09-01T22:55:44.023 回答
0

我尝试在 OpenCart 论坛上询问这个问题,但奇怪的是,mod 没有解释就删除了该帖子,并且从未告诉我原因。所以,我别无选择,只能从代码中挖掘答案,因为开发人员文档对这类问题很差。我发现 OpenCart 的产品目录可以通过查看以下文件中的类方法或通过在您的其他 Web 应用程序中加载该类文件来访问。(至于如何加载该类文件,这需要一些工作才能弄清楚——我还不知道。)

在您的 OpenCart 2.x 目录中,查找此文件:

目录/模型/目录/product.php

您将从 SQL 代码中了解 OpenCart 如何获取产品列表,然后了解如何获取单个产品的产品详细信息。

于 2017-03-09T04:50:26.447 回答
0

这是另一个从商店 0、制造商 17、类别 230 获取产品的查询以及构建友好 SEO url 的可能性:

 SELECT `oc_product`.`product_id`,`name`,`description`,`image`,`keyword`FROM `oc_product`
LEFT JOIN `oc_product_to_category`
   ON `oc_product_to_category`.`product_id` = `oc_product`.`product_id`
LEFT JOIN `oc_product_description`
   ON `oc_product_description`.`product_id` = `oc_product`.`product_id`
LEFT JOIN `oc_product_to_store`
   ON `oc_product_to_store`.`product_id` = `oc_product`.`product_id`
LEFT JOIN `oc_url_alias`
   ON (`oc_url_alias`.`query` LIKE  CONCAT('%',`oc_product`.`product_id`,'%'))
WHERE `oc_product_to_category`.`category_id` = '230' AND `oc_product`.`status` = '1' AND `oc_product`.`date_available` <= NOW() AND `oc_product`.`manufacturer_id`='17' AND `oc_product_to_store`.`store_id` = '0'
ORDER BY `oc_product`.`product_id` DESC LIMIT 10
于 2021-09-04T10:31:03.727 回答