Магазин - несколько цен

Евгений Леман

Тема довольно избита и, вроде как, ответ есть. Но ответ "этого сделать нельзя" меня не устраивает. Клиенту нравится Вебасист и он хочет использовать его. Собсна как и я. Но клиенту обязательно нужно иметь 2 цены для оптовиков и физиков. И тут скидка по группе не пройдет. Так как иногда цена для физиков может и не отличатся от оптовиков. Иногда на 2%, иногда на 30%. То есть процентными скидками по группе тут никак не решить вопрос.

Хочу услышать ответа сотрудников Вебасист. Ребята там умные и в подобных задачках иногда дают такое решение, до которого обычный разработчик мог и не додуматься. Есть какие-нибудь идеи?)

25 мая 2015
  • Zhmih 26 мая 2015 16:59

    заведите доп полями в shop_product_skus

    http://snap.ashampoo.com/RUU3EjuS

    потом заведите списки опт, распределяйте контакты на оптовые и розничные клиенты



  • Павел Гордовой 26 мая 2015 17:16

    Только возможность обновлений на этом заканчивается....

  • Евгений Леман 26 мая 2015 17:18

    Поделитесь плагином? В продаже такого не нашел. Уже меньше самому писать :) Напишите на advocot@ya.ru или в скайп: e-leman
    Если конечно это не изменение исходного кода. Просто хуков в этом месте нет, а цепляться по DOM немного напряжно для меня. Не люблю JS :)

    Тут еще вопрос в продаже по этой цене. А это, по идее, можно сделать только своим плагином скидок. Но тут была какая-то загвоздка, которую сейчас не могу вспомнить. Помню лишь о возможных конфликтах с другими плагинами скидок.

  • Евгений Леман 26 мая 2015 17:21

    Ах да. Одна из таких загвоздок, при реализации через скидки, это факт самой скидки. То есть у оптовика цена ниже сама по себе. Это не совсем скидка. Но помимо этого у них могут быть и скидки индивидуальные. И вот получается, что при офорлении поле "скидка" всегда будет путать. И да, тут на ум приходит только замут с еще 1 проверкой... но это +1 запрос(ajax в ответ на ajax) и немного гемора. Поэтому идеально бы найти вариант найти более удобную "подмену" стоимости.

  • Павел Гордовой 26 мая 2015 17:23

    Установить вторую цену без ковыряния ядра невозможно. Архитектура движка такова. Ты не сделаешь подмену цены ни каким образом. Я уже лез туда.

    Сделать плагином - только через скидки. Да, можно пользователю показывать как цену, но хранить нужно скидки и использовать функционал скидок.

    p.s. Вэбасистовцы, ау, поправьте меня пожалуйста. Так хочется верить, что я ошибаюсь :(

  • Евгений Леман 26 мая 2015 18:12

    Поковырял немного механизм скидок. И нашел одну прикольную, но очень досадную и обидную вещь.

    shopCart.class.php:
    http://gyazo.com/07aaa671ab9697fb6ef93e2df2fe4bcc

    Вот был бы тут амперсанд и можно было бы делать подмену цены :) Аааа, всего лишь 1 символ отделяет меня от простого пути :(

  • Syrnik.com 27 мая 2015 09:46

    для оформления заказов во фронтенде сделать можно. но экономически целесообразнее взять движок, изначально поддерживающий многоколоночные цены.

    Ну для розницы этот движок. для розницы. Стремление на дешевой платформе за 3 копейки реализовать сайт по оптовой торговле металлопрокатом я понимаю, но не разделяю. :)

  • Павел Гордовой 27 мая 2015 11:46

    допилить его под множество цен (с ковырянием ядра) дело нескольких часов.

    Не думаю, что это проблема для создателей, а еще один кусок рынка подомнут, но не думаю, что стоит ожидать такой радости раньше 7й версии.

    Давайте вспомним округление цен.... эх.....

  • Евгений Леман 27 мая 2015 12:22

    Платформу, стоимость которой уступает лишь Битриксу, трудно назвать дешевой.

  • Syrnik.com 27 мая 2015 16:42

    Можно без ковыряния ядра.

    Расширение к товару, хранящее несколько цен. Плюс свои классы корзины и чекаута. Переделать тему, чтобы обращалась к методам вашего плагина, вместо стандартных корзины и чекаута. Хелперы для карточки товара и категории для выбора нужной колонки. Закрыть в htaccess стандартные пути к корзине и чекауту (просто на всякий случай :) ) или редирект на ваши. Ну, в общем, уже треть магазина :))

    В принципе, возможно и добавление/редактирование товара в бэке своим подменить без вмешательства в код магазина, но тоже непросто будет.

    Это не пара часов, если не говнокодить.

  • Павел Гордовой 27 мая 2015 16:58

    Даже если говнокодить - это не пара часов

    другими словами - надо переписать добавление товара в корзину и саму корзину.

    Даже не представляю как потом это все в инсталлер возможно выкинуть (чтобы 300 раз не вернули на корректировку).

    Это понятно, что написать можно что угодно, но переписывать приличный кусок магазина - как-то не логично :( (хотя, порой, так и хочется)

  • Евгений Леман 27 мая 2015 17:16

    Ну свой контроллер корзины/оформления это вообще не дело. Чего уж там... можно ведь и свой магазин написать :) Проще научить админа после каждого апдейта добавлять апмерсанд в нужном месте, о котором я говорил выше. Но да, в инсталлер такое не пропихнуть, а было бы неплохо +1 плагин заиметь.

  • Syrnik.com 27 мая 2015 18:27

    Мы, в принципе, делали подмену корзины плагином. Это, конечно, под конкретного заказчика штука. А здесь еще чекаут надо будет сделать, чтобы скидка и стоимость доставки считалась от нужной суммы. (заодно и наценку на метод оплаты пришпандрить, наверняка попросят %% за безнал накидывать)

    BTW, Уже второй год думаю о том, что надо бы сделать открытый инсталлер с возможностью добавления источников приложений. :) Было бы круто.

  • MyWeb web 3 июля 2015 08:38

    на фрилансе вам нужную фичу баксов за 30 допилят, это не большой кусок работы, я сам кодю и знаю что говорю.

  • Евгений Леман 3 июля 2015 09:08

    Не сомневаюсь...

  • Разговор о "подмене цены продукта" напомнил мне о том, как я сам делал буквально это. Подмену цены продукта во фронтэнде, чтобы ничего не сломалось ни в корзине, ни при создании заказа, ни в темах дизайна. Да ещё и так, чтобы существующие темы дизайна (и по возможности плагины) ничего не заметили. Знаете, что это было? Округление цен, класс shopRounding. Это сработало и пошло в продакшн. Обратите внимание на shopRounding и где он используется. Может, что-нибудь из этого и получится.

    Сама безумная идея, собственно, состоит в том, чтобы вкорячить подмену цены в shopRounding::roundProducts(), ::roundSkus() и соседние методы.

    Можно ли это сделать без модификации кода приложения? На отдельной установке конкретного клиента можно. Надо добиться того, чтобы в автолоад попал ваш shopRounding, а не стандартный. Начните с внимательного всматривания в waAppConfig::getClasses() и поймёте, куда какой файлик нужно поместить.

    Излишне упоминать, что в магазин плагинов это вряд ли пройдёт. И вообще, не говорите Саше Музыченко, что это я вам предложил :)

    Что касается добавления такой штуки в стандартную коробочную версию. Помню, что обсуждалось много раз. Возникают трудно решабельные вопросы. Добавление множественных цен улучшает жизнь маленькой части клиентов, но усложняет жизнь большой части клиентов. Как сделать малой кровью, мы не придумали. Отложили в долгий ящик, где-то рядом с наценкой от способа оплаты и продажей дробного количества товара.

  • Syrnik.com 3 июля 2015 09:50

    можно, в принципе, сделать форк магазина, встроить эту штуку и отправить pull-request. Я один такую штуку буду делать долго. Может, кто ещё подпишется? Сделаем репу на github, обсудим там что надо изменить, разделим на этапы и возьмём каждый по заданию... М? Или все только за деньги :-)?



  • Евгений Леман 3 июля 2015 15:06

    Сергей, тут мало людей, которые умеют работать с гитхабом ;) Большинство кодеров работает в соло.

  • Евгений, "я таки вас умоляю" гитом то умеют работать многие, но сообщество рыхлое.... Одних "зеленых бейджиков" только что страшно... Я даже не предпологал сколько разработчиков тут... Учитывая, что реальных авторов плагинов я насчитал чуть более 10... ;)))

  • Евгений Леман 4 июля 2015 09:51

    Михаил, во всем мире многие. Среди разработчиков плагинов, а другим это нафиг не надо, единицы. Я ж не с головы инфу беру. Я держу контакты со многими авторами плагинов и спрашивал у них, когда хотел пулл-реквест кинуть по корзине. Из опрошенных с ним никто не работает :)

    Да и тупое, если честно, мнение. Если кодер, то должен юзать гит? Если кодер, то должен уметь настраивать сервер? И чинить микроволновку? Речь о кодерах в сфере веба.
    Такие вещи юзают либо при необходимости(например командная работа), либо задроты, которые делают это потому что гугл так сказал и топовые мира сего юзают. А еще эти задроты не согласны с тем, что кодером можно назвать человека, который знает только половину РНР. Хотя при этом сами за последние 10 лет не юзали ни одной из функций второй половины. А еще эти задроты хранят в голове кучу лишней информации и тратят время на споры о феншуйном коде. Вместо того, чтобы совершенствоваться в сфере маркетинга, которую невозможно просто сесть и выучить, а нужно постоянно за всем следить. Ведь конечный потребитель совершит покупку не на сайте с эталонным сорсом, а на том, над которым хорошо поработали маркетологи и дизайнер.


    Я достаточно понятно объяснил причину, по которой я и мне подобные люди не желают тратить время на гитхаб?) Вернее на то, чтобы научиться им пользоваться. Полезнее потратить это время на книжку Аллена Карра :)

  • km 4 июля 2015 10:39

    ууу)

    Просто вы не умеете гит готовить. Да даже и не гит, просто VSC.

    Минимум - бэкап кода.

    Нормально - добавили что-то в код вы месяц назад, а потом просто не помните, что именно. А если потом вскрывается неотловленный баг? Можно откатываться, править. Или делать отдельную ветку, когда новую фичу добавляете. И одному очень удобно.

    И да, кодер должен хотя бы понимать, что там на сервере происходит. Чтобы задумываться, как его код будет работать. Должен знать как браузер работает. И много всего должен знать.


  • km 4 июля 2015 10:39

    VCS конечно же

  • Евгений Леман 4 июля 2015 10:52

    Вы недооцениваете notepad++ и его возможности :) Он прекрасно бэкапит при верных настройках. И зачем мне, имея его, ставить что-то еще? Тем более нечто консольное :) Только не надо выдумывать внезапный "полет" сразу двух винтов и зажимать места терабайтных дисков под текстовые файлики.

    PS да, должен. Но пределу совершенства нет, а вот у необходимых для работы навыков некий предел таки есть. Гитхаб в них не входит. И, как я уже сказал, лучше я почитаю исследования на тему "Корзина в 1 шаг против AJAX-шагов", чем гайд по использованию гитхаба.

  • km 4 июля 2015 10:53

    ок

  • Syrnik.com 5 июля 2015 09:53

    Это я еще не слишком сильно двигаю идею о unit-тестах и приеме плагинов/приложений только со 100% coverage... :)

  • Павел Трофимов 5 июля 2015 10:01

    )) Рано или поздно WA все равно к этому придет, имхо :)

  • km 5 июля 2015 10:29

    а надо б двигать! и сильно!



Чтобы добавить комментарий, зарегистрируйтесь или войдите