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

Solser

  • Захожу иногда
  • 64
  • 16 / 1
Joomla 1.5.9 + VirtueMart 1.1.3.

Есть задача - связать вариант доставки и вариант оплаты. То есть, если клиент выбрал определенный тип доставки, ему могут быть доступны только определенные варианты оплаты (не все, которые включены). Использую стандартный модуль доставки.
« Последнее редактирование: 12.11.2009, 14:04:38 от beagler »
*

турист

  • Захожу иногда
  • 160
  • 7 / 0
Re: Как связать доставку и оплату?
« Ответ #1 : 18.07.2009, 02:07:19 »
Joomla 1.5.9 + VirtueMart 1.1.3.

Есть задача - связать вариант доставки и вариант оплаты. То есть, если клиент выбрал определенный тип доставки, ему могут быть доступны только определенные варианты оплаты (не все, которые включены). Использую стандартный модуль доставки.
Та же проблема. J1.5.11 VM1.1.3 Два вида доставки: курьером и Почтой России, два вида оплаты: наличными при получении и через банк. Нужно привязать оплату наличными к доставке курьером, а оплату через банк к доставке почтой. Кто помочь может??? Уже гусь последний улетел... Не могу въехать и всё тут!!!
*

Arkadiy

  • Гуру
  • 5315
  • 462 / 2
  • Крепитесь, други.
Re: Как связать доставку и оплату?
« Ответ #2 : 18.07.2009, 06:29:30 »
Со стандартным модулем доставки есть решение на англоязычном форуме.
*

Solser

  • Захожу иногда
  • 64
  • 16 / 1
Re: Как связать доставку и оплату?
« Ответ #3 : 18.07.2009, 22:56:43 »
Спасибо, поищем.
Но было бы совсем здорово, хотя бы ссылочку ;)
*

Solser

  • Захожу иногда
  • 64
  • 16 / 1
Re: Как связать доставку и оплату?
« Ответ #5 : 18.07.2009, 23:38:38 »
Тогда уж скорее http://forum.VirtueMart.net/, только там около 60 страниц по поиску shipping module, и все попытки найти там решение этой проблемы (а они предпринимались, разумеется, и периодически предпринимаются) пока к успеху не привели. ^-^
*

Arkadiy

  • Гуру
  • 5315
  • 462 / 2
  • Крепитесь, други.
Re: Как связать доставку и оплату?
« Ответ #6 : 19.07.2009, 14:52:20 »
payment shipping надо спрашивать, тогда меньше страниц будет.
*

olomutsky

  • Новичок
  • 2
  • 0 / 0
Re: Как связать доставку и оплату?
« Ответ #7 : 23.10.2009, 20:25:16 »
Кто-то уже нашел решение этой задачи? Поделитесь пожалуйста, очень нужно желательно на русском  ^-^ !
*

Arkadiy

  • Гуру
  • 5315
  • 462 / 2
  • Крепитесь, други.
Re: Как связать доставку и оплату?
« Ответ #8 : 24.10.2009, 16:01:00 »
На русском публиковал на этом форуме для 1.0.15 версии, для 1.1 не делал пока.
*

olomutsky

  • Новичок
  • 2
  • 0 / 0
Re: Как связать доставку и оплату?
« Ответ #9 : 24.10.2009, 21:15:19 »
На русском публиковал на этом форуме для 1.0.15 версии, для 1.1 не делал пока.
А можно узнать приблизительные сроки, когда у вас будет возможность переделать его для 1.1 ? Очень нуждаюсь в этом модуле и наверно не я один, а сам в написании данного модуля я не силен и остается надеяться только на вас.
*

Arkadiy

  • Гуру
  • 5315
  • 462 / 2
  • Крепитесь, други.
Re: Как связать доставку и оплату?
« Ответ #10 : 26.10.2009, 07:02:32 »
Сроков нету, т.к. нет необходимости пока, но вполне возможно что необходимость появится.
*

Solser

  • Захожу иногда
  • 64
  • 16 / 1
Re: Как связать доставку и оплату?
« Ответ #11 : 12.11.2009, 13:54:01 »
В общем опробовал решение, найденное на буржуйском форуме. Прикладываю патч и инструкцию. Решение привязывает возможные варианты оплаты к конкретному варианту доставки. Требуется, чтобы на фронтэнд сначала шел выбор доставки, а потом уже выбор оплаты. Инструкция есть на английском.Вкратце : надо прогнать скрипт, указанный в инструкции (заменив название базы на Вашу и префикс таблицы - обычно jos_vm_ ) и заменить файлы. Решение сделано для   - Joomla V1.5.7 - - VirtueMart 1.1.2 stable  (PHP 5.2.5 - Mysql 5.0.45-community-nt ). Если надо для более высоких версий, то просто сравниваем файлы патча и вставляем изменения (которые маркируются //ESOL  ).  Правда у меня образовался глюк в админзоне (не сохраняется выбор в БД), пришлось вручную заполнять таблицу напрямую. С чем связано, не знаю, может с версией PHP. Если кто найдет ошибку и исправит, будет неплохо. Но на фронтэнде работает всё корректно.

[вложение удалено Администратором]
*

ghola

  • Новичок
  • 4
  • 0 / 0
Solser  спасибо за решение   :D

Правда у меня образовался глюк в админзоне (не сохраняется выбор в БД), пришлось вручную заполнять таблицу напрямую. С чем связано, не знаю, может с версией PHP. Если кто найдет ошибку и исправит, будет неплохо. Но на фронтэнде работает всё корректно.

Вот то же самое и у меня. не сохраняет выбор способа оплаты через админку.
Подскажи пожалуйста, как вручную заполнить таблицу?

Связка у меня такая же как и у тебя. Joomla 1.5.9 + VirtueMart 1.1.3.
« Последнее редактирование: 23.11.2009, 18:53:24 от ghola »
*

Solser

  • Захожу иногда
  • 64
  • 16 / 1
Если Вы всё правильно сделали (а именно прогнали скрипт для БД), то в БД должна появиться таблица
jos_vm_shipping_rate_payment_method_xref.

Там всего три столбца:

shipping_rate_payment_method_id - (это собственный ID, назначаем тупо по порядку на каждую строку)
shipping_rate_id - (это ID тарифа доставки .Его берем из таблицы jos_vm_shipping_rate)
payment_method_id - (Это ID способа оплаты. Его берем из таблицы  jos_vm_payment_method).

Подключаемся к БД (хотя бы с помощью phpmyadmin), и заполняем таблицу jos_vm_shipping_rate_payment_method_xref строками, сопоставляя нужному ID тарифа доставки, разрешенный ID способа оплаты. Если одному тарифу доставки соответствует несколько способов оплаты, то соответственно делаем несколько строк-сопоставлений. Все не очень сложно, главное внимательно делать.


*

ghola

  • Новичок
  • 4
  • 0 / 0
Я извиняюсь, не  очень разбираюсь в sql.   :(   Уважаемый Solser,  покажите хотя бы аналогию создания одной записи в этой таблице
Вот так она у меня выглядит.

*

Solser

  • Захожу иногда
  • 64
  • 16 / 1
Выглядит очень привлекательно даже. Если внимательно посмотрите, там в верхних горизонтальных закладках есть закладка "Вставить". Вот Вам туда.  Там заполняем верхнюю табличку значениями  выбираем "вставить новую запись" и нажимаем "пошел". И так заполняем, пока не внесем все соответствия. Делая последнее , выбираем "возврат".


[вложение удалено Администратором]
« Последнее редактирование: 23.11.2009, 21:51:28 от Solser »
*

ghola

  • Новичок
  • 4
  • 0 / 0
Solser, спасибо тебе за терпение и ответы.  *DRINK*
*

savenko

  • Захожу иногда
  • 83
  • 8 / 0
Если Вы всё правильно сделали (а именно прогнали скрипт для БД), то в БД должна появиться таблица
jos_vm_shipping_rate_payment_method_xref.
Что за скрипт? Как его прогнать?
*

sereja_rwb

  • Осваиваюсь на форуме
  • 28
  • 5 / 0
Поставил работает, проблему с записью в базу данных решилась просто....
все заполняю, ПРИМЕНЯЮ, страница обновляется, заново тыкаю-выбираю спообы оплаты и сохраняю и все работает

Пасибки за перевод, очень нужная вещь
*

sereja_rwb

  • Осваиваюсь на форуме
  • 28
  • 5 / 0
Цитировать
Если Вы всё правильно сделали (а именно прогнали скрипт для БД), то в БД должна появиться таблица
jos_vm_shipping_rate_payment_method_xref.
Что за скрипт? Как его прогнать?

Делаешь SQL запрос в базе данных

CREATE TABLE `biz_vm_shipping_rate_payment_method_xref` (`shipping_rate_payment_method_id` INTEGER NOT NULL DEFAULT NULL AUTO_INCREMENT, `shipping_rate_id` INTEGER NOT NULL,`payment_method_id` INTEGER NOT NULL, PRIMARY KEY (`shipping_rate_payment_method_id`));

       
Где  biz_vm  префикс базы и магазина
*

Alur

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
А если используется сторонний модуль доставки?
Например: russianpost_1.0.4, как отключить оплату курьером?

Так понимаю, что надо новую таблицу составлять, что ставить вместо shipping_rate_id ?
*

Dobryak

  • Захожу иногда
  • 104
  • 2 / 0
Автору респект! Большое спасибо!
У меня кроме варианта доставки Почтой России есть еще два способа:
- Ценная посылка наземным транспортом
- Ценная посылка воздушным транспортом
Они остаются без способа оплаты.... >:(
Как к ним привязать все эти способы оплаты? Поделитесь кто сделал!
« Последнее редактирование: 12.01.2010, 18:01:44 от Dobryak »
*

NEKTO666

  • Новичок
  • 3
  • 0 / 0
спасибо за полезный хак! получилось связать варианты доставки с методами оплаты.

Только есть один момент, который тут уже поднимался. У меня стоит модуль доставки Почта России 1.04. Этот модуль работает мимо таблицы vm_shipping_rate и ему не присваивается shipping_rate_id. Это самое id присваивается только вариантам доставки, настроенным через Standard Shipping Module. Отсюда вопрос: может кто-нибудь знает как присвоить shipping_rate_id другим модулям доствки кроме стандартного?

Тема думаю актуальная для многих, кто пользуется модулями доставки кроме стандартного.
Напишите кто победил эту траблу!
*

rudon

  • Осваиваюсь на форуме
  • 27
  • 17 / 0
Я смог связать оплату и доставку при использовании сторонних модулей доставки (в моем случае "Почта России" и "СПСР-Экспресс")

Работает только вместе с вышеприложенными файлами.
Для этого Вам необходимо вручную внести в созданную таблицу новые связи доставки и оплаты. Как это сделать указано выше в теме.
ВНИМАНИЕ! Через админ зону этого сделать не получится!

Итак, для начала я определили какие id у меня будут присвоены каждому строннему модулю.
Например:

СПСР-Экспресс  (spsr_f.php) - id 1001
Почта России (russinpost.php) - id 1002

После этого заполняю таблицу, где в  shipping_rate_id указываю выбранный id строннего модуля доставки, а в payment_method_id - способы оплаты, которые будут дествительны для этой доставки.

Далее по адресу ..\administrator\components\com_virtuemart\classes\shipping
нахожу файл доставки и в нем ищу строчку похожую на эту

Код
$shipping_rate_id = urlencode( $this->classname."|СПСР-Экспресс|Доставка курьером|".$total);

и к ней в конце добавляю id выбранный для данного модуля  (."|1001")

Код
$shipping_rate_id = urlencode( $this->classname."|СПСР-Экспресс|Доставка курьером|".$total."|1001");

Для почты России эта строчка выглядит чуть иначе:

Код
$value = urlencode( $this->classname."|Russian Post|".$rate_name[$key]."|".$rate_cost[$key]);

также в конце добавляем id  (."|1002")

Код
$value = urlencode( $this->classname."|Почта России|".$rate_name[$key]."|".$rate_cost[$key] ."|1002");

Тестировал на денвере. вроде работает.  Проверяйте.

PS Сделать так чтобы все эти данные автоматически вставлялись я не смог, т.к. не умею. Если найдется человек, который доведет до ума все это, буду ему благодарен.

При использовании почты России  меня выводится только оптимальный вариант перевозки, как быть с

У меня кроме варианта доставки Почтой России есть еще два способа:
- Ценная посылка наземным транспортом
- Ценная посылка воздушным транспортом
Они остаются без способа оплаты.... >:(
Как к ним привязать все эти способы оплаты? Поделитесь кто сделал!

не знаю, ибо таким вопросом не задавался, возможно заработает, а может нет
« Последнее редактирование: 10.03.2010, 07:44:50 от rudon »

 ! ! ! Ребят очень нужна ваша помощь. Сделал все как было написано инарисовано, но при выборе доставки вылетает ошибка с просьбой выбрать другой способ доставки... ЧТО МНЕ ДЕЛАТЬ?
*

Gremlin

  • Захожу иногда
  • 293
  • 11 / 0
! ! ! Ребят очень нужна ваша помощь. Сделал все как было написано инарисовано, но при выборе доставки вылетает ошибка с просьбой выбрать другой способ доставки... ЧТО МНЕ ДЕЛАТЬ?

У меня выскакивало такое сразу после применения хака - просто сразу нужно привязать доставки к способам оплаты! Для этого заходим в тарифы доставки и все тарифы перенастраиваем - привязываем их к способам оплаты ;)
*

fl-rost

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
Все господа. мой мозг сломан окончательно. Я уже не знаю что делать и куда чего настраивать чтобы это заработало.
ПОсле настройки БД у меня стало отображаться только оплата кредитными картами из всех доступных. Скажите, где чего еще настраивать, если после добавки всех строчек в БД и последующей настройки-привязке каждого способа оплаты, у меня на сайте так ничего и не вылазит?


Я не профи, поэтому прошу объяснить поэтапно, пожалуйста!
Список Вариантов доставки:


Список способов оплаты:





Все варианты доставки включила пока временно....
*

fl-rost

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
все настроила так что вопрос снят.
*

fl-rost

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
оказалось все настолько элементарно просто. Я даже не знаю, зачем ломать голову таблицами и базами данных?
Мне нужно было, чтобы при оформлении человек указывал как ему доставить. Вот такими способами. И чтоб от выбора способа приплюсовывалось к сумме заказа (плюсики вы видите).


Как сделать:
магазин-способы оплаты-создать новый
В окошечке просто ставим вот так. Там где скидка - просто пишем минус стоимость доставки.


А всего то надо было прочитать подсказку! там так и написано, "чтобы преобразовать скидку в оплату используйте отрицательное число"  ;D
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль доставки почты России 1.0.6 для VirtueMart 1.1.Х

Автор esmark

Ответов: 65
Просмотров: 21616
Последний ответ 24.12.2015, 11:29:51
от SolopoV
[Решено] Конвертация валюты в настройках модуля оплаты PayPal (Legacy)

Автор sincro-fazatron

Ответов: 4
Просмотров: 2595
Последний ответ 12.12.2015, 13:09:38
от Sheff14
Модуль VirtueMart для Новой почты

Автор rezon

Ответов: 25
Просмотров: 7085
Последний ответ 15.10.2015, 23:31:01
от rezon
[Решено] Оплата на пластиковую карту

Автор dron

Ответов: 6
Просмотров: 7811
Последний ответ 17.03.2015, 12:48:18
от SolopoV
модуль оплаты roboxchange.com (ROBOKASSА) для VirtueMart 1.1.3

Автор dezzor

Ответов: 103
Просмотров: 36943
Последний ответ 11.03.2015, 07:21:48
от Pingvin78