Новости Joomla

Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla

Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla

👩‍💻 Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla.v.6.1.0 Что нового?Модуль корзины. Отображение корзины в виде offcanvas-элемента.Кнопка выхода в панели управления пользователя. Что тут сказать, просто добавили. Отправка писем только для заказов, оплаченных определёнными способами. Это удобно для рассылки сообщений, привязанных к региону или провайдеру (например, инструкции по банковскому переводу только для заказов, оплаченных банковским переводом).Листинг выплат по партнерской системе. В разделе управления партнёрскими программами появилось новое подменю «Выплаты», в котором перечислены выплаты партнёрам (упрощённое отслеживание и сверка). Добавлены настройки, благодаря которым можно определить категории товаров, на которые начисляется партнёрская комиссия с продаж.Список комплектов товаров. Система комплектов позволяет отслеживать остатки товаров, продаваемых в комплекте.Подробнее в блоге Hikashop.Поскольку мы не сообщали ранее о Hikashop 6.0, то вкратце скажем, что он вышел в июне 2025г. В новой версии было:- 13 исправлений ошибок- 17 улучшений. В частности:- - Hikashop теперь проверяет UserAgent пользователя перед добавлением товара в корзину, чтобы отсечь ботов. Ведь компонент хранит корзины в базе данных.- - улучшен роутинг компонента, позволяющий использовать в названии товара даже слеши.- - улучшения фильтра товаров - ускорение загрузки категорий/брендов/характеристик.- 4 новых функции:- - добавлена поддержка Joomla 6.0.- - Улучшена возможность адаптации форм HikaShop на фронтенде к шаблонам, не использующим стандартные классы Joomla.- - Плагин внутреннего баланса: возможность исключить уцененные товары из начисленных баллов.- - Теперь можно выбирать склады для вариантов товаров.Подробнее в Changelog Hikashop.Также при работе с Hikashop стоит учитывать, что один и тот же код поддерживает версии Joomla от 3.х до 5.х, а в таблице сравнения версий заявлена и Joomla 2.5. Беглый просмотр кода показал, что компонент как был, так и остался старым и для совместимости с Joomla 4+ просто добавлен плагин.@joomlafeed#joomla #расширения #hikashop

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

AlienAntFarm

  • Осваиваюсь на форуме
  • 42
  • 0 / 1
  • ...
Всем здрасте.

Делаю магазин на жумшопинг 3.2.7, жумла 1.7.3 и решил заняться написанием доставки Почтой России.
Нужна кой какая помощь.

Если кому интересно, вот как считает почта:

1. Узнать тарифную зону покупателя.

Берем первые три цифры индекса адресата и смотрим его тарифную зону относительно города отправки. В каждом городе свой набор тарифных зон на всю Россию(вот так веселье!). Узнать тарифные зоны от вашего города можно на почте. Всего тарифных зон 5 шт.

т.е это таблица типа:

Маска  Регион                       Зона
303      ОРЛОВСКАЯ ОБЛАСТЬ    3
305      КУРСКАЯ ОБЛАСТЬ        3
.....итд

2. Смотрим вес посылки.

Расчет стоимости отправки зависит от веса. Минималка 0.5 кг. За каждые последующие 0.5 кг почта начисляет еще денежку.

Пример:

Посылка обыкновенная 2.5 кг из Новосибирска в Белгород, индекс 308034.
Тарифная зона по маске "308" - 3
По 3-ей зоне базовый тариф - 127.1 руб, последующий тариф 16.2 руб

Получаем
на первые 0.5 кг - 127.1 руб, на последующие 2 кг - 4 раза по 16.2 руб, в сумме =   191,9 руб.

Есть еще наложенный платеж, но об это позже.

И так. В моем магазине по адресу http://yamoloda.ru/ оформление покупки происходит в три шага:

1. Заполнение данных
2. Выбор способа оплаты
3. Подтверждение заказа.

На странице "Выбор способа оплаты", рядом со способом оплаты по задумке должна появляться (чудесным образом) цена доставки.
Если я все верно понимаю, у меня за работу этой страницы отвечают два файла:
1. /components/com_jshopping/controllers/checkout.php строка 186 - function step3
2. /components/com_jshopping/templates/default/checkout/payments.php

Соответственно всю работу нужно производить в checkout.php строка 186 - function step3 а вывод в payments.php

И вот собственно первый вопрос: как в checkout.php function step3 получить индекс покупателя?   
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Хорошее дело вы затеяли  *DRINK*
Когда закончите, выложите пожалуйста для всех.

А вопрос наверное надо адресовать к victorantoniak.
*

AlienAntFarm

  • Осваиваюсь на форуме
  • 42
  • 0 / 1
  • ...
Спасибо, посмотрю...
*

AlienAntFarm

  • Осваиваюсь на форуме
  • 42
  • 0 / 1
  • ...
Я поглядел плагин и решил таки сделать сам.

Вот что есть на данном этапе:

На странице "Выбор способа оплаты", рядом со способом оплаты появляться цена и срок доставки.

Как это сделано:

Для начала создаем 2 таблицы в pma

1. _jshopping_index - таблица индексов с полями:

ind тип int(3) маска индекса из 3-х цифр
oblast тип varchar(255) - наименование области
tarif тип int(1) - тарифная зона
sroki тип int(2) - срок доставки

2. _jshopping_tarifi - таблица для тарифов c полями:

zona тип int(1) - номер тарифной зоны
osnovnoi тип float - основной тариф на 0.5 кг   
dobavochniy тип float - добавочный тариф за каждые последующие 0.5 кг.

действующие тарифы -
zona    osnovnoi    dobavochniy
1          119.5     10.1
2          121.1     11.2
3          127.1     16.2
4          170.3     22.8
5          192        26.2

Дальше лезем в /components/com_jshopping/controllers/checkout.php строка 241 - function step3
после:
Код
            $paym[$i]->name = $pm->name;
            $paym[$i]->payment_id = $pm->payment_id;
            $paym[$i]->payment_class = $pm->payment_class;
            $paym[$i]->payment_description = $pm->description;
            $paym[$i]->price_type = $pm->price_type;

Добавляем:

Код
//dostavka			
$index = substr($adv_user->zip, 0, 3); //получаем индекс, и отрубаем последние три цифры
$db=& JFactory::getDBO(); //соеденяемся с бд
$q='SELECT ind,tarif,sroki FROM `#__jshopping_index` WHERE ind='.$index.''; //находим в таблице нужную область по маске
$db->setQuery($q);
$row=$db->loadAssoc();//записываем полученное в массив

if (empty($row["tarif"])) { //проверяем - есть ли такая область в списке, если области в списке нету, то:
$row["tarif"]=3; // тарифная зона, по умолчанию - 3
$row["sroki"]=5; // срок доставки, по умолчанию - 6
}

$db1=& JFactory::getDBO(); //соеденяемся с бд
$q1='SELECT osnovnoi,dobavochniy FROM `#__jshopping_tarifi` WHERE zona='.$row["tarif"].''; //находим в таблице нужный тариф
$db1->setQuery($q1);
$row1=$db1->loadAssoc();
$tar=ceil($cart->getWeightProducts()/0.5); // смотрим вес продукта - во сколько раз он больше чем 0.5 кг
$dost=$row1['osnovnoi']+($tar-1)*$row1['dobavochniy'];//если больше 0.5 то прибавляться добавочный тариф

if ($pm->payment_id == 13 or $pm->payment_id == 14){//если способ доставки "по счету" или "квитанцией" то:
$delivery=round($dost); // такая сумма доставки, без копеек
}

if ($pm->payment_id == 12){//если способ доставки "наложенный платеж" то:
$nal=$dost+(($cart->getSum(1, 1, 1)+$dost)/100)*4;//считаем наложенный платеж
$delivery=round($nal);
}
//передаем данные о сумме доставки и сроках в массив:
$paym[$i]->dostavka = $delivery;
$paym[$i]->srok = $row["sroki"];
//dostavka

Теперь идем в /components/com_jshopping/templates/default/checkout/payments.php и вставляем куданибудь вывод:

Код
			if ($payment->payment_id == 13 or $payment->payment_id == 14 or $payment->payment_id == 12){
print _JSHOP_CHECKOUT_SHIPPING;
print $payment->dostavka;
print $payment->srok;
}

У меня все работает.

Осталось сделать так, что бы эти данные передавались дальше - на страницу "Подтверждение заказа", в счет и записывались в заказ в админ панели.

В связи с этим вопрос - как в /components/com_jshopping/controllers/checkout.php function step3 или function step3save передать сумму доставки в переменную  summ_delivery?
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Вот это круто.
Жаль что разработчики js вряд ли помогут, т.к. есть платные дополнения продажам которых такое решение может помешать.
*

AlienAntFarm

  • Осваиваюсь на форуме
  • 42
  • 0 / 1
  • ...
Ну я особенно помощи, честно говоря не жду...  8)
Спрашиваю я так - сам спросил - сам ответил.

А что касается расширения от разработчика тут есть несколько моментов:

1. Я хочу избежать шага "Выбор способа доставки"

2. Я так понял что в этом расширении на каждый индекс нужно писать что то вроде:
от 0.5 кг до 1кг - столько то рублей
от 1.5 кг до 2кг - столько то рублей
от 2.5 кг до 3кг - столько то рублей
итд...
это не очень то удобно.

3. Сроки доставки?

4. Надо бы что бы печатались документы для почты там по 4 бумажки на каждую посылку.


А если бы плагин мне подходил - мне бы не жалко было 15 евро...
*

AlienAntFarm

  • Осваиваюсь на форуме
  • 42
  • 0 / 1
  • ...
что то я заблудился.

я так понимаю есть 2 варианта:

1. Вычисляем доставку 1 раз на странице "Способ оплаты" потом передаем её дальше.
2. Вычисляем доставку на каждой странице(Способ оплаты, Подтверждение заказа, + в счет, + надо записать в заказ в админ панели).

Пока удалось только вычислять на странице "Способ оплаты".

Сделать 1 вариант мне не хватает знаний и опыта.

По второму варианту вопрос такой : как на странице "Подтверждение заказа" это файлы   
/components/com_jshopping/templates/default/cart/checkout.php  и /components/com_jshopping/controllers/checkout.php строка 610 - function step5
получить id способа оплаты и индекс покупателя?

Если кто нибудь знает как сделать подскажите, плз.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
индекс покупателя посмотри в adv_user где-нибудь поблизости.
*

AlienAntFarm

  • Осваиваюсь на форуме
  • 42
  • 0 / 1
  • ...
Спасибо, решение найдено. Чуть позже выложу.
« Последнее редактирование: 12.03.2012, 12:17:13 от AlienAntFarm »
*

AlienAntFarm

  • Осваиваюсь на форуме
  • 42
  • 0 / 1
  • ...
По горячим следам выкладываю решение для страницы "Подтверждение заказа"

в файле /components/com_jshopping/templates/default/cart/checkout.php строка 691 после
Код
        $lang = &JSFactory::getLang();
        $name = $lang->get("name");
        $sh_method->name = $sh_method->$name;
$view->assign('sh_method', $sh_method );
$view->assign('payment_name', $pm_method->$name);

вставляем

Код
		$view->assign('payment_method_id', $payment_method_id);
$view->assign('ves', $cart->getWeightProducts());
$view->assign('sum', $cart->getSum(1, 1, 1));

в /components/com_jshopping/templates/default/checkout/previewfinish.php вставляем куданибудь

Код
  <tr>
    <td class = "name">
       <?php print _JSHOP_SHIPPING_PRICE ?>
    </td>
    <td class = "value">
<?php
  $index = substr($this->delivery_info['zip'], 0, 3);
$db=& JFactory::getDBO();
$q='SELECT ind,tarif,sroki FROM `#__jshopping_index` WHERE ind='.$index.'';
$db->setQuery($q);
$row=$db->loadAssoc();

if (empty($row["tarif"])) {
$row["tarif"]=3;
$row["sroki"]=5;
}

$db1=& JFactory::getDBO();
$q1='SELECT osnovnoi,dobavochniy FROM `#__jshopping_tarifi` WHERE zona='.$row["tarif"].'';
$db1->setQuery($q1);
$row1=$db1->loadAssoc();
$tar=ceil($this->ves/0.5);
$dost=$row1['osnovnoi']+($tar-1)*$row1['dobavochniy'];

if ($this->payment_method_id == 13 or $this->payment_method_id == 14){
$delivery=round($dost);
print formatprice($delivery);
}

if ($this->payment_method_id == 12){
$nal=$dost+(($this->sum+$dost)/100)*4;
$delivery=round($nal);
print formatprice($delivery);
}
?>
    </td>
  </tr>
  <tr>
    <td>
  <?php print _JSHOP_ENDTOTAL?>
    </td>
    <td class = "value">
<?php
$this->sum=$this->sum+$delivery;
print formatprice($this->sum);
?>
</td>
  </tr>

у меня все работает.

Следующий этап - прописать тоже, в приходящем письме покупателю и в счете.
*

AlienAntFarm

  • Осваиваюсь на форуме
  • 42
  • 0 / 1
  • ...
чуть не забыл - если кто соберется делать - этот способ предполагает что у каждого продукта задан вес.
+ расчет должен вестись с учетом веса упаковки.
Для того что бы задать вес упаковки идем в /components/com_jshopping/models/cart.php строка 668 и после
Код
    function getWeightProducts() {
        $weight_sum = 0;
        foreach ($this->products as $prod) {
            $weight_sum += $prod['weight'] * $prod['quantity'];
}

вставляем

Код
//moi pravki
switch ($weight_sum)
{
case $weight_sum < 1;//если вес продуктов меньше 1 кг то
            $weight_sum = $weight_sum + 0.3; // вес упаковки около 300гр
         break;
case $weight_sum < 2; // если меньше 2 кг то
            $weight_sum = $weight_sum + 0.6; // + 600гр
         break;
case $weight_sum < 3; // итд
            $weight_sum = $weight_sum + 0.9;
         break;
case $weight_sum < 4;
            $weight_sum = $weight_sum + 1.2;
         break;
case $weight_sum < 5;
            $weight_sum = $weight_sum + 1.5;
         break;
case $weight_sum < 6;
         break;
default:
            $weight_sum = 0;
   break;
        }
//moi pravki

Как то так. ;D
Кстати если будете делать, рекомендую все вставки комментировать, а то потом не найдете.
Я например везде ставлю //moi pravki.
« Последнее редактирование: 12.03.2012, 14:27:13 от AlienAntFarm »
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
То есть это решение для магазинов, у которых доставка только Почтой России?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Не, ребята, вы не в ту сторону двигаетесь, смотеля на вас, сотрел, думал скоро прозреете, но видимо нет. Надо двигаться в сторону плагинов, а еще гораздо лучше аддонов, посмотрите по крайней мере мой EMS и сделайте на подобие. Хаки никому не нужны когда можно сделать правильно, хотя ваша работа не пропала даром, просто ее надо подобающим способом оформить.
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Не, ребята, вы не в ту сторону двигаетесь, смотеля на вас, сотрел, думал скоро прозреете, но видимо нет. Надо двигаться в сторону плагинов, а еще гораздо лучше аддонов, посмотрите по крайней мере мой EMS и сделайте на подобие. Хаки никому не нужны когда можно сделать правильно, хотя ваша работа не пропала даром, просто ее надо подобающим способом оформить.
Придется ждать пока Вам понадобится подобный аддон или плагин))
*

AlienAntFarm

  • Осваиваюсь на форуме
  • 42
  • 0 / 1
  • ...
Да, конкретно этот способ только для тех магазинов у которых один способ доставки - почта россии. Но его не сложно допилить и таким образом что бы это были 2 пункта при выборе доставки - "почта россии" и "почта россии наложенный платеж", например. А что касается плагина я бы с радостью сделал но я перво наперво хочу сделать что бы работало у меня в магазине. Поэтому я постараюсь закончить этот способ, а потом если будет время буду смотреть в сторону плагина - но это врядтли, мне кажется плагин это сложно и долго... Много очень нюансов надо учесть. Например надо еще вставить проверку страны - если Россия то все это считается, клиенту приходит на почту готовый счет итд. А если другая страна то ничего не считается а на почту приходит - "мы свяжемся с вами после расчета доставки". + У меня в магазине прописаны всякие скидки надо чтобы считалось с их учетом и т.д.
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
AlienAntFarm
Подскажите пожалуйста, откуда Вы взяли разбивку тарифных зон по по почтовым индексам?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Все данные можно взять из виртовской почты России.
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
*

AlienAntFarm

  • Осваиваюсь на форуме
  • 42
  • 0 / 1
  • ...
Я взял их в почтовом отделении)
*

AlienAntFarm

  • Осваиваюсь на форуме
  • 42
  • 0 / 1
  • ...
Если кому нужны тарифные зоны для Новосибирска, могу поделиться.
*

koshsh

  • Захожу иногда
  • 278
  • 8 / 0
Если кому нужны тарифные зоны для Новосибирска, могу поделиться.
Предложение еще в силе?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль доставки Сдек или Яндекс

Автор Preview

Ответов: 3
Просмотров: 7148
Последний ответ 04.09.2025, 10:02:39
от Preview
Расчет стоимости доставки в JoomShopping 3.12.3

Автор teanin

Ответов: 17
Просмотров: 12283
Последний ответ 23.04.2023, 11:55:30
от tigra-uki
Плагины доставки для Польши

Автор Alex_gs

Ответов: 1
Просмотров: 2180
Последний ответ 21.03.2023, 14:36:37
от kit2m2
Стоимость заказа без стоимости доставки

Автор Alex_gs

Ответов: 3
Просмотров: 2682
Последний ответ 17.01.2023, 15:04:06
от kit2m2
Аддон доставки Почта России по API

Автор sergeytolkachyov

Ответов: 4
Просмотров: 3497
Последний ответ 22.06.2022, 09:54:30
от sergeytolkachyov