Модификация цены Minishop2 по своему сценарию

Добрый день!
Возможно ли выполнить модификацию цены Minishop2 (может быть в плане доработки msOptionsPrice2) по следующему сценарию:

1. Есть цена за кубометр строительных блоков — скажем 8000 руб/м3.
2. Каждому товару-блоку присвоена опция «количество штук в кубе» — к примеру блоков размера «600x200x300 мм» в кубе содержится 27,7 шт.
3. Если разделить цену за куб на количество штук в кубе — получим цену блока за штуку. Т.е. в нашем случае это будет 8000: 27.7 = 288,8.

И вопрос в том, как выполнить такую модификацию? Чтобы «цена за куб» делилась на (указанное в опции) «количество штук в кубе» и чтобы в итоге получилась«цена за штуку»?
Futuris
27 июня 2022, 11:50
modx.pro
881
0

Комментарии: 13

vectorserver
27 июня 2022, 12:20
0
Продавай по штучно товар 288,8 шт, а визуально показывай получившейся объем!

Я клиенту делал так (скрин), по сути товар это одна единица (1 доска)
Человек к примеру вбирает к примеру 8 м3 длинна X, ширина Y, в корзину упало 2,315 досок.

    Futuris
    27 июня 2022, 14:39
    0
    Вопрос в удобстве изменений цен. На 300 позиций газобетона — дается одна цена за куб. Но у каждого конкретного блока есть свой размер, и соответственно — своя цена поштучно. Если каждый раз при изменении цен на куб газобетона я буду вручную пересчитывать штучную цену каждого размера — это можно с ума сойти.
      vectorserver
      27 июня 2022, 16:14
      0
      Зачем вручную!? Скрипт сам пересчитает все!
        Futuris
        27 июня 2022, 16:49
        0
        Вы хотите предложить такое решение?
          vectorserver
          28 июня 2022, 05:50
          0
          Выше на скрине решение, простой калькулятор
    Артур Шевченко
    27 июня 2022, 21:58
    0
    Если я правильно понял, товар продается поштучно, но цена указывается за объем? Если так, то думаю, нужно создать прайс отдельным ресурсом, и написать плагин на его сохранение, который будет пересчитывать цены по обозначенной формуле.
      Futuris
      28 июня 2022, 10:05
      0
      Не совсем так. Газобетон на сайте продается кубами. Но чтобы охватить запросы на розницу — решили экспериментально создать категорию с ценами за штуку. Но если за куб — одна цена, фактически на один-завод производитель у которого сотни блоков разных размеров. Т.е. блоки завода «Бонолит», к примеру — все по 7500 за куб. И цену менять быстро и удобно. А вот за штуку — нужно высчитывать в зависимости от размера и это время занимает.

      Поэтому чисто логически задача выглядит так:
      Клонируется обычная категория с ценой за куб. Далее на эту категорию вводится скрипт, модифицирующий цену (если это возможно конечно). Т.е. скрипт просто берет уже существующую цену за куб и делит ее на цифровое значение опции «количество блоков в кубе» (опция присвоена каждому размеру блоку) — и выводит в итоге цену за штуку. Цена за куб при этом в данной категории также есть, но ее можно даже не выводить в стилях страницы.

      И в итоге при следующем изменении цен (а они меняются несколько раз в месяц) — я просто выгружаю обе категории блоков (с ценой за куб и с ценой за штуку) и меняю цену например с 7500 на 7000. И блоки «кубовой» категории так и висят с ценой 7000, а блоки «штучной» категории пересчитываются по формуле: «цена куба / количество блоков в кубе = цена за штуку».
      Артур Шевченко
      28 июня 2022, 11:50
      0
      Копировать категорию с товарами на мой взгляд не лучшая идея, особенно если на сайте они друг от друга никак отделяться не будут. Можно в карточке товара добавить опции с вариантами выбора Опт и Розница, если выбрана розница, то в плагине на добавление в корзину пересчитывать цену.
        Futuris
        28 июня 2022, 12:08
        0
        Насчет копирования категорий — это отход от темы и не в этом суть. Важен технический момент, который заключается для меня в том, чтобы проставленная мной цена за куб, в конкретной категории модифицировалась по вышеописанной формуле: «цена куба / количество блоков в кубе = цена за штуку».

        Т.е. газоблоков размером 600х200х300 мм в кубе 27,77 шт и стоят они за штуку (при цене 7000 за куб) — 252 руб.
        Блоков 600х250х50 мм в кубе 133,33 шт и они за штуку стоят — 52,5 руб. (т.е. 7000 делим на 133,3)
        Блоков 600х250х500 мм в кубе 13,33 и они стоят 525 руб. за штуку.
        И размеров блоков — десятки. Но все их объединяет одна цена за куб — в описанном примере — 7000 руб.

        Т.е. вы считаете, что есть возможность модифицировать эту цену для всех размеров блоков в определенной категории (не во всем каталоге магазина) по описанной выше простой формуле? И чтобы в дальнейшем я менял в этой категории только одну цену за куб, а для всех размеров эта цена будет пересчитываться «поштучно»?
          Артур Шевченко
          28 июня 2022, 12:14
          0
          Конечно возможно, а конкретный вариант реализации зависит от того, какова структура сайта. Я так понимаю, самостоятельно вы ничего делать не планируете, а если так, то вам нужно написать в раздел Работа и обсуждать нюансы с теми, кто откликнется.
            Futuris
            28 июня 2022, 12:25
            0
            Да, я сам с кодом не близко знаком). Спасибо за комментарий. Если вы готовы за такое браться — могу вам написать в Телеграм, как потребуется.
              Артур Шевченко
              28 июня 2022, 12:31
              0
              На выходных могу сделать. Контакт есть в профиле.
                Futuris
                28 июня 2022, 12:51
                0
                Ок, постучусь
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        13