Новости Joomla

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

Иоланта

  • Захожу иногда
  • 166
  • 3 / 0
а у меня такая проблема:
доставка по городу 650 рублей (делаю тариф доставки с диапазоном индексов)
самовывоз бесплатно (диапазон индексов 000000 до 999999)
доставка транспортной компанией 1000

а как быть, если мне нужно поставить такой вариант: по городу свыше 50 000 рублей бесплатно? модуль от суммы мне не подходит, т.к. тогда будет бесплатная доставка и курьером и транспортной компанией и почтой...
*

meverikxp

  • Захожу иногда
  • 57
  • 0 / 0
Спасибо, все сдалал по инструкции и работает на УРА!
*

slovoblud

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
  • Починяю примуса
Действительно нужно было немного подправить файл ps_shipping.php, а именно не забыть добавить в запрос на добавление 2 новых поля: shipping_rate_minimum_cost и shipping_rate_maximum_cost. Вот так вот:
Код
    $q .= "shipping_rate_weight_end,shipping_rate_minimum_cost,shipping_rate_maximum_cost,";

Присоединяюсь к Gremlin на версии  VirtueMart 1.1.3 также когда добавил хак по инструкции в первом посте, то новые тарифы доставки не добавлялись, но что характерно, уже добавленные тариф с новым хаком работали отлично. Что я сделал?

Открыл файл:
administrator\components\com_virtuemart\classes\ps_shipping.php
и в нем в районе строки 409 там где:
Код
 
$q = "INSERT INTO #__{vm}_shipping_rate ";
$q .= "(shipping_rate_name,shipping_rate_carrier_id,shipping_rate_country,";
$q .= "shipping_rate_zip_start,shipping_rate_zip_end,shipping_rate_weight_start,";
в строке:
Код
 $q .= "shipping_rate_weight_end,shipping_rate_value,shipping_rate_package_fee,";
добавил после shipping_rate_weight_end, через запятую два параметра: shipping_rate_minimum_cost,shipping_rate_maximum_cost,
В итоге строка стала выглядеть так:
Код
$q .= "shipping_rate_weight_end,shipping_rate_minimum_cost,shipping_rate_maximum_cost,shipping_rate_value,shipping_rate_package_fee,";

И да для VM 1.1.3 там где в мануале:
'shipping_rate_maximum_cost' => vmGet($d, 'shipping_rate_maximum_cost'),

вместо этого нужно вставлять что то типа
$q .= $d["shipping_rate_maximum_cost"] . "','";
смысл тот же но сама конструкция немножко другая.
А так спасибо ТС хак отличный.
*

Yodalife

  • Новичок
  • 8
  • 0 / 0
Зачетный хак! Спасибо! Все сделал и заработало. Долго не мог понять почему не отображаются варианты доставки, при добавление более 1 товара, причем не каждый товар, а как то выборочно, бывает 5 в корзину брошу и все отлично, а иногда и с 2 не отображается... Оказалось все просто, на некоторые товары вес стоял не в "kg", а почему то в "кг". Поменял, и все отлично!
Но мне надо было сделать еще доставку в процентах, об этом чуть ниже.

Что я еще доделал до большей универсальности этого модуля. Полностью солидарен с высказыванием:
Может кто в курсе, как верезать проверку индекса города при доставке ? Достало уже ((

Поэтому вот решение:

В файле \administrator\components\com_virtuemart\classes\shipping\standard_shipping.php закоментировал строки, отвечающие за проверку страны и индексов:

Код
//if( ! stristr( $db->f( "shipping_rate_country" ), $country ) && $db->f( 'shipping_rate_country' )!= "" ) {
// $vmLogger->debug( 'The country ' . $country . ' is not supported by this shipping rate.' ) ;
// $valid = false ;
//}

И еще чуток далее:

Код
//if( is_numeric( $zip ) ) {
// if( $db->f( "shipping_rate_zip_start" ) > $zip ) {
// $vmLogger->debug( 'The ZIP ' . $zip . ' is smaller than the supported ZIP code range of this shipping rate.' ) ;
// $valid = false ;
//
// }
// if( $db->f( "shipping_rate_zip_end" ) < $zip ) {
// $vmLogger->debug( 'The ZIP ' . $zip . ' is higher than the supported ZIP code range of this shipping rate.' ) ;
// $valid = false ;
// }
//}

Далее, требовалось указать часть доставок в процентах от суммы заказа. Решение:

В этом же файле \administrator\components\com_virtuemart\classes\shipping\standard_shipping.php

1. Добавил две строчки с переменной для процентов
      
Код
//GET PRICE
      if ( $_SESSION['auth']['show_price_including_tax'] != 1 ) {
      $taxrate = 1;
      $order_total = ($total + $tax_total);
      $percent01 = ($total + $tax_total)/100;
      }
      else {
      $taxrate = $this->get_tax_rate() + 1;
      $order_total = $total;
      $percent01 = $total/100;
      }
      //END GET PRICE

2. Далее,

Код
$total_shipping_handling = $dbr->f( "shipping_rate_value" ) + $dbr->f( "shipping_rate_package_fee" ) ;

Заменил на:

Код
$total_shipping_handling = $dbr->f( "shipping_rate_value" ) + ($dbr->f( "shipping_rate_package_fee" )*$percent01) ;

3. Ищем

Код
$rvalue["pack_rate"] = $dbr->f( "shipping_rate_package_fee" ) ;
$rvalue["total_rate"] = $dbr->f( "shipping_rate_value" ) + $dbr->f( "shipping_rate_package_fee" ) ;

и меняем на:

Код
$rvalue["pack_rate"] = $dbr->f( "shipping_rate_package_fee" )*$percent01 ;
$rvalue["total_rate"] = $dbr->f( "shipping_rate_value" ) + ($dbr->f( "shipping_rate_package_fee" )*$percent01) ;

4. В языковом файле: administrator/components/com_virtuemart/languages/shipping/russian.php
Код
'PHPSHOP_RATE_FORM_PACKAGE_FEE' => 'Стоимость доставки в процентах',

Вот и все. Теперь получился ПОЧТИ универсальный модуль. ;-)
Еще раз громадное спасибо!
*

dayme0

  • Новичок
  • 8
  • 0 / 0
Здравствуйте. выдаёт Ошибка: Failed to update the shipping rate. Подскажите. Спасибо
*

dayme0

  • Новичок
  • 8
  • 0 / 0
Может кто откликница..
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль доставки "Почтой России"

Автор alibedog

Ответов: 104
Просмотров: 53977
Последний ответ 13.07.2021, 17:36:09
от SolopoV
Модуль доставки Укрпочта

Автор al_13

Ответов: 13
Просмотров: 6803
Последний ответ 13.05.2021, 12:57:59
от nnnata
Уведомление о заказе в зависимости от варианта доставки

Автор baltazors

Ответов: 0
Просмотров: 1909
Последний ответ 07.06.2017, 11:44:10
от baltazors
Модуль доставки - самовывоз. Как сделать?

Автор demonm

Ответов: 18
Просмотров: 8083
Последний ответ 29.04.2017, 17:31:56
от princeyury
Варианты доставки из админки

Автор El_nik

Ответов: 7
Просмотров: 2127
Последний ответ 27.04.2017, 10:51:38
от El_nik