0 Пользователей и 1 Гость просматривают эту тему.
  • 21 Ответов
  • 1235 Просмотров
*

effrit

  • Легенда
  • 9982
  • 1099 / 13
  • effrit.com
Всем привет!
Жестокая судьба столкнула с магазином на JoomShopping (но в целом, мне нравится  ;D), сейчас вот думаю, как упростить жизнь простым продавцам.

Для чего вывожу в карточке товара артикул=ID товара, в связи с чем понадобилось реализовать быстрый переход к товару, зная этот самый ID.

В связи с этим вопрос - как можно по красоте сделать такое, используя встроенные функции движка?
Корявый запрос к бд я могу сделать и потом соорудить не сеошную ссылку вида /index.php?option=com_jshopping&controller=product&task=view&category_id=69&product_id=987,
но хочется чего-то более утонченного :).

Вообще, в идеале надо бы интегрировать с поиском это дело, но это уже следующий этап бесконечного пути к совершенству :).
Ну и, если какие-то мысли есть по поводу, буду признателен - явно ведь велосипед изобретаю :).

Спасибо.
*

dmitry_stas

  • Легенда
  • 13152
  • 1232 / 8
Re: генерация ссылки по ID товара
« Ответ #1 : 13.03.2017, 12:10:59 »
а переход нужен откуда? из админки?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

effrit

  • Легенда
  • 9982
  • 1099 / 13
  • effrit.com
Re: генерация ссылки по ID товара
« Ответ #2 : 13.03.2017, 12:14:32 »
ну в админке же читерская ссылка - без ID категории, так что там задача автоматически решается :).
а вот со стороны сайта быстро глянуть, когда по телефону, скажем, артикул сообщат - вот тут грабля вылазит :)
*

dmitry_stas

  • Легенда
  • 13152
  • 1232 / 8
Re: генерация ссылки по ID товара
« Ответ #3 : 13.03.2017, 12:15:58 »
поиск будет ЖШ-шный или Жумловый+плагин ЖШ? ядро хакаем? может быть проще присвоить 1-м запросом артикул=ID, а по артикулу и так поиск ищет?
« Последнее редактирование: 13.03.2017, 12:20:59 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

effrit

  • Легенда
  • 9982
  • 1099 / 13
  • effrit.com
Re: генерация ссылки по ID товара
« Ответ #4 : 13.03.2017, 12:21:48 »
вот этот модуль стоит Jshopping Search.
как мне видится: перехватывается введенное значение, если это - число, то генерируем ссылку на товар.
если товара нет, то просто 404 вывалится.

ну или другой вариант, может в поиске уже предусмотрен режим передачи ID в каком-то виде.
*

dmitry_stas

  • Легенда
  • 13152
  • 1232 / 8
Re: генерация ссылки по ID товара
« Ответ #5 : 13.03.2017, 12:33:33 »
имхо самый простой вариант - поиск по каким полям искать определяется в \components\com_jshopping\lib\default_config.php
Код
$config->product_search_fields = ...
если хаки делаем, то добавляем в массив product_id прям тут, если не делаем, то создаем файл \components\com_jshopping\lib\user_config.php и там уже переопределяем $config->product_search_fields

а дальше просто надо убедиться, что product_id будет заведомо уникальный по отношению к другим полям, и достаточно длинный чтобы поиск сработал. и все :)

Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

effrit

  • Легенда
  • 9982
  • 1099 / 13
  • effrit.com
Re: генерация ссылки по ID товара
« Ответ #6 : 13.03.2017, 12:42:41 »
ммм. думается, этот метод даст побочные продукты поиска :)
типа, товар с ID = 10 вытащит 101, 1000. а уж что будет, если удастся через поиск протащить однозначное число... :)

наверно, надежнее все же будет гененрировать ссылку, а то тут подводные камни сразу повсплывали )
*

dmitry_stas

  • Легенда
  • 13152
  • 1232 / 8
Re: генерация ссылки по ID товара
« Ответ #7 : 13.03.2017, 12:46:54 »
так сделать ID
надо убедиться, что product_id будет заведомо уникальный по отношению к другим полям, и достаточно длинный чтобы поиск сработал
:) делаем старт ID товаров от 888800000 например. тогда первый ID будет 888800001 и так далее. и никаких совпадений :) если товаров предполагается больше чем 100К то соответственно нулей больше в конце сразу делаем
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

effrit

  • Легенда
  • 9982
  • 1099 / 13
  • effrit.com
Re: генерация ссылки по ID товара
« Ответ #8 : 13.03.2017, 12:48:41 »
это вполне вариант, но - для нового магаза :)
а для старого с 300 товаров и старте с единицы - это диверсия будет, думается ))
*

effrit

  • Легенда
  • 9982
  • 1099 / 13
  • effrit.com
*

dmitry_stas

  • Легенда
  • 13152
  • 1232 / 8
Re: генерация ссылки по ID товара
« Ответ #10 : 13.03.2017, 13:01:51 »
ох уже эти менеджеры :) выводить можно и без 8888, обрезать их :) а вбивать уже с ними. ну и изменить то ид можно в базе запросами.

ну а если ссылку, то надо тогда ловить плагином или хаком в контроллере \components\com_jshopping\controllers\search.php ввод юзера, проверять на число, если число, то выбирать product_id, если нашли, то делать запрос по этому product_id определять первую категорию (методы уже есть готовые в JTable продукта, надо просто load() и потом getCategory()), и редиректить на SEFLink('index.php?option=com_jshopping&controller=product&task=view&category_id=69&product_id=987')
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

effrit

  • Легенда
  • 9982
  • 1099 / 13
  • effrit.com
Re: генерация ссылки по ID товара
« Ответ #11 : 13.03.2017, 13:09:12 »
не, чем больше креатива на предмет "выводить можно и без 8888", тем менее мне хочется думать в эту сторону уже :).

а вот по второму - можно пример load() и потом getCategory() для гуманитариев :)?
*

dmitry_stas

  • Легенда
  • 13152
  • 1232 / 8
Re: генерация ссылки по ID товара
« Ответ #12 : 13.03.2017, 13:17:16 »
Код
$product_id =  ... ;
$tProduct = JTable::getInstance('Product','jshop');
$tProduct->load($product_id);
if ($tProduct->product_id) {
    $tProduct->getCategory();
    JFactory::getApplication()->redirect(SEFLink('index.php?option=com_jshopping&controller=product&task=view&category_id='.$tProduct->product_id.'&product_id='.$tProduct->category_id));
}
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dmitry_stas

  • Легенда
  • 13152
  • 1232 / 8
Re: генерация ссылки по ID товара
« Ответ #14 : 13.03.2017, 13:44:58 »
ахаха :) гуманитарии :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

effrit

  • Легенда
  • 9982
  • 1099 / 13
  • effrit.com
Re: генерация ссылки по ID товара
« Ответ #15 : 13.03.2017, 13:54:34 »
вот тебе смешно, а это все - правда!
тем более, это удобно, когда тебя пытаются заставит программировать.
типа "вы знаете, вот если бы вы стих попросили сочинить ... , а программирование - не мое" :)
*

effrit

  • Легенда
  • 9982
  • 1099 / 13
  • effrit.com
Re: генерация ссылки по ID товара
« Ответ #16 : 13.03.2017, 18:05:05 »
в общем, ленивые гуманитарии репу почесали и пошли своим кривым, но гордым путем :)
на сайте имеются мультикатегории, так что решено было воспользоваться этим делом для оправдания собственной лени и нежелания хакать ядро :).
в итоге в карточке товара выводим артикул вида:
1093-25
где первое число - ID товара, второе - ID категории.
в шаблоне создаем папку
mod_jshopping_search
в нее переносим default.php из модуля и там слегка правим JS часть, благо уже есть перехватчик, который проверяет ввод на пустоту.
почти изящно вписываем в него регулярку с проверкой и редирект на нужную страницу.
alert не дает выйти из скрипта раньше времени и перейти на поиск.
профит :)

Код
function isEmptyValue(value){
   
regexp = /^([\d]*)-([\d]*)/g;
str = value;
var maches = regexp.exec(str);
if(maches){
var url = '/index.php?option=com_jshopping&controller=product&task=view&category_id='+maches[2]+'&product_id='+maches[1];
window.location.href = url;
alert("введен артикул");
return false;
}
var pattern = /\S/;
return ret = (pattern.test(value))? (true) : (false);

}
*

dmitry_stas

  • Легенда
  • 13152
  • 1232 / 8
Re: генерация ссылки по ID товара
« Ответ #17 : 13.03.2017, 19:17:03 »
а урлы просто закрыть от индексации такие или каноникал прописать? ну че, норм решение. просто и со вкусом.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

effrit

  • Легенда
  • 9982
  • 1099 / 13
  • effrit.com
Re: генерация ссылки по ID товара
« Ответ #18 : 13.03.2017, 19:21:54 »
каноничный URL прописан плагином, скачал где-то бесплатный (не навигеновский, без перекидывания). а урлы страшные, естессно, закрыты сразу как только ставиться галочка "сеошные ссылки" :).
кстати, можно закрепить тему, наверно. вполне годных 2 решения есть.

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

*

effrit

  • Легенда
  • 9982
  • 1099 / 13
  • effrit.com
Re: генерация ссылки по ID товара
« Ответ #19 : 13.03.2017, 19:57:23 »
да, проверил var_dump'ом содержание объекта product - там нет указания текущей категории, они там все перечислены в массиве.
так что если кому надо вывести в артикул текущую - выколупываем отсель
Код
$_SERVER["HTTP_HOST"].'/index.php?' . http_build_query($_REQUEST);
/спасибо дяде Федору за наше счастливое детство :) /
*

dmitry_stas

  • Легенда
  • 13152
  • 1232 / 8
Re: генерация ссылки по ID товара
« Ответ #20 : 13.03.2017, 22:59:11 »
в карточке товара $this->category_id содержит id текущей категории
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Генерирование meta description из описания товара "на лету"

Автор gurkin

Ответов: 27
Просмотров: 5835
Последний ответ 16.09.2020, 23:56:53
от sbitven
Неправильные ссылки на подкатегории

Автор pavelbush

Ответов: 8
Просмотров: 484
Последний ответ 24.06.2018, 13:26:25
от pavelbush
Красивые ссылки магазина

Автор Paladinrus

Ответов: 4
Просмотров: 602
Последний ответ 23.04.2018, 09:16:44
от dmitry_stas
Ссылки на товар вида домен/алиастовара

Автор Taatshi

Ответов: 15
Просмотров: 853
Последний ответ 19.03.2018, 19:58:19
от Taatshi
Ссылки на не существующие страницы

Автор Edward_m

Ответов: 11
Просмотров: 778
Последний ответ 22.07.2017, 08:04:22
от Edward_m