0

我正在使用 Joomla 和 VirtueMart 建立一个 AutoParts 商店。我想知道最终用户是否有办法按汽车的年份、品牌、型号进行搜索,然后列出相应的汽车零件。

我意识到这非常复杂,不要指望通过简单的快速修复来解决这个问题,但是任何建议或朝着正确方向的推动都将不胜感激。

感谢您的时间。

4

2 回答 2

1

我讨厌做一条湿毯子,但事情没那么简单。绝大多数汽车零部件与其可能安装的汽车具有一对多的关系。例如,福特在 30 多年的时间里在数十种车型上使用了相同的机油滤清器,而且该滤清器也适用于克莱斯勒的大量应用。您需要做的第一个想法是整理一张好的年份/品牌/型号表,列出您将为其销售零件的所有汽车。这实际上比听起来要困难得多,因为您还必须考虑引擎,在某些情况下还取决于零件、装饰包和其他重要选项。

好消息是您只需在 VM 产品中添加一个字段。该字段应该是零件适合的每个年份/品牌/型号的所有 ID 的列表。

做好年份/品牌/模型实施是一项艰巨的任务,祝你好运!

于 2010-10-05T04:28:30.270 回答
0

这就是我要做的:

  • 将这些参数添加到“添加产品”表单下的美德玛特后端。您必须向数据库添加新列以支持这些。事实上,这个修复很容易。

您可以通过以下方式做到这一点:

在 admin (administrator\components\com_virtuemart\html\product.product_form.php) 中将表单框添加到产品表单中:

<tr class="row0"> 
  <td width="21%"><div style="text-align:right;font-weight:bold;">
    <div>Year:</div>
  </td>
  <td width="79%"> 
    <input type="text" class="inputbox"  name="year" value="<?php $db->sp("year"); ?>" size="2" maxlength="2" />
  </td>
</tr>

然后你需要确保这些值被插入到数据库中。在第 273 行附近的文件 (administrator\components\com_virtuemart\classes\ps_product.php) 中,您会发现类似这样的内容 - 添加不像其他行一样缩进的行:

    $fields = array ( 'vendor_id' => $vendor_id,
                    'product_parent_id' => vmRequest::getInt('product_parent_id'),
                    'product_sku' => vmGet($d,'product_sku'),
                    'product_name' => vmGet($d,'product_name'),
        'year' => vmGet($d,'year'),
                    'product_desc' => vmRequest::getVar('product_desc', '', 'default', '', VMREQUEST_ALLOWHTML),
                    'product_s_desc' => vmRequest::getVar('product_s_desc', '', 'default', '', VMREQUEST_ALLOWHTML),
                    'product_thumb_image' => vmGet($d,'product_thumb_image'),
                    'product_full_image' => vmGet($d,'product_full_image'),
  • 然后你需要做的是在你的浏览页面中添加一个表单,并在 ps_product.php 和 shop.browse.php 中,分别在 admin/classes 和 admin/html 中创建函数,以限制你在浏览页面上显示的产品根据搜索选项。我不会详细介绍这方面的代码,因为它很长,而且我个人喜欢为这类工作获得报酬。您也可以自定义 Virtuemart 搜索模块,也许这会是一个更简单的选择,但我以前从未使用过搜索模块,所以我不知道。探索您的选择。祝你好运!
于 2010-10-01T10:11:11.380 回答