Все косяки исправлены в чертовой, адской опенкартине. Но сейчас заказчик придумал новую фичу, которую никто не знает как сделать и как саму логику реализовать.
Вот захотел он чтобы при сумме заказа (считается от общей суммы) присваивались бонусные баллы, а когда из набирается 20, то они равны 1. у.е. Т.е. 1 балл = 1 евро и за них можно купить товар. Неделю ломаю голову, перепробовал всё. С горя пойду напьюсь и может что придумаю. Или же коллективный разум призову на помощь.
Что делать, как жить дальше?
Комментарии (11)
Все новоиспечённые профессиональные веб-разработчики? Ведь так-то у людей бывает разный предшествующий опыт. Кто-то начинал с "васиков и пасцалей" ещё в оффлайне, до того, как PHP получил хоть какое-то распространение.
К синтаксису тоже есть претензии, напр., хоть та же ассоциативность тернарного оператора "?:". Больше меня напрягает семантика, типа напр., что делает оператор "==" или "||", *непоследовательность* существующих функций и качество живых программ. Сплошные *сюрпризы*, от которых руки опускаются. Вместо потуг в переписывании PHP на собственный лад, мне проще его избегать.
По-моему, у него низкий порог вхождения, но он не простой. Хелло-ворлд и сайт-визитку напишет каждый. *Начать* разрабатывать свою CMS тоже не сложно. Сделать качественный поддерживаемый продукт сложно. Не знаю в чём секрет успеха. Есть мнение, что это результат коварного плана.[1] %))
У Perl'а порог вхождения выше, но уже довольно скромный набор систематических знаний развязывает руки и позволяет эффективно работать *без* особых сюрпризов. В совершенстве знать Perl, по-моему, нереально, но *понимать* довольно легко. Сортировка с предикатом типа "sort P(a,b) LIST" (кстати, не на месте) ведь интуитивно понятнее, чем сортировка в PHP? Хотя PHP разрабатывался для веба, нынешние крупные программы, насколько могу судить, написаны в стиле языков общего назначения - лишь шаблоны (со вложенным кодом) соответствуют исконному духу.
Да. Йа просто сослался на более компетентное и лучше изложенное мнение о недостатках PHP, нежели моё. Йа спорить не хочу, просто кагбе говорю iddqd: «Есть люди, которые считают, что в ПХП щястя нет».
[1] http://dklab.ru/chicken/nablas/55.html
[1] http://webonastick.com/php.html
С PHP все начинают:) правда в универе у нас первый был Python, а после php, а не наоборот, не одним - но ты работаешь именно со синтаксисом его, тогда из-за чего ты его не осилил если с синтаксисом все ок? PHP синтаксисом похож на C подобные языки, тебе не что не мешает написать свою функцию если тебя не устраивают те что по дефу написаны), php не идеален и не лучший, но за счет своей простоты - он используется по всюду... если он такой хреновый то нафига на нем разрабатываются движки и куча сайтов? ну Perl универсальный язык - а не конкретно язык для веба, PHP же строился именно как веб-язык , и Perl сложнее его, странно то что ты смог осилить Perl но не смог понять Php :) это ссылка ничего не доказывает, почти в какой сайт не плюнь - ядро у него базируется на php ;) (не говорю про сайты-визитки на голом html+css)
[1] http://webonastick.com/php.html
1) catalog/controller/account/order
2) catalog/model/account/order
3) catalog/view/account/order
ничего не нужно ковыряться и изучать много лишнего, там будет только то что конкретно касается frontend и о пользователе заказе , там не так много кода, там все оптимизировано уже так что меньше не куда.
конечно если сайт сделан, просто все в куче говна, я думаю что для тебя не новость что весь сайт можно разместить только в одном файле index.php (даже opencart можно), ну картинки конечно будут в каталоге отдельно) а весь код в одном файле - вот это ад
1) Добавляем в базу дополнительное поле например Points, в таблицу пользователей в которой хранится вся информация о нем а так-же о его заказах.
2) Дальше дописываем данное считывание поля в Controllere, Modele и Views (это надо делать как на стороне frontenda так и на стороне backenda) - чтоб в админке была дополнительная колонка с баллами, ну и сам пользователь у себя в профиле мог видеть их, надо будет просмотреть все шаблоны которые выводят информацию о заказе, туда и включить это наше поле из таблицы добавленное пунктом 1., как-бы не думаю что проблема будет к товару добавить дополнительное поле в шаблоне как баллы.
3) Дальше нужна сама схема как это должно работать, и как эти баллы будут начисляться.
4) Нам нужно будет общаться в контроллер оплат, то есть чтоб баллы начислялись только после того как товар уже оплачен(если систем оплат много - то в каждом контроллере придется это прописывать), ну там по сути ничего сложно а просто один запрос к базе (который увеличит этот счетчик баллов конкретного юзера) и все.
5) Дальше нам надо что-то с этими баллами сделать чтоб они как-то работали а не просто набирались для красоты, есть вариант такой попроще, что после того например как пользователь собирает своих 20 баллов, они будут отниматься от общей суммы просто тупо $total = $price - $bonus; , ну само собой с проверками без IF не обойтись) IF понадобиться на проверку количества бонусов собранных, и понадобиться на переменную $total, она у нас не может быть меньше 0, то например товар стоит 10 еуро, а бонус у нас -20 еуро и уже будет не гуд), ну и как-то так.
П.С может есть какие-то готовые модули(я думаю что что-то должно быть в таком духе), ну на крайняк чуток под себя переделать и все, может проще будет купить за каких 20 баксов и радоваться а с заказчика содрать и эту сумму + типа работа