Год / Марка / Модель Поиск продукта для Joomla / VirtueMart? - PullRequest
0 голосов
/ 01 октября 2010

Я нахожусь в процессе создания магазина автозапчастей с использованием Joomla и VirtueMart. Мне было интересно, есть ли способ для конечного пользователя выполнить поиск по году, марке, модели автомобиля, а затем указать соответствующие детали автомобиля.

Я понимаю, что это довольно сложно, и не ожидаю, что это будет решено с помощью простого быстрого решения, но любой совет или толчок в правильном направлении будут оценены.

Спасибо за ваше время.

Ответы [ 2 ]

1 голос
/ 05 октября 2010

Я ненавижу быть мокрым одеялом, но это не так просто.Подавляющее большинство автозапчастей имеют отношения один ко многим с автомобилями, на которых он потенциально может быть установлен.Например, Ford использовал один и тот же масляный фильтр на десятках моделей в течение 30 с лишним лет, и этот фильтр также подходит для множества приложений Chrysler.Первое, что вам нужно сделать, это составить хорошую таблицу «Год / Марка / Модель», в которой перечислены все автомобили, для которых вы будете продавать запчасти.Это на самом деле намного сложнее, чем кажется, потому что вы также должны учитывать двигатель, а в некоторых случаях это зависит от деталей, комплектации и других важных опций.

Хорошая новость заключается в том, что вам нужно добавить только одно поле впродукты ВМ.Поле должно быть списком всех идентификаторов для каждого года / марки / модели, к которой подходит деталь.

Хорошая реализация года / марки / модели - довольно сложный заказ, удачи!

0 голосов
/ 01 октября 2010

Вот что я бы сделал:

  • Добавьте эти параметры в серверную часть virtuemart в форме «Добавить продукт». Вы должны были бы добавить новые столбцы в базу данных, чтобы поддержать их. Это исправление довольно легко на самом деле.

Вы можете сделать это:

Добавьте поля формы в форму продукта в 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>

Затем вам нужно убедиться, что эти значения вставлены в базу данных. В файле (administrator \ components \ com_virtuemart \ classes \ ps_product.php) около строки 273 вы найдете что-то вроде этого - добавьте строку, которая не имеет отступов, как остальные:

    $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, возможно, это было бы более простым вариантом, но я никогда раньше не использовал поисковый модуль, поэтому не знаю. Изучите ваши варианты. Удачи!
...