Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

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

Undorik

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
Тема переименована.

^^^^^^^^^^^^^^^

Здравствуйте.
Подскажите пожалуйста, я где-то видел реализацию, но никак найти не могу, чтобы модуль доставки добавлял % к сумме заказа, а не фиксированное число.

Т.е. первый вариант - самовывоз, по нулям, это работает,
второй вариант, курьер - 10% от ИТОГО.

Спасибо.
« Последнее редактирование: 06.01.2013, 21:24:44 от Undorik »
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Если плагин доставки стандартный т.е. weight_countries
То
1 Налоги и правила расчета

   Вид расчета  наценка
   Операция +%
   Значение 10

2 в способе доставки
   Налог   название правила налогов

Для VM 2.0....
Думаю работать будет..) ;)
       
*

Undorik

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
Если плагин доставки стандартный т.е. weight_countries
То
1 Налоги и правила расчета

   Вид расчета  наценка
   Операция +%
   Значение 10

2 в способе доставки
   Налог   название правила налогов

Для VM 2.0....
Думаю работать будет..) ;)
       
пробовал, берет налог только с минимальной стоимости доставки (если ее указывать) или просто ноль, если нет даже минимальной. Пробовал ставить другие типы налогов. Не помогает :(
*

Undorik

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Значит так

/vmshipment/weight_countries/weight_countries.xml
После 25 строки ставим это :
Код
<param name="shippingCost" type="text" size="10" default="" label="shipping cost"/>

Далее
/vmshipment/weight_countries/weight_countries.php
После 165 строки есть функция  :function getCosts
Меняем на мою

Код
 

function getCosts(VirtueMartCart $cart, $method, $cart_prices) {
if ($method->free_shipment && $cart_prices['salesPrice'] >= $method->free_shipment) {
return 0;
} else {
if (preg_match('/%$/', $method->shippingCost)) {
    $method->shippingCost = substr($method->shippingCost, 0, -1);
return $method->cost + $method->package_fee+($cart_prices[salesPrice]*0.01*$method->shippingCost);
}else{
return $method->cost + $method->package_fee+$method->shippingCost;
}
}
    }// end function getCosts


Все сохраняем и в настройке способа доставки в поле  shipping cost
Можем ставить такое
10% наценка или наоборот -10% скидка
или просто 10 наценка 10 в твоей валюте ну или -10

Все Ура!
Пользуйся!
PS Да к с тате толь что придумал ;D
« Последнее редактирование: 06.01.2013, 02:50:55 от gartes »
*

Undorik

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
Выпадает в ошибку 500 при попытке зайти в товар на сайте или в настройки доставки в админке. Но, чую, истина где-то рядом.
Что делает
Код
if (preg_match('/%$/', $method->shippingCost))
?
« Последнее редактирование: 06.01.2013, 10:49:44 от Undorik »
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
ищет знак проценты "%"       в строке параметров шип кост
« Последнее редактирование: 06.01.2013, 11:26:09 от gartes »
*

Undorik

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
ищет проценты в строке параметров шип кост

А все, нашел! Мой косяк был, скобочку недокомментил от старого скрипта!
ура ура ура!
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Круть это модуль Новой почты.... ;D тут темка есть зайди глянь что может но только для Украины
*

Undorik

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
Ой
« Ответ #12 : 06.01.2013, 20:58:06 »
Запил стандартного модуля под УНИВЕРСАЛЬНУЮ доставку Почтой России. Может и пригодится кому.
Выражаю огромную благодарность gartes. Собственно переписка выше.

Просьба еще раз проверить и, если возможно, оптимизировать алгоритм (сижу с самого утра без обеда и сна :) ).

Требования: посылки от 1 грамма до 10 килограмм и фиксированная минимальная сумма (стандартный модуль умеет). У меня товар вбит в килограммах везде и я не уверен как себя поведет доставка, если у вас стоят другие величины.

О тарифах почты (на сайте черт ногу сломит, мучайте 8-800, но тоже не панацея). Расскажу коротко о тех, которые (вроде бы) подходят мне, в принципе допиливаемо под что угодно.
1 тариф, бандероль с объявленной стоимостью. Эта стоимость необходима для использования наложенного платежа.
мы платим 78.82 за первые 500 грамм и последующие так же, округляется в бОльшую сторону +4% за объявленную стоимость.
от 0 до 2 кг
2 тариф, посылка, там зоны, с зонами не разбирался, и на их сайте тоже вырвиглаз, брал по максимуму пока что.
199 рублей за первые 500г и 33.70 за следующие и 4% за объявленную стоимость
3 тариф отправления 1го класса (на 8-800 говорят быстрее идет, ага :D )
154,58 за первые 100 грамм 17.11 за следующие и 4% за объявленную стоимость.

вся задача сводится к:
если стоимость доставки вышла небольшой - выставить минимум, учитывая в принципе транспортный_расход/лень_идти_до_почты/упаковку (далее "жадность")
если стоимость доставки вышла относительно большой (а значит продается товар с хорошим ценником), то забить на жадность и считать по минималке, лишь бы не спугнуть покупателя.

переменные
в файле /vmshipment/weight_countries/weight_countries.xml после 25й строки

Код
	<param name="shippingCost" type="text" size="10" default="" label="наценка почты от стоимости (% или рубли)"/>
<param name="shippingAddWeight" type="text" size="10" default="" label="вес первой или последующей полной или неполной единицы веса (грамм) "/>
<param name="shippingFirstCostCount" type="text" size="10" default="" label="тариф почты за первую единицу веса (рубли)"/>
<param name="shippingNextCostCount" type="text" size="10" default="" label="тариф почты за последующие единицы веса (рубли)"/>
<param name="shippingGreed" type="text" size="10" default="" label="жадность (рубли)"/>

Функция /vmshipment/weight_countries/weight_countries.php
После 165 строки есть функция  :function getCosts

Тут все как у gartes`а.
Код
function getCosts (VirtueMartCart $cart, $method, $cart_prices) {
if ($method->free_shipment && $cart_prices['salesPrice'] >= $method->free_shipment) {
return 0;
} else {
if (preg_match('/%$/', $method->shippingCost)) {                                                        // % или фиксированная сумма           
    $method->shippingCost = substr($method->shippingCost, 0, -1);     


Потом страшное условие. Коротко: если фактическая цена доставки слишком мала то лепим минималку
Код
if (($method->package_fee  												// если, налоги (рубли, кому нужно)
+($cart_prices[salesPrice]*0.01*$method->shippingCost)              // плюс процентная наценка от стоимости товара (рубли)
+$method->shippingFirstCostCount // плюс цена за первую единицу веса
+(ceil(                                                            //               
(($this->getOrderWeight($cart, $method->weight_unit)*1000 -     // плюс оставшийся вес (у меня в килограммах!) переведенный в граммы!                                 
$method->shippingAddWeight)) /                                  // деленный на зачение последующих тарифицируемых значений массы посылки
$method->shippingAddWeight))              // округленный в большую сторону (по правилам почты)
*$method->shippingNextCostCount) <=                                 // и уможенный на тариф за следующие единицы веса (рубли), меньше или равен
($method->cost - $method->shippingGreed) ) {                        //минимальной стоимости доставки за вычетом(!) нашей жадности
return $method->cost + $method->package_fee;

иначе пишем обычную стоимость доставки

Код
} else {			
return $method->package_fee  // если, налоги (рубли, кому нужно)
+($cart_prices[salesPrice]*0.01*$method->shippingCost)              // плюс процентная наценка от стоимости товара (рубли)
+$method->shippingFirstCostCount // плюс цена за первую единицу веса
+(ceil(                                                            //               
(($this->getOrderWeight($cart, $method->weight_unit)*1000 -     // плюс оставшийся вес (у меня в килограммах!) переведенный в граммы!                                 
$method->shippingAddWeight)) /                                  // деленный на зачение последующих тарифицируемых значений массы посылки
$method->shippingAddWeight))              // округленный в большую сторону (по правилам почты)
*$method->shippingNextCostCount;
}

и вот в этом "иначе" можно добавить свою "жадность", но я решил так не делать.


конец доделывать не стал
Код
// если у нас не % от товара а фиксированное число   далее функционал недописан!
}else{
return $method->cost + $method->package_fee + $method->shippingCost +
+$method->shippingFirstCostCount // плюс цена за первую единицу веса
+(ceil(                                                            //               
(($this->getOrderWeight($cart, $method->weight_unit)*1000 -     // плюс оставшийся вес (у меня в килограммах!) переведенный в граммы!                                 
$method->shippingAddWeight)) /                                  // деленный на зачение последующих тарифицируемых значений массы посылки
$method->shippingAddWeight))              // округленный в большую сторону (по правилам почты)
*$method->shippingNextCostCount;




}
}
    }// end function getCosts

запиливать вариант, когда вместо % в доставке идет фиксированное число, я не стал, у меня нет такой доставки, но в принципе делается по аналогии.

В принципе удобно манипулировать теми же %тами и убрать жадность в ноль и поставить 5,6,7 процентов, в общем кому как удобнее. Возможно запиливаемо под EMS и что там у нас еще бывает.
Вот так это выглядит у меня в VM
Спойлер
[свернуть]

Вопросы, может кто знает, но проверять сил нет уже
1. Если VirtueMart обновится слетит или нет?
2. Если все-таки встретятся товары с граммами/фунтами что будет?
3. Если кто знает как запилить сюда какие-то почтовые зоны для посылок - будет интересно по слушать.
4. Оптимизация. Я не программист, но чую можно как-то попроще сделать.
*

Undorik

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Цитировать
Вопросы, может кто знает, но проверять сил нет уже
1. Если VirtueMart обновится слетит или нет?
2. Если все-таки встретятся товары с граммами/фунтами что будет?
3. Если кто знает как запилить сюда какие-то почтовые зоны для посылок - будет интересно по слушать.
4. Оптимизация. Я не программист, но чую можно как-то попроще сделать.


1 не не слетит VM при обновлении папку plugins не трогает слетит все то что в ядре менялось но там лучше не че не трогать
  Вот что подумал если AIO Обновить то наверное грохнит...
  Модулю имя другое и и каталог...
2 думаю тоже не чего если ручки у пользователя не корявые и поставит в настройках модуля свои единицы и все.
     А вообще подумать надо и наверное если не КГ то функцию написать перевода величин... Думаю что в VM уже где то это есть просто подключить и отдать
3 зоны для посылок-- Вот тут вопрос не понял что именно.... Можно в БД базу индексов всей РФ загнать и когда клиент в ведет индекс его город область автоматом станет в регистрацию....  

4 так ты весь код кинь будем - делать - посмотреть )) а то я пока прочитал глаза чуть не сломал

Удачи тебе!
« Последнее редактирование: 07.01.2013, 00:41:08 от gartes »
*

Undorik

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
3 зоны для посылок-- Вот тут вопрос не понял что именно.... Можно в БД базу индексов всей РФ загнать и когда клиент в ведет индекс его город область автоматом станет в регистрацию.... 
Я к тому, что у меня условий задачи нет. Я хз какие индексы к какой зоне как относить. Реализовать можно так же условиями и не забивать в бд ничего лишнего.

4 так ты весь код кинь будем - делать - посмотреть )) а то я пока прочитал глаза чуть не сломал
это и есть весь код, просто кусками.

вот склееный
Код
	function getCosts (VirtueMartCart $cart, $method, $cart_prices) {
if ($method->free_shipment && $cart_prices['salesPrice'] >= $method->free_shipment) {
return 0;
} else {
if (preg_match('/%$/', $method->shippingCost)) {                                                        // % или фиксированная сумма           
    $method->shippingCost = substr($method->shippingCost, 0, -1);                                                 


if (($method->package_fee  // если, налоги (рубли, кому нужно)
+($cart_prices[salesPrice]*0.01*$method->shippingCost)              // плюс процентная наценка от стоимости товара (рубли)
+$method->shippingFirstCostCount // плюс цена за первую единицу веса
+(ceil(                                                            //               
(($this->getOrderWeight($cart, $method->weight_unit)*1000 -     // плюс оставшийся вес (у меня в килограммах!) переведенный в граммы!                                 
$method->shippingAddWeight)) /                                  // деленный на зачение последующих тарифицируемых значений массы посылки
$method->shippingAddWeight))              // округленный в большую сторону (по правилам почты)
*$method->shippingNextCostCount) <=                                 // и уможенный на тариф за следующие единицы веса (рубли), меньше или равен
($method->cost - $method->shippingGreed) ) {                        //минимальной стоимости доставки за вычетом(!) нашей жадности

// выше в условии реальная стоимость почтовой отправки, но нам этого мало!
// в данном случае, если реальная стоимость отправки через почту, например 30 рублей
// наш минимальный заданный тариф нашего магазина для почтовый отправлений 60 рублей и жадность 20 (60-20 = 40)

return $method->cost + $method->package_fee; // тогда делаем стоимость доставки по нашему минимальному тарифу (цена+налог кому нужно)

//иначе, когда реальная стоимость почтовой отправки например 100 привышает тариф минимальной отправкки нашего магазина 60 за вычетом жадности 20
// считаем по полной

} else {
return $method->package_fee  // если, налоги (рубли, кому нужно)
+($cart_prices[salesPrice]*0.01*$method->shippingCost)              // плюс процентная наценка от стоимости товара (рубли)
+$method->shippingFirstCostCount // плюс цена за первую единицу веса
+(ceil(                                                            //               
(($this->getOrderWeight($cart, $method->weight_unit)*1000 -     // плюс оставшийся вес (у меня в килограммах!) переведенный в граммы!                                 
$method->shippingAddWeight)) /                                  // деленный на зачение последующих тарифицируемых значений массы посылки
$method->shippingAddWeight))              // округленный в большую сторону (по правилам почты)
*$method->shippingNextCostCount;
}







// вес покупки в граммы           
 // минус вес первой полной единицы, т.к. мы ее уже посчитали   



// если у нас не % от товара а фиксированное число   далее функционал недописан!
}else{
return $method->cost + $method->package_fee + $method->shippingCost +
+$method->shippingFirstCostCount // плюс цена за первую единицу веса
+(round(                                                            //               
(($this->getOrderWeight($cart, $method->weight_unit)*1000 -     // плюс оставшийся вес (у меня в килограммах!) переведенный в граммы!                                 
$method->shippingAddWeight)) /                                  // деленный на зачение последующих тарифицируемых значений массы посылки
$method->shippingAddWeight, 0, PHP_ROUND_HALF_UP))              // округленный в большую сторону (по правилам почты)
*$method->shippingNextCostCount;




}
}
    }// end function getCosts
*

Undorik

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
  Вот что подумал если AIO Обновить то наверное грохнит...

угу, убивает, проверено
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль ЮMoney для для VirtueMart 4 существует?

Автор lolitma3

Ответов: 5
Просмотров: 4323
Последний ответ 11.08.2022, 19:07:23
от lolitma3
Модуль доставки: СДЭК, Boxberry, Ozon, 5post, Почта, пэк, gtd, iml, Байкал и др

Автор eshoplogistic

Ответов: 0
Просмотров: 3280
Последний ответ 06.04.2022, 16:43:13
от eshoplogistic
Добавить выбор города в плагин доставки?

Автор warlocksp

Ответов: 3
Просмотров: 4042
Последний ответ 13.02.2022, 15:48:14
от Evgen Kulibin
Vituemart платёжный модуль tinkoff

Автор PavelK

Ответов: 2
Просмотров: 3577
Последний ответ 24.10.2020, 12:02:32
от draff
Пропали способы доставки и оплаты

Автор Orfei

Ответов: 3
Просмотров: 3461
Последний ответ 01.10.2020, 21:00:44
от AlexB