Модератор форума: Yuri_G |
Сообщество uCoz » Модули uCoz » Интернет-магазин » Расчёт стоимости доставки товара через матрицы (Накрутка и скидка) |
Расчёт стоимости доставки товара через матрицы | ||||||||||||||||
Свои настройки на доставку вы можете увидеть в интерфейсе "Ваш заказ", пункт "Такса за доставку". | ||||||||||||||||
DriftUCOZ, писать у.е. У вас 1 у.е. = 1 руб.
| ||||||||||||||||
DriftUCOZ, писать в у.е.
Возникла необходимость вывести предполагаемую дату доставки товара, например, к текущей прибавить 3 дня. неужели нет простого скрипта, чтобы это сделать? или придется реализовывать кучей условных операторов? или может у кого готовое решение есть? | ||||||||||||||||
Quote (MaxL) nananana, Quote (nananana) А как сделать чтобы при покупке от трёх товаров делалась скидка 10%? Ставишь матрицу от количества товара. В матрице пишешь от 0 до 2 = 0 от 3 до 9999999 = -10 % Ответа на вопрос где и как я так и не дождался от MaxL, но проблемку эту уже решил и есть некоторые замечания. Расскажу, может пригодится кому. Итак задача стояла настроить автоматический расчет скидок для оптовых покупателей, думаю многим этот вопрос близок :). Скидка от суммы заказа здесь естественно не подходит, поскольку товары есть разные, один стоит 1 евро второй 100, и как тут настроишь скидку для оптовика от суммы? Если к примеру поставить условие от 100 до 500 уе = скидка 10%, то клиент купивший 90 единиц товара по 1 уе и не оптовик получается никакой, поскольку скидка ему начисляться не будет. Начал рыть и нашел этот пост Ставишь матрицу от количества товара. В матрице пишешь от 0 до 2 = 0 от 3 до 9999999 = -10 % Так то оно так, но матрица от количества работает только в модуле расчета цен доставки (о чем я спрашивал но так и не дождался ответа). Вопрос конечно решаем и если вы твердо уверены что вам нужна скидка от количества, то читайте дальше. Я решил использовать "модуль расчета цен доставки" не по назначению, сделал матрицу со скидками , к примеру 1-9=0% 10-25=10% 26-50=20% и так далее, затем пошел настраивать "модуль расчета цен доставки", как я это сделал есть на скрине ниже Дело оставалось за малым, теперь только нужно было поковырять шаблон "Страница служебных форм" и поменять все стандартные надписи на те что мне нужно, в результате получилось следующее Урррра......заработалооооо!!! Правда есть два НО... 1...мне пришлось пожертвовать "модулем расчета цен доставки", но поскольку я принимаю платежи посредством системы ПайПал, то я не сильно расстроился, а просто взял и настроил наценки за доставку прямо в этой системе, благо такая возможность есть. 2...я обнаружил баг в "модуле расчета цен доставки", и на это прошу обратить внимание разработчиков. Проблема в следующем, система не начисляет скидку по нижней границе в строке диапазона количества товара в матрице. Тоесть, к примеру мы сделали матрицу от 0 до 9 единиц = 0% скидки от 10 до 24 единиц = 10% скидки от25 до 50 единиц = 20% скидки все работает если клиент закажет, скажем 15 или30 единиц, но если заказать ровно 10 или 25, что является нижней границей диапазона, то скидка не начисляется. Пришлось пойти на уловку и сделать вот так правда в таком случаи скидка по нижней границе начисляется по значению предыдущей строки, тоесть для количества 25 скидка -10% а не -20% как должно было бы быть, но если указать диапазон правильно, вот так от 10 до 24 единиц = 10% скидки от25 до 50 единиц = 20% скидки то на количество 25 скидка вообще не начисляется. Поэтому чтоб добиться желаемого результата пришлось сделать вот так теперь скидки начисляются в нужном мне порядке... Обращаюсь еще раз к сильным мира Юкоз, исправте баг, ато непорядок получается. Надеюсь помог, кому смог Добавлено (02-Сен-2011, 01:18:04) Quote (HETPE3B) Возникла необходимость вывести предполагаемую дату доставки товара, например, к текущей прибавить 3 дня. неужели нет простого скрипта, чтобы это сделать? или придется реализовывать кучей условных операторов? или может у кого готовое решение есть? Нет ничего проще, пишеш где тебе надо <? $DAY$+3 ?> и получиш предполагаемую дату (текущий день + 3 = дата доставки) Добавлено (03-Сен-2011, 15:56:37) Прикрепления:
4949112.jpg
(65.3 Kb)
·
9476921.jpg
(64.7 Kb)
·
6817169.jpg
(27.1 Kb)
·
3316431.jpg
(27.5 Kb)
Сообщение отредактировал rodatam - Четверг, 01 Сен 2011, 16:18:26
| ||||||||||||||||
rodatam, пробовал, не получается. Т.к. значение $DAY$+3 может стать равным 32, 33 и 34, что невозможно. Помимо этого все усложняется юлианским календарем, где не каждый месяц 31 день.
| ||||||||||||||||
Все решаемо, можно ведь прописать дополнительные условия, к примеру .... если $DAY$<28 то дата доставки $DAY$+3 или если $DAY$=>28 то дата доставки ($DAY$+3)-31 плюс к этому прописать условия в зависимости от месяца используя $MONTH$ чтобы учесть 30 и 31 день. Надо просто покумекать и сделать.
| ||||||||||||||||
rodatam,
Quote (rodatam) так и не дождался от MaxL Я тут мимо шел и вот вдруг увидел Quote (rodatam) Итак задача стояла настроить автоматический расчет скидок для оптовых покупателей, думаю многим этот вопрос близок :). Скидка от суммы заказа здесь естественно не подходит, поскольку товары есть разные, один стоит 1 евро второй 100, и как тут настроишь скидку для оптовика от суммы? Если к примеру поставить условие от 100 до 500 уе = скидка 10%, то клиент купивший 90 единиц товара по 1 уе и не оптовик получается никакой, поскольку скидка ему начисляться не будет. Верно. Накопительная скидка есть, но вам нужна разовая скидка за количество. Да, я бы тоже пожертвовал бы системой расчета стоимости доставки. По поводу бага в матрице. Попробуйте записать так: от 0 до 10 единиц = 0% скидки от 10 до 25 единиц = 10% скидки от 25 до 50 единиц = 20% скидки Самому протестировать негде. Спасибо в репутацию.
| ||||||||||||||||
Quote (MaxL) По поводу бага в матрице. Попробуйте записать так: от 0 до 10 единиц = 0% скидки от 10 до 25 единиц = 10% скидки от 25 до 50 единиц = 20% скидки Так тоже делал, проблема в том что скидка по нижней границе все равно не начисляется. Тоесть при вышеуказанном условии, скидка на количество 25 единиц будет не 20% а 10%. Ну это не смертельно, проблемку решил записав по другому. | ||||||||||||||||
rodatam, да, я тут покумекал
нужно учесть февраль, т.к. в нем 28 дней нужно учесть февраль високосного года, т.к. в нем 29 дней нужно учесть месяцы в которых 30 дней нужно учесть месяцы в которых 31 день нужно учесть +2 два дня к результату, если заказ оформляется перед выходными (т.к. условие, что доставка в течении 3 рабочих дней) | ||||||||||||||||
Quote (HETPE3B) rodatam, да, я тут покумекал нужно учесть февраль, т.к. в нем 28 дней нужно учесть февраль високосного года, т.к. в нем 29 дней нужно учесть месяцы в которых 30 дней нужно учесть месяцы в которых 31 день нужно учесть +2 два дня к результату, если заказ оформляется перед выходными (т.к. условие, что доставка в течении 3 рабочих дней) ну вот, пол дела уже сделал, теперь осталось прописать это все с операторами.....хотя, не проще было бы всего лишь навсего написать гдето на видном месте "Доставка в течении 3-х рабочих дней", а клиент пускай сам себе считает | ||||||||||||||||
rodatam, поздно, я уже блок-схему набросал
| ||||||||||||||||
Quote (rodatam) Обращаюсь еще раз к сильным мира Юкоз, исправте баг, ато непорядок получается. я непойму откуда вы взяли что нада начало следующего и конец предыдущего диапазона разделять в единицу ? например: Code 10-24 25-50 матрицы универсальны, да сейчас вы их применяете к целочисленным значением, количеству.... но они же применяются и к ценами что делать если значение, которое нужно "прокатить" по этой матрице: 24.2 ? посему алгоритм преобразования по матрицам прост универсален и един: коэфицент накладывается в следующем случае: ЕСЛИ значение БОЛЬШЕ нижнего диапазона линии матрицы И МЕНЬШЕ ИЛИ РАВНО верхнему диапазону линии тоесть для линии матрицы 25-50 имеем выражение: (value > 25) AND (value <= 50) при этом формат матриц должен иметь ввид: тоесть границы начала верних и конца нижних диапазонов должны совпадать Code 0-10 10-25 50-50 50-100 100-99999 | ||||||||||||||||
Quote (LV) я непойму откуда вы взяли что нада начало следующего и конец предыдущего диапазона разделять в единицу ? например: Да нет, это я пробовал разные варианты, в конечном итоге пришёл к тому, что нижний диапазон не учитывается. Поэтому для условий 0-9 = 0%, 10-24= 5%, 25-49 = 10% и т.д. прописал следуещее от 0 до 9 =0% от 9 до 24 =0% от 24 до 49 =0% о чем и написал выше. Спасибо за ответ. |
| |||