Разработать модуль "скидок по подписке" для Drupal 7 + Ubercart

Аватар пользователя droopy droopy 1 ноября 2020 в 21:10

Всем добра!
Уважаемые drupal-разработчики, нужно разработать модуль "скидок по подписке" для Drupal 7 + Ubercart.

Подробное ТЗ:

Платформа: Drupal 7
Зависимые модули: Ubercart, Ubercart Discount Coupons (uc_coupon), Flex Product (кастомный модуль позволяющий покупать товары с подпиской).

Название модуля:
prime subscription

Назначение модуля:
Позволяет пользователям приобретать товары по льготным ценам при условии активной подписки (prime).

Термины и определения:
Prime-подписка – активный (действующий) товар у пользователя позволяющий покупать товары по льготным ценам (со скидками).
Prime-скидка – уникальная скидка на товар при условии активной prime-подписки у пользователя.
Промо-код (uc_coupone) – стандартный промо-код (купон) из модуля uc_coupon.

Описание:
При покупке подписки (представлен как обычный продукт ubercart с артикулом prime_subscription) начинает действовать условие по которому для пользователя устанавливаются льготные цены (скидки) на товары.

Размер prime-скидки (при активной подписке) устанавливается на каждый товар в отдельном кастомном fieldset с настройками (при редактировании ноды):

Prime-скидку можно указывать в % (например: 10%) или фиксированной суммой (1000).
Также должна быть возможность полностью исключать возможность получать дополнительные скидки на товар при использовании стандартного промо-кода (uc_coupon).

Проверки и условия:

  1. Если у пользователя просматривающего товар есть товар с артикулом (sku) prime_subscription, то проверять его активность (статус товара из модуля flex_product).
  2. Если у заказываемого товара есть значение в поле “Размер prime-скидки” (в fieldset “Prime-условия”), то учитывать скидку для стоимости товара (при просмотре и при заказе).
  3. Если prime-подписка активна и у товара указана prime-скидка, то:
    1). отображать стоимость товара с учетом скидки
    2). учитывать prime-скидку при заказе товара
    Если у пользователя была prime-подписка и товар имел prime-скидку, то после покупки в лог заказа (uc_order) необходимо добавить следующую информацию:

    Product sold with prime-discount *N%* based on active prime-subscription *product_id*. Regular price: *uc_price*. Prime-discount *prime_discount (in currency)*. Total product price: *total* + *currency*.

    Перевод: Товар был продан со скидкой 10% на основе активной prime-подписки 19974. Обычная цена 1000 руб. Сумма prime-скидки 100 руб. Итоговая стоимость покупки: 900 руб.

Переменные:
Для отображения цен у товаров при условии активной prime-подписки требуется:

  1. Добавление переменной размера prime-скидки используемой в node--product.tpl.php и для views для отображения ее значения. Пример: 10% или 100.
    Значение выводится БЕЗ каких-либо доп. условий (не требуется активной prime-подписки у пользователя).
  2. Добавление переменной цены товара с учетом prime-скидки используемой в node--product.tpl.php и для views. Пример: 900.
    Значение выводится БЕЗ каких-либо доп. условий (не требуется активной prime-подписки у пользователя).

Программная механика Drupal:
При условии, что по-умолчанию на сайте используется модуль uc_coupon, то применение prime-скидок целесообразнее сделать через программную генерацию промо-кода вышеуказанным модулем.

При покупке товара c prime-скидкой и с условием активной prime-подписки у пользователя - системой генерируется уникальный купон (uc_coupon) на сумму скидки указанной в товаре.

Купон может принадлежать только пользователю, который совершает заказ.

Пример имени купона: p-dsc-u%uid%-%coupon_id% (p-dsc-u123-885774).

Предварительно оцениваем стоимость разработки в 250$ и 5-7 дней. Ваши предложения прошу направлять в личку.

Спасибо и хорошего дня)

Комментарии

Аватар пользователя droopy droopy 3 ноября 2020 в 10:59

Поиск разработчика актуален, пока в теме не будет указанно обратное. Жду предложений, спасибо Smile

Аватар пользователя ivnish ivnish 3 ноября 2020 в 11:55
1

Пожалуйста, не редактируйте заголовки. Когда пост станет неактуальным, напишите комментарий и отметьте его как решение