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

rudon

  • Осваиваюсь на форуме
  • 27
  • 17 / 0
Долго искал решение этого вопроса, пробывал ставить по весу, то бишь цена = весу и  в стандартном модуле доставки определять стоимость по весу, но эта связка как то не заработала.

Нашел решение на иностранном форуме вот прямая ссылка http://forum.virtuemart.net/index.php?topic=43248.0 там написано как сделать для VirtueMart 1.0.15 и 1.1.2


У меня стоит Joomla 1.5.9 и VirtueMart 1.1.3 там несколько по-другому делается (различие только в редактировании одного файла ps_shipping.php). Жирным выделены добавления!. Номер строки означает примерное место внесения изменений :

Перед проделыванием всех нижеперечисленных операций сделайте полный бекап сайта и базы!

1.  Делаем sql запрос в базе данных:
......................................................
ALTER TABLE `jos_vm_shipping_rate` ADD `shipping_rate_minimum_cost` DECIMAL( 10, 2 ) DEFAULT '0.00' NOT NULL AFTER `shipping_rate_weight_end` ;
ALTER TABLE `jos_vm_shipping_rate` ADD `shipping_rate_maximum_cost` DECIMAL( 10, 2 ) DEFAULT '0.00' NOT NULL AFTER `shipping_rate_minimum_cost` ;
......................................................

2. Добавляем значения в файле с русским языком
/administrator/components/com_virtuemart/languages/shipping/russian.php

......................................................
Строка 39

   'PHPSHOP_RATE_FORM_WEIGHT_START' => 'Минимальный вес',
   'PHPSHOP_RATE_FORM_WEIGHT_END' => 'Максимальный вес',
   'PHPSHOP_RATE_FORM_MINIMUM_COST' => 'Минимальная стоимость для доставки',
   'PHPSHOP_RATE_FORM_MAXIMUM_COST' => 'Максимальная стоимость для доставки',

......................................................

3. Добавляем значения в файле с русским языком
/administrator/components/com_virtuemart/languages/common/russian.php

......................................................
Строка 287

   'PHPSHOP_ERR_MSG_RATE_WEIGHT_START_REQ' => 'ОШИБКА: Не указан минимальный вес.',
   'PHPSHOP_ERR_MSG_RATE_WEIGHT_END_REQ' => 'ОШИБКА: Не указан максимальный вес.',
   'PHPSHOP_ERR_MSG_MINIMUM_COST' => 'ОШИБКА: Не указана минимальная сумма заказа.',
   'PHPSHOP_ERR_MSG_MAXIMUM_COST' => 'ОШИБКА: Не указана максимальная сумма заказа.',
   'PHPSHOP_ERR_MSG_COST_INV' => 'ОШИБКА: Минимальная сумма должена быть меньше, чем максимальная',

   'PHPSHOP_ERR_MSG_RATE_WEIGHT_STARTEND_INV' => 'ОШИБКА: Минимальный вес должен быть меньше, чем максимальный',
......................................................

4. /administrator/components/com_virtuemart/html/shipping.rate_list.php

......................................................
Строка 61

   "<input type=\"checkbox\" name=\"toggle\" value=\"\" onclick=\"checkAll(".$num_rows.")\" />" => "width=\"20\"",
   $VM_LANG->_('PHPSHOP_SHIPPING_RATE_LIST_CARRIER_LBL') => '',
   $VM_LANG->_('PHPSHOP_SHIPPING_RATE_LIST_RATE_NAME') => '',
   $VM_LANG->_('PHPSHOP_SHIPPING_RATE_LIST_RATE_WSTART') => '',
   $VM_LANG->_('PHPSHOP_SHIPPING_RATE_LIST_RATE_WEND') => '',
   $VM_LANG->_('PHPSHOP_RATE_FORM_MINIMUM_COST') => '',
   $VM_LANG->_('PHPSHOP_RATE_FORM_MAXIMUM_COST') => '',

   $VM_LANG->_('E_REMOVE') => "width=\"5%\""

......................................................
Строка 92

   $tmp_cell = "<a href=\"" . $sess->url($url). "\">". $db->f("shipping_rate_name")."</a>";
   $listObj->addCell( $tmp_cell );
   $listObj->addCell( $db->f("shipping_rate_weight_start"));
   $listObj->addCell( $db->f("shipping_rate_weight_end"));
   $listObj->addCell( $db->f("shipping_rate_minimum_cost"));    
   $listObj->addCell( $db->f("shipping_rate_maximum_cost"));


......................................................

5. /administrator/components/com_virtuemart/html/shipping.rate_form.php

......................................................
Строка 93

   <tr>
      <td width="21%" ><div align="right"><strong><?php echo $VM_LANG->_('PHPSHOP_RATE_FORM_PACKAGE_FEE')?>:</strong></div></td>
      <td width="79%" >
      <input type="text" class="inputbox" name="shipping_rate_package_fee" size="32" maxlength="255" value="<?php $db->sp("shipping_rate_package_fee")?>">
      </td>
   </tr>
  <!-- // Added To Standard Shipping Module ######--->
   <tr>
      <td width="21%" ><div align="right"><strong><?php echo $VM_LANG->_('PHPSHOP_RATE_FORM_MINIMUM_COST')?>:</strong></div></td>
      <td width="79%" >
      <input type="text" class="inputbox" name="shipping_rate_minimum_cost" size="32" maxlength="255" value="<?php $db->sp("shipping_rate_minimum_cost")?>">
      </td>
   </tr>
    <tr>
      <td width="21%" ><div align="right"><strong><?php echo $VM_LANG->_('PHPSHOP_RATE_FORM_MAXIMUM_COST')?>:</strong></div></td>
      <td width="79%" >
      <input type="text" class="inputbox" name="shipping_rate_maximum_cost" size="32" maxlength="255" value="<?php $db->sp("shipping_rate_maximum_cost")?>">
      </td>
   </tr>
<!--// Added To Standard Shipping Module ######-->


......................................................

6. /administrator/components/com_virtuemart/classes/ps_shipping.php

......................................................
Строка 289

   if ($d["shipping_rate_weight_start"] == "") {
         $d["error"] = $VM_LANG->_('PHPSHOP_ERR_MSG_RATE_WEIGHT_START_REQ');
         return False;
      }
   if ($d["shipping_rate_weight_end"] == "") {
         $d["error"] = $VM_LANG->_('PHPSHOP_ERR_MSG_RATE_WEIGHT_END_REQ');
         return False;
      }
   if ($d["shipping_rate_minimum_cost"] == "") {
         $d["error"] = $VM_LANG->_('PHPSHOP_ERR_MSG_MINIMUM_COST');
         return False;
      }
   if ($d["shipping_rate_maximum_cost"] == "") {
         $d["error"] = $VM_LANG->_('PHPSHOP_ERR_MSG_MAXIMUM_COST');
         return False;
      }


…………………………………………………………………………………………………………
Строка 309

   if ($d["shipping_rate_weight_start"] >= $d["shipping_rate_weight_end"]) {
         $d["error"] = $VM_LANG->_('PHPSHOP_ERR_MSG_RATE_WEIGHT_STARTEND_INV');
         return False;
   }
   if ($d["shipping_rate_minimum_cost"] >= $d["shipping_rate_maximum_cost"]) {
         $d["error"] = $VM_LANG->_('PHPSHOP_ERR_MSG_COST_INV');
         return False;
   }


............................................................
Строка 378

**************************************************************************/
   function rate_add(&$d) {
      $db = new ps_DB;
      $timestamp = time();

      if (!$this->validate_rate_add($d)) {
         return False;
      }

      $country_str = "";
      if(!empty($d["shipping_rate_country"])) {
         for($i=0;$i<count($d["shipping_rate_country"]);$i++){
            if ($d["shipping_rate_country"][$i] != "") {
               $country_str .= $d["shipping_rate_country"][$i] . ";";
            }
         }
         chop($country_str,";");
      }
      $fields = array('shipping_rate_name' => vmGet($d, 'shipping_rate_name'),
                           'shipping_rate_carrier_id' => (int) vmGet($d, 'shipping_rate_carrier_id'),
                           'shipping_rate_country' => $country_str,
                           'shipping_rate_zip_start' => vmGet($d, 'shipping_rate_zip_start'),
                           'shipping_rate_zip_end' => vmGet($d, 'shipping_rate_zip_end'),
                           'shipping_rate_weight_start' => vmGet($d, 'shipping_rate_weight_start'),
                           'shipping_rate_weight_end' => vmGet($d, 'shipping_rate_weight_end'),
                           'shipping_rate_minimum_cost' => vmGet($d, 'shipping_rate_minimum_cost'),
                           'shipping_rate_maximum_cost' => vmGet($d, 'shipping_rate_maximum_cost'),

                           'shipping_rate_value' => vmGet($d, 'shipping_rate_value'),
                           'shipping_rate_package_fee' => vmGet($d, 'shipping_rate_package_fee'),
                           'shipping_rate_currency_id' => vmGet($d, 'shipping_rate_currency_id'),
                           'shipping_rate_vat_id' => vmGet($d, 'shipping_rate_vat_id'),
                           'shipping_rate_list_order' => (int) vmGet($d, 'shipping_rate_list_order'));

      $db->buildQuery('INSERT', '#__{vm}_shipping_rate', $fields );

.................................................................
Строка 420

function rate_update(&$d) {
      $db = new ps_DB;

      if( !$this->validate_rate_add($d)) return false;

      $country_str = "";
      if(!empty($d["shipping_rate_country"])) {
         for($i=0;$i<count($d["shipping_rate_country"]);$i++){
            if ($d["shipping_rate_country"][$i] != "") {
               $country_str .= $d["shipping_rate_country"][$i] . ";";
            }
         }
         chop($country_str,";");
      }
      $fields = array('shipping_rate_name' => vmGet($d, 'shipping_rate_name'),
                           'shipping_rate_carrier_id' => (int) vmGet($d, 'shipping_rate_carrier_id'),
                           'shipping_rate_country' => $country_str,
                           'shipping_rate_zip_start' => vmGet($d, 'shipping_rate_zip_start'),
                           'shipping_rate_zip_end' => vmGet($d, 'shipping_rate_zip_end'),
                           'shipping_rate_weight_start' => vmGet($d, 'shipping_rate_weight_start'),
                           'shipping_rate_weight_end' => vmGet($d, 'shipping_rate_weight_end'),
                           'shipping_rate_minimum_cost' => vmGet($d, 'shipping_rate_minimum_cost'),
                           'shipping_rate_maximum_cost' => vmGet($d, 'shipping_rate_maximum_cost'),

                           'shipping_rate_value' => vmGet($d, 'shipping_rate_value'),
                           'shipping_rate_package_fee' => vmGet($d, 'shipping_rate_package_fee'),
                           'shipping_rate_currency_id' => vmGet($d, 'shipping_rate_currency_id'),
                           'shipping_rate_vat_id' => vmGet($d, 'shipping_rate_vat_id'),
                           'shipping_rate_list_order' => (int) vmGet($d, 'shipping_rate_list_order'));

      $db->buildQuery('UPDATE', '#__{vm}_shipping_rate', $fields, ' WHERE shipping_rate_id=' .(int)$d["shipping_rate_id"] );

......................................................

7. /administrator/components/com_virtuemart/classes/shipping/standard_shipping.php

......................................................
Строка 28

   function list_rates( &$d ) {
      global $total, $tax_total, $VM_LANG, $CURRENCY_DISPLAY, $vmLogger ;

      
      $auth = $_SESSION["auth"] ;

Строка 31
      
      //GET PRICE
      if ( $_SESSION['auth']['show_price_including_tax'] != 1 ) {
      $taxrate = 1;
      $order_total = $total + $tax_total;
      }
      else {
      $taxrate = $this->get_tax_rate() + 1;
      $order_total = $total;  
      }
      //END GET PRICE


………………………………………………………………………..
Строка 76

      if( is_numeric( $zip ) ) {
   $q .= "(shipping_rate_zip_start <= '" . $zip . "' OR  LENGTH(shipping_rate_zip_start) = 0 ) AND " ;
   $q .= "(shipping_rate_zip_end >= '" . $zip . "' OR  LENGTH(shipping_rate_zip_end) = 0 ) AND " ;
      }
   $q .= "shipping_rate_minimum_cost <= '" . $order_total . "'AND ";
   $q .= "shipping_rate_maximum_cost >= '" . $order_total . "'AND ";


......................................................

После этого спокойно настраиваете стандартный модуль доставки по Вашим значениям (на всякий случай ставьте максимальный размер веса в тарифах жоставки, чтоб не было осложнений   ;) )

Очень важна также правильная настройка тарифов. У меня работает при сумме заказа до 3000р и свыше 3000р. и ничего не исчезает.

Прилагаю скрин своих тарифов:



Доставка по Екатеринбургу (менее 3000 руб.)



Доставка по Екатеринбургу (свыше 3000 руб.) картинка posle_3000.JPG



К сожалению картинки не смог на форуме закрепить, пришлось использовать сторонний сервис. Надеюсь админы потом пересохранят.
Надеюсь всем помог.
« Последнее редактирование: 05.03.2010, 19:26:59 от rudon »
*

wwwww

  • Новичок
  • 2
  • 0 / 0
Ну круто.столько перелопачено инфы.
видно что автор знаком с работой магазина что называеться изнутри.
Я пока плохо знаю функционал этого магазина
(Joomla и магазин последней версии)
выжимаю по крохам материал с форумов.почему то мало инфы
Стоит задача изменить шаблон вывода(вид) единичного товара и
вывода товаров в категории.

из английского мануала накопал что
главный конфигурационный файл это virtuemart.cfg.php
(это примерно не то как в шаблоне джумлы index.php?)
 он запрашиваеться по умолчанию и через него инклюдяться
все остальные?
и какой файл отвечает за конфигурацию отдельного товара
(наверно флу паге?)
и за конфигурацию каталога
(browse?)
Можно в двух словах конструкцию
Спасибо
*

S.t.A.m.

  • Осваиваюсь на форуме
  • 15
  • 6 / 0
Спасибо!!!!
Все по инструкции сделал - работает на ура!!!

(У меня VirtueMart 1.1.2 - там только в одном файле небольшие отличия, но разобрался без проблем)
*

Solser

  • Захожу иногда
  • 64
  • 16 / 1
Супер!! Спасибо большое! Модуль теперь открывает большие возможности по настройке вариантов!
*

Andros

  • Захожу иногда
  • 134
  • 9 / 1
А мона уже отредактированный модуль в студию?
*

zufar

  • Осваиваюсь на форуме
  • 14
  • 1 / 0
Вроде все сделал. После всех изменения зашел в админку стандартного модуля доставки и ни каких различий не увиделю. Что должно измениться? У меня VirtueMart 1.1.3 stable.

Цитировать
(У меня VirtueMart 1.1.2 - там только в одном файле небольшие отличия, но разобрался без проблем)
У меня в VirtueMart 1.1.3 не было вообще отличий. НО и изменения не видно (((.
*

Solser

  • Захожу иногда
  • 64
  • 16 / 1
проверьте, делали ли SQL запрос к БАзе Данных.
А изменение должно быть следующее : при создании тарифа доставки появилось 2 доп поля  - минимальная сумма доставки и максимальная сумма доставки (в этом промежутке суммы заказа тариф доставки будет действителен и предлагаться к выбору).
*

zufar

  • Осваиваюсь на форуме
  • 14
  • 1 / 0
проверьте, делали ли SQL запрос к БАзе Данных.
А изменение должно быть следующее : при создании тарифа доставки появилось 2 доп поля  - минимальная сумма доставки и максимальная сумма доставки (в этом промежутке суммы заказа тариф доставки будет действителен и предлагаться к выбору).
Спасибо. Разобрался. Все невнимательность )). Изменения делал на одном сайте. А смотрел на другом. А работает классно. Так как надо!

 !!!???!!!
А у меня такая проблема, хочу создать новый вариант доставки а к ним тариф доставки, напр., доставка почтой, то у меня почему то названия на русском языке не сохраняется, если пишу на русском то после сохранения пустота, а если на англ. яз., то сохраняется только первая буква.
Выдаёт такую ошибку:
Warning: Missing argument 2 for vmGet(), called in /home/hmao86/public_html/shop/administrator/components/com_virtuemart/classes/ps_shipping.php on line 113 and defined in /home/hmao86/public_html/shop/administrator/components/com_virtuemart/classes/request.class.php on line 26
Кто бы знал, что там не так?

 !!!???!!! Помогите пожалуйста, люди добрые, не знаю что и делать  >:(
« Последнее редактирование: 31.03.2009, 22:39:00 от Юлична »
*

TAX

  • Захожу иногда
  • 154
  • 10 / 0
Кто-то пробовал сделать такой хак для VM 1.0.15 ?
я попробовал делать по материалам источнику от этой темы, но нормального результата не получилось.
при создании нового тарифа доставки появились новые поля, но после сохранения нового тарифа не появляется  :(
 !!!???!!!
*

Solser

  • Захожу иногда
  • 64
  • 16 / 1
!!!???!!!
А у меня такая проблема, хочу создать новый вариант доставки а к ним тариф доставки, напр., доставка почтой, то у меня почему то названия на русском языке не сохраняется, если пишу на русском то после сохранения пустота, а если на англ. яз., то сохраняется только первая буква.
Выдаёт такую ошибку:
Warning: Missing argument 2 for vmGet(), called in /home/hmao86/public_html/shop/administrator/components/com_virtuemart/classes/ps_shipping.php on line 113 and defined in /home/hmao86/public_html/shop/administrator/components/com_virtuemart/classes/request.class.php on line 26
Кто бы знал, что там не так?

 !!!???!!! Помогите пожалуйста, люди добрые, не знаю что и делать  >:(
Решение здесь:
http://joomlaforum.ru/index.php/topic,53332.msg334714.html#msg334714
*

maxtor

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
rudon, ты просто мегачел!!! я даже не удержался и специально зарегился чтоб тебя отблагодарить за это творение. Функция очень нужная, работает отлично, то что нужно. Мегареспекты.
*

rudon

  • Осваиваюсь на форуме
  • 27
  • 17 / 0
Я сам ноль в php.
Все нашел на буржуйском сайте и, так как проблема итересует многих, выложил здесь!!!

Спасибо на свой счет принимаю, но только за то что нашел инфу и поделился со всеми.
*

турист

  • Захожу иногда
  • 160
  • 7 / 0
Работает хорошо, но есть вопросы: У меня два способа доставки: "Почтой России" и "Курьером по городу". У Почты естессно свои тарифы, я применил данный тариф для способа "Курьером по городу". Минимальную сумму для доставки поставил 300 руб, максимальную - 3000 руб стоимость доставки - 150 руб, но возникла проблема: При заказе меньше 300 руб или больше 3000 руб, при оформлении заказа вообще пропадает способ доставки "Курьером по городу" и остается только "Почтой России", (без возможности выбора для покупателя) и конечно далее, когда выбирается способ оплаты, стоимость доставки (Почтой России) просто прибавляется к сумме оплаты. Как исправить данный баг, кто может сталкивался? помогите!!! По моему должно быть так: При заказе меньше 300 дальнейшее оформление заказа невозможно (конечно-же с оповещением об этом покупателя), а при заказе больше 3000 способ доставки "Курьером по городу" не исчезает, а просто при выборе данного способа тариф доставки 00 руб
ПыСы: При заказе на сумму в диапазоне 300-3000 проблем нет, все работает как надо. rudon-у +
Чет много расписал ;D Надеюсь понятна суть вопроса ;)
« Последнее редактирование: 17.07.2009, 23:32:33 от турист »
*

Solser

  • Захожу иногда
  • 64
  • 16 / 1
Работает хорошо, но есть вопросы: У меня два способа доставки: "Почтой России" и "Курьером по городу". У Почты естессно свои тарифы, я применил данный тариф для способа "Курьером по городу". Минимальную сумму для доставки поставил 300 руб, максимальную - 3000 руб стоимость доставки - 150 руб, но возникла проблема: При заказе меньше 300 руб или больше 3000 руб, при оформлении заказа вообще пропадает способ доставки "Курьером по городу" и остается только "Почтой России", (без возможности выбора для покупателя) и конечно далее, когда выбирается способ оплаты, стоимость доставки (Почтой России) просто прибавляется к сумме оплаты. Как исправить данный баг, кто может сталкивался? помогите!!! По моему должно быть так: При заказе меньше 300 дальнейшее оформление заказа невозможно (конечно-же с оповещением об этом покупателя), а при заказе больше 3000 способ доставки "Курьером по городу" не исчезает, а просто при выборе данного способа тариф доставки 00 руб
ПыСы: При заказе на сумму в диапазоне 300-3000 проблем нет, все работает как надо. rudon-у +
Чет много расписал ;D Надеюсь понятна суть вопроса ;)

Как самое простое решение проблемы, Я бы рекомендовал создать еще 2 тарифа для способа доставки курьером по городу:
1. Для диапазона 0 - 300 р  - тариф доставки 300 р.
2. Для диапазона 3000 р - 100000000р  - тариф доставки 0 р.
*

турист

  • Захожу иногда
  • 160
  • 7 / 0
Как самое простое решение проблемы, Я бы рекомендовал создать еще 2 тарифа для способа доставки курьером по городу:
1. Для диапазона 0 - 300 р  - тариф доставки 300 р.
2. Для диапазона 3000 р - 100000000р  - тариф доставки 0 р.
Не получается так :( При заказе больше 3000 р Вообще пропадает возможность выбора варианта доставки! Просто пишет, что доставка этого заказа - бесплатно. Как-то с кодом надо разбираться, а я в php не очень... Может поможет кто? !!!???!!!
*

Gremlin

  • Захожу иногда
  • 293
  • 11 / 0
Кто-то пробовал сделать такой хак для VM 1.0.15 ?
я попробовал делать по материалам источнику от этой темы, но нормального результата не получилось.
при создании нового тарифа доставки появились новые поля, но после сохранения нового тарифа не появляется  :(
 !!!???!!!
Такая же беда :(. Нужен вариант хака для 1.0.15! Увы, в PHP сам не очень силен :(

Я тоже специально зарегистрировался чтоб поблагодарить rudon. Хорошая работа, Спасибо!

P.S. для того чтоб увеличить в поле количество знаков (стандарт 255) например: Описание тарифа доставки (да и в любых :) ), в БД и в форме поле (там где вы хотите увеличить количество знаков) поставьте на любу другое число - и пишите на здоровье :)))

(Мысли на клавиатуре)))
*

Gremlin

  • Захожу иногда
  • 293
  • 11 / 0
Вот! Адаптировал для VM 1.0.15. Нужно было немного изменить обращения к переменным ;). На всякий случай прикладываю измененные файлы, там внутри изменения прокомментированы.

От администрации:
В данном вложении есть ошибка, просьба воспользоваться решением представленным тут
« Последнее редактирование: 03.08.2010, 22:06:43 от Timon_Crazy »
*

Gremlin

  • Захожу иногда
  • 293
  • 11 / 0
Хак вроде работает, дополнительные поля появились, но почему-то не добавляются новые тарифы. Заполняю все поля, жму на кнопку записать и ничего не происходит, точнее открывается список тарифов с одним единственным ранее внесенным тарифом :(

Огромное спасибо автору за труд :D

Но, к сожалению, так же как и у Gremlin, при всем внешнем благополучии тариф не создается.
(VM 1.1.2, Joomla! 1.5.14 Stable, MySQL 5.0.75-0ubuntu10.2)

На оффоруме в указанной теме кто-то пишет, что проблема в лишней запятой. Увы, я ее так и не смог найти.
_____________________________________________________________________________________
Ошибка найдена: я так и не создал поля "shipping_rate_minimum_cost" и "shipping_rate_maximum_cost" в таблице jos_vm_shipping_rate. Создал вручную через phpmyadmin.
Теперь все работает.
Благодарю всех за внимание)
« Последнее редактирование: 27.09.2009, 22:06:21 от ravings »
*

vvv

  • Новичок
  • 3
  • 0 / 0
Огромное спасибо автору за труд :D

Но, к сожалению, так же как и у Gremlin, при всем внешнем благополучии тариф не создается.
(VM 1.1.2, Joomla! 1.5.14 Stable, MySQL 5.0.75-0ubuntu10.2)

На оффоруме в указанной теме кто-то пишет, что проблема в лишней запятой. Увы, я ее так и не смог найти.
Аналогично
*

onivan

  • Новичок
  • 7
  • 0 / 0
Спасибо!

Для невнимательных копипастеров ^-^ :
В последнем пункте вставлять не

$q .= "shipping_rate_maximum_cost >= '" . $order_total . "'AND ";      $q .= "shipping_rate_weight_start <= '" . $d["weight"] . "'AND ";



$q .= "shipping_rate_maximum_cost >= '" . $order_total . "'AND ";

Видимо, автор допустил мех. ошибку.
*

ruamho

  • Новичок
  • 5
  • 0 / 0
Не получается так :( При заказе больше 3000 р Вообще пропадает возможность выбора варианта доставки! Просто пишет, что доставка этого заказа - бесплатно. Как-то с кодом надо разбираться, а я в php не очень... Может поможет кто? !

Кто нить нашел решение?
У меня три типа доставки: по городу, по области, и без доставки (забрать в офисе). По каждому типу доставки свои тарифы при одинаковых суммах заказов.
Завожу все соответствующие тарифы, но как только заказ достигает минимального порога для бесплатной доставки по городу, все тарифы пропадают и пишет "доставка бесплатна"!
Как быть, может кто подскажет?
*

Solser

  • Захожу иногда
  • 64
  • 16 / 1
Кто нить нашел решение?
У меня три типа доставки: по городу, по области, и без доставки (забрать в офисе). По каждому типу доставки свои тарифы при одинаковых суммах заказов.
Завожу все соответствующие тарифы, но как только заказ достигает минимального порога для бесплатной доставки по городу, все тарифы пропадают и пишет "доставка бесплатна"!
Как быть, может кто подскажет?

в админзоне идем в компонент VirtueMart. Там -> магазин -> информация о магазине. И смотрим, что там стоит в поле "минимальное количество для бесплатной доставки". Если там стоит какая то сумма, то исправляем её на 0. По идее , должны все тарифы заработать правильно.
*

pikachu

  • Осваиваюсь на форуме
  • 46
  • 7 / 0
Joomla 1.5.14/Virtuemart 1.1.4

Установил хак по инструкции. Всё работает замечательно, только всплыла проблема одна.

В магазине 2 валюты - Доллары и Рубли. Товары забиты в долларовой цене, а для отображения на фронтенде у пользователей есть выбор - в какой валюте показывать цену (mod_currency_selector).

В магазине есть 3 типа доставки:

Бесплатная, если заказ от 2000 долларов
Платная, если заказ до 2000 долларов
Самовывоз (при любом заказе)

Все условия для этих типов доставок вписаны, т.е минимальная сумма заказа, максимальная, вес, индекс и прочее.

Если цена во фронтенде стоит в долларах - то при оформлении заказа всё работает как нужно (т.е до 2000 долларов показываются 2 вида доставки - платная и самовывоз, и от 2000 долларов показываются - бесплатная и самовывоз), но стОит отображение валюты поменять на рубли (допустим товар стоит 80 долларов, после замены на показ в рублях, цена показывается 2400 рублей), то доставка предлагается бесплатной, как будто покупатель заказывает товар ОТ 2000 долларов с бесплатной доставкой.

Как я понимаю, ошибка именно в валюте, т.е магазин не считает доллары и рубли за разные валюты, и обращает внимание только на цифру 2000. Помогите найти ошибку. Спасибо.
*

kocmocivan

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Стоимость доставки не прибавляется...
« Ответ #27 : 10.11.2009, 17:46:35 »
Добрый день!
Воспользовался правкой от rudon по доставке от суммы заказа.
Ввел вариант доставки
Ввел тариф доставки (после внесения изменений там появились графы по мин стоимости и макс стоимости для доставки)
Вроди бы все сделал...
В информации о магазине ввел так же Бесплатная доставка от 10 000....
Но когда делаю заказ (даже 300 руб.)
Стоимость доставки не прибавляется.
Прочел уже все какие нашел ФАКИ, но не нашел ответа на данный вопрос..
Помогите пожалуйста.
*

Gremlin

  • Захожу иногда
  • 293
  • 11 / 0
Спасибо!

Для невнимательных копипастеров ^-^ :
В последнем пункте вставлять не

$q .= "shipping_rate_maximum_cost >= '" . $order_total . "'AND ";      $q .= "shipping_rate_weight_start <= '" . $d["weight"] . "'AND ";



$q .= "shipping_rate_maximum_cost >= '" . $order_total . "'AND ";

Видимо, автор допустил мех. ошибку.

Проверил, исправил, проверил наличие полей в таблице... Не работает :(. Причем не добавляется вариант доставки! А, как ни крути, предложенное исправление относится к отображению вариантов доставки на сайте, а не в админке.
« Последнее редактирование: 18.11.2009, 10:59:14 от Gremlin »
*

Gremlin

  • Захожу иногда
  • 293
  • 11 / 0
Разобрался! Сам виноват... Нужно было внимательно смотреть, что решение для VM 1.1, а у меня 1.0.15! Действительно нужно было немного подправить файл 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,";
в функции rate_add. Все работает! Как говорится - изучайте первоисточники ;)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор alibedog

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

Автор al_13

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

Автор baltazors

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

Автор demonm

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

Автор El_nik

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