@symfony_php

Страница 30 из 1418
Sergey
17.12.2016
14:17:03
оке, на что скидка влияет?

Sergey
17.12.2016
14:17:07
на всю покупку

Sergey
17.12.2016
14:17:11
оке

добавим сервис DiscountCalculator

Google
Sergey
17.12.2016
14:17:24
сделаем там нужные проверки

секу, набросаю gist

Sergey
17.12.2016
14:17:42
да давай гист

Sergey
17.12.2016
14:17:57
p.s. блин надо все же для таких эксперементов сделать проект на гитхабе таки

Sergey
17.12.2016
14:18:07
я ж тебе за это уже хз сколько говорю

Sergey
17.12.2016
14:18:27
предлагаешь мне на недельку взять отпуск что бы попилить магазин?)

Sergey
17.12.2016
14:18:40
та он пилится за пару вечеров на выходных)

один хер бездельничаешь)

Sergey
17.12.2016
14:19:00
дай пол часа

запилю набросок

Sergey
17.12.2016
14:19:11
?

Sergey
17.12.2016
15:21:19
https://github.com/fesor/shop-example

Sergey
17.12.2016
15:21:28
добавить 2 продукта в карт, и цена у них должна стать на 10% меньше у всего карта

Google
Sergey
17.12.2016
15:22:00
$cart->totalPrice($discountCalculator)

не

?

Sergey
17.12.2016
15:23:08
мм.. скажем, по сущностям по каждой нужно посчитать новый ценник

Sergey
17.12.2016
15:23:20
эм... не по каждой

блин у меня нет Cart

надо добавить походу

только Cart может знать что у нас 2 айтема одинаковых в карте

Sergey
17.12.2016
15:25:17
ну вот хочу чтобы в карте на UI у меня показывало по каждому продукту сколько ценник например я добавил Властелин колец 2 книги(по 10$) и Гаррипоттера (20$) тотал без скидки 40$, со скидкой 36$ и по каждому продукту Властелин колец 9$(10$)х2 = 18$ Гаррипоттер 18$(20$)х1 = 18$

Sergey
17.12.2016
15:25:31
у меня за это сейчас отвечает OrderLine

если влоб - то в методе price мы просто добавляем проверку

Sergey
17.12.2016
15:26:19
давай влоб))

Sergey
17.12.2016
15:29:39
public function price(): Money { if ($this->quantity == 1) { return $this->sellPrice; } return $this->sellPrice->multiply($this->quantity)->multiply(0.9); }

влобее не придумаешь)

Sergey
17.12.2016
15:30:04
? норм

Sergey
17.12.2016
15:30:39
но я уже с такой реализацией кучу проблем могу придумать)

Sergey
17.12.2016
15:30:55
ну для текущего варианта сойдет, щас следующее требование напишу

ну для гаррипоттера не будет скидки

Sergey
17.12.2016
15:32:51
не понял

Google
Sergey
17.12.2016
15:33:11
тип если мы покупаем 1-ую и 4-ую часть книги то всеравно надо получать скидку

?

это ж разные книги, одна серия - да

Sergey
17.12.2016
15:33:22
не, почитай выше кейс

ну вот хочу чтобы в карте на UI у меня показывало по каждому продукту сколько ценник например я добавил Властелин колец 2 книги(по 10$) и Гаррипоттера (20$) тотал без скидки 40$, со скидкой 36$ и по каждому продукту Властелин колец 9$(10$)х2 = 18$ Гаррипоттер 18$(20$)х1 = 18$

щас скидка работает для властелина колец

а для гаррипоттера работает?

Sergey
17.12.2016
15:33:50
погоди....

хм...

не так прочитал требования)

Sergey
17.12.2016
15:34:01
на весь карт надо скидку)

Sergey
17.12.2016
15:34:23
все таки надо формализовать требования, сейчас...

https://github.com/fesor/shop-example/pull/1

блин опять не все требования

Sergey
17.12.2016
15:48:35
да)

еще ж показывать по каждому айтему ценники

Sergey
17.12.2016
15:48:44
ай мне лень, давай завтра

))

Sergey
17.12.2016
15:48:50
? окей

сразу тебе наброшу, чтобы ты прикинул заранее: у книг могут быть свои издатели на каждого издателя мы накидываем свою маржу, индивидуально(где-то 50%, где-то 30%). т.е у нас стоит цена в каталоге 10$, а юзеру показываем 13$(если 30% маржи) на каждого издателя свой набор правил скидок. к примеру наборы: если положили в корзину N продуктов от одного издателя, то даем N% скидку если в карте лежит больше чем на N$, тогда даем N$ скидку если сегодня N день недели даем N% скидку (advanced) если юзер купил в прошлом месяце больше чем на N$, даем N% скидку

Google
Sergey
17.12.2016
16:00:44
То есть мы делаем магазин книг?

Sergey
17.12.2016
16:00:58
да давай книг, вроде все просто

если тут есть желающие присоеденится к реализации то велкам цель: придерживаясь ооп практик реализовать требования)

Stepan
17.12.2016
16:20:46
Ну определенно Cart есть, и есть процессоры, которые дальше этот карт разбирают и сами в нужных местах аплаются

Давайте что ли тоже попробую накидать

Sergey
17.12.2016
16:23:09
можешь к фесору в репос набрасывать)

Stepan
17.12.2016
16:24:51
Я пока свой инитнул, потом посмотрим

@Enleur, ну кстати у тебя в условии не хватает ответа на вопрос, что раньше применять, проценты или суммы

Так что пусть будут суммы, а то жирные больно скидки

Sergey
17.12.2016
17:26:51
проценты от базы считать

точнее, база + маркап

Stepan
17.12.2016
17:28:05
Ну маркап и база это ладно, но если у меня корзина попадает под 2+ условия скидок на разные критерии, я должен что-то применить первым

Sergey
17.12.2016
17:28:30
ну т.е они по сути суммируются, скидки

Sergey
17.12.2016
17:28:54
Sergey
17.12.2016
17:29:16
ок, давайте решим как лучше

Stepan
17.12.2016
17:29:51
100€cart - 5% - 10€ == 85 100€cart - 10€ - 5% == 85.5

Ну это так, implementation detail

Sergey
17.12.2016
17:31:49
можно сделать проще - "хз, запустим A/B тестирование и решим с чем конверсия выше"

Stepan
17.12.2016
17:34:14
Это да, это всегда работает)

Google
Sergey
17.12.2016
17:34:41
всегда кстати интересовало каким образом считаются скидки, но осбо не задавался вопросом

Sergey
17.12.2016
17:37:51
всегда кстати интересовало каким образом считаются скидки, но осбо не задавался вопросом
это бизнес решать должен) для пользователей выгоднее вариант при котором выходит меньше прайс. Для продукт оунера - где выше прайс

Sergey
17.12.2016
17:38:25
>100€cart - 5% - 10€ давай тогда ASC модель

Sergey
17.12.2016
17:39:23
100€cart - 5% - 10€ == 85

Stepan
17.12.2016
18:06:57
Ну в общих чертах типа так https://github.com/kix/shop-example

Щас правила поимплеменчу ради примера

Хочется https://github.com/lstrojny/functional-php для общего развития поюзать, вроде применимо

Sergey
17.12.2016
18:08:42
abstract class DiscountRule почему абстракт класс вместо интерфейса выбрал?

Stepan
17.12.2016
18:11:36
Хм, так-то зря, да

Можно конечно потеоретизировать, что, мол, мы их будем куда-то в реестр собирать, а потом галочкой в интерфейсе инейблить-дизейблить

А, не, гоню

Ну, короче, мне видимо что-то подсказывает, что тут скорее всего внутри какой-нибудь проп при инициализации общий таки повиснет для всех

Но пока необходимости нет, да, надо интерфейс

Sergey
17.12.2016
18:14:12
а заделай examples где будет пример всего в сборе. а то по спекам всю картину не видно

Stepan
17.12.2016
18:16:24
Ага, я пока хочу хотя бы один рул заимплементить примера ради

Ну наверное дабы не копаться в functional-php, пока накостылить можно, а потом и по красоте попробовать

Знаю, кстати, что плохо и что не нравится. Корзина мутабельная, но это тоже можно поправить

Ну вроде того: https://github.com/kix/shop-example/blob/master/example/example.php

Sergey
17.12.2016
19:25:08
>на каждого издателя свой набор правил скидок а щас они общие)

Stepan
17.12.2016
19:27:38
Рулы в мап к издателю сунуть, ну по айдишнику как вариант. И матчить соответственно

А, ну и маржа скорее всего не DiscountRule, а что-то ещё. Хотя с издателем можно и притянуть

Страница 30 из 1418