[Решено] Как связать доставку и оплату? Joomla 1.5.* + VirtueMart 1.1.*

  • 86 Ответов
  • 45040 Просмотров

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

*

Solser

  • ***
  • 64
  • + 15 -
Joomla 1.5.9 + VirtueMart 1.1.3.

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

Re: Как связать доставку и оплату?
« Ответ #1 : 18.07.2009, 04:07:19 »
Joomla 1.5.9 + VirtueMart 1.1.3.

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

*

Arkadiy

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

*

Solser

  • ***
  • 64
  • + 15 -
Re: Как связать доставку и оплату?
« Ответ #3 : 19.07.2009, 00:56:43 »
Спасибо, поищем.
Но было бы совсем здорово, хотя бы ссылочку ;)


*

Solser

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

*

Arkadiy

  • *****
  • 5342
  • + 440 -
  • Крепитесь, други.
Re: Как связать доставку и оплату?
« Ответ #6 : 19.07.2009, 16:52:20 »
payment shipping надо спрашивать, тогда меньше страниц будет.

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

*

Arkadiy

  • *****
  • 5342
  • + 440 -
  • Крепитесь, други.
Re: Как связать доставку и оплату?
« Ответ #8 : 24.10.2009, 18:01:00 »
На русском публиковал на этом форуме для 1.0.15 версии, для 1.1 не делал пока.

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

*

Arkadiy

  • *****
  • 5342
  • + 440 -
  • Крепитесь, други.
Re: Как связать доставку и оплату?
« Ответ #10 : 26.10.2009, 09:02:32 »
Сроков нету, т.к. нет необходимости пока, но вполне возможно что необходимость появится.

*

Solser

  • ***
  • 64
  • + 15 -
Re: Как связать доставку и оплату?
« Ответ #11 : 12.11.2009, 15: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

Solser  спасибо за решение   :D

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

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

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

*

Solser

  • ***
  • 64
  • + 15 -
Если Вы всё правильно сделали (а именно прогнали скрипт для БД), то в БД должна появиться таблица
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

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


*

Solser

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


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

*

ghola

Solser, спасибо тебе за терпение и ответы.  *DRINK*

*

savenko

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

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

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

Цитировать
Если Вы всё правильно сделали (а именно прогнали скрипт для БД), то в БД должна появиться таблица
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 -
А если используется сторонний модуль доставки?
Например: russianpost_1.0.4, как отключить оплату курьером?

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

*

Dobryak

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

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

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

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

*

rudon

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

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

Итак, для начала я определили какие 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, 09:44:50 от rudon »

*

shaburov

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

*

Gremlin

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

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

*

fl-rost

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


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


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





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

*

fl-rost

  • **
  • 17
  • + 1 -
все настроила так что вопрос снят.

*

fl-rost

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


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


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