Оплата только доставки - как?

shum64

Постоялец
Регистрация
2 Фев 2007
Сообщения
131
Реакции
49
Сабж, не знаю вообще как сделать...

Нужно что бы при выборе перевозчика на оплату шла только сумма доставки.

Может кто делал или есть идеи?
 
Аналогичная проблема. У меня сейчас стоит стоимость доставки 0.01. Пришлось так сделать так как есть бесплатная доставка от определенной сумы. Сейчас в форме пишет или "Согласно тарифам" или "Бесплатно", но вот в конечную суму включается эта копейка. Оно и не критично, но клиенты всякие есть.
 
Аналогичная проблема. У меня сейчас стоит стоимость доставки 0.01. Пришлось так сделать так как есть бесплатная доставка от определенной сумы. Сейчас в форме пишет или "Согласно тарифам" или "Бесплатно", но вот в конечную суму включается эта копейка. Оно и не критично, но клиенты всякие есть.

Погодите, бесплатная доставка от определенной суммы настраивается прямо в перевозчиках - тех которые платные.
В случае если назначен бесплатный перевозчик - например Самовывоз то и стоимость его просто "0", и не нужны никакие копейки.

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

Или я чего то недопонимаю?
Правильно, но тогда будет надпись "Бесплатно", а это же не так. По-этому было придумано (кстати здесь же на форуме общими усилиями) ставить минимальную стоимость, а в форме доставки заменить отображение стоимости на надпись "Согласно тарифов".
НО, если кто подскажет решение как не учитывать доставку в конечной стоимости, то тогда не нужно будет ставить копейки, а писать, что доставка примерно хх.хх
 
Правильно, но тогда будет надпись "Бесплатно", а это же не так. По-этому было придумано (кстати здесь же на форуме общими усилиями) ставить минимальную стоимость, а в форме доставки заменить отображение стоимости на надпись "Согласно тарифов".
НО, если кто подскажет решение как не учитывать доставку в конечной стоимости, то тогда не нужно будет ставить копейки, а писать, что доставка примерно хх.хх

Я долго с этой петрушкой игрался и в итоге сделал так )))
21b23d79-9968-4916-a5f3-194c8349c195.png

irhzff
 
Правильно, но тогда будет надпись "Бесплатно", а это же не так. По-этому было придумано (кстати здесь же на форуме общими усилиями) ставить минимальную стоимость, а в форме доставки заменить отображение стоимости на надпись "Согласно тарифов".
НО, если кто подскажет решение как не учитывать доставку в конечной стоимости, то тогда не нужно будет ставить копейки, а писать, что доставка примерно хх.хх
а почему просто не поменять перевод на "оплачивается отдельно"?
У себя чуть изменила код на:
Код:
{if $option.total_price_with_tax && (!isset($free_shipping) || (isset($free_shipping) && !$free_shipping))}
                                                    ...
                                                {else}
                                                    {if $carrier.instance->id == 204 || $carrier.instance->id == 262 || $carrier.instance->id == 265}
                                                        {l s='Бесплатно' mod='advancedcheckout'}
                                                    {else}
                                                        {l s='Оплачивается отдельно' mod='advancedcheckout'}
                                                    {/if}
                                                   
                                                {/if}
Т.к. есть и бесплатные доставки, и через ТК, которые сами считают и взымают с клиента оплату.
Проблема только в том, что при каждом изменении/сохранении перевозчика преста меняет ему id (зачем??? o_O)
 

Вложения

  • carrier.png
    carrier.png
    25,6 KB · Просмотры: 26
а почему просто не поменять перевод на "оплачивается отдельно"?
У себя чуть изменила код на:
Код:
{if $option.total_price_with_tax && (!isset($free_shipping) || (isset($free_shipping) && !$free_shipping))}
                                                    ...
                                                {else}
                                                    {if $carrier.instance->id == 204 || $carrier.instance->id == 262 || $carrier.instance->id == 265}
                                                        {l s='Бесплатно' mod='advancedcheckout'}
                                                    {else}
                                                        {l s='Оплачивается отдельно' mod='advancedcheckout'}
                                                    {/if}
                                                  
                                                {/if}
Т.к. есть и бесплатные доставки, и через ТК, которые сами считают и взымают с клиента оплату.
Проблема только в том, что при каждом изменении/сохранении перевозчика преста меняет ему id (зачем??? o_O)
Делал тоже так, но... как сделать, чтоб вот в Вашем примере "ТК или к.сл." имели 2 статуса (расчет и бесплатно) и доставку не указывать.
Задача простая: есть 3 перевозчика, бесплатная доставка от $100. В форме оформления заказа нужно указывать "По тарифам" или "Бесплатно" для каждого перевозчика.
 
У меня все сложнее. Заказ целиком не надо оплачивать, а толкьо доставку.
например заказ товаров на 500 баксов и доставка сто баксов, вот надо оплатить только доставку=100 баксов через разные платежные системы...
 
У меня все сложнее. Заказ целиком не надо оплачивать, а толкьо доставку.
например заказ товаров на 500 баксов и доставка сто баксов, вот надо оплатить только доставку=100 баксов через разные платежные системы...
Просто платежному модулю подсовывайте сумму за вычетом товаров. Но только в системе у вас заказ будет значится как частично оплаченный, но так ведь и есть на самом деле.

Там где платежный модуль использует $cart->getOrderTotal(true, Cart::BOTH) меняйте на $cart->getOrderTotal(true, Cart::ONLY_SHIPPING) и ставьте условие для каких $cart->id_carrier это должно происходить.
 
Я же вам написал, что нужно обновить модуль - это раз. Во-вторых - зачем заниматься шаманством и совать true, если вы не знаете значения констант? Если так уж интересно, то вот значения, используемые для Cart::XXXXXXX

const ONLY_PRODUCTS = 1;
const ONLY_DISCOUNTS = 2;
const BOTH = 3;
const BOTH_WITHOUT_SHIPPING = 4;
const ONLY_SHIPPING = 5;
const ONLY_WRAPPING = 6;

Все влияет и все работает, я проверил на своем сервере. Это суть функции getOrderTotal - возвращать сумму заказа в зависимости от переданных параметров. Если вторым параметром передать Cart::ONLY_SHIPPING то гарантированно вернет только стоимость доставки и ничего больше.
 
Назад
Сверху