Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Списание бонусов #40

Closed
Tracked by #38
evgrezanov opened this issue Oct 8, 2023 · 5 comments
Closed
Tracked by #38

Списание бонусов #40

evgrezanov opened this issue Oct 8, 2023 · 5 comments
Assignees
Labels
bug Something isn't working
Milestone

Comments

@evgrezanov
Copy link
Owner

evgrezanov commented Oct 8, 2023

todo

  1. Сделать несколько акций с различными схемами начисления-списания бонусов (начисление, списание, процент)
  2. Переписать функцию вывода информации о бонусах на странице корзины и чекаута и карточке товара:
    2.1 Ваш бонусный баланс NN.NN бонусов
    2.2 За покупку будет списано NN.NN бонусов / На данную покупку бонусы не применяются
    2.3 После покупки будет начислено NN.NN бонусов
  3. Списание бонусов после того как заказ Выполнен, когда заказ в статусе ожидает оплата - бонусы нужно резервировать https://bonusplus.pro/api/Help/Api/PATCH-customer-phoneNumber-balance-reserve
  4. Списываем все доступные для списания бонусы
telegram-cloud-document-2-5260633058339464387.mp4

User story

Пример интеграции 1с Битрикс и БонусПлюс
https://hookah-time.shop/
https://bonaladies.ru/

Как я для себя это вижу клиент заходит в карточку видит что при покупке данного товара ему начислится такой-то бонус.
Далее клиент помещают товар в корзину в корзине чуть ниже поля купоны написана сумма для списания
Клиент нажимает кнопку списать ему приходит смс с кодом и подтверждает путём вода
<Наверное это надо через купоны саму скидку реализовать>
Но допустим на некоторые товары мы можем применить ограничения для списания, допустим не 25 % а 15% но не более чем баланс бонусов
В этом случае мы должны отправит в б+ список товаров и узнать размер скидки и выпустить купон на сумму скидки

Сценариев множество
Во-первых мы передаем товары в бонус плюс с сайта соответственно бонус плюс знает id наших товаров
Нам надо только сообщить что в корзине и б+ скажет какая сумма скидки
Тоесть настройки скидки на категории это в Нутри Б+ и нашу задачу не задевает

Нам надо научится делать купон из полученного результата
Тесть мы говорим id товаров
Бонус плюс передаёт сумму скидки допустим 100 р
Мы должны вставить эту сумму в купоны например

Вопрос только как создать купон и вставить его в поле купоны чтобы клиент не додумывал а видел только результат

там 2 сценария если клиент не авторизован то после оформления заказа отображается информация о начислениях

2й СЦЕНАРИ ОТОБРОЖАЕТ СКОЛЬКО БУДЕТ СПИСАНО ЕСЛИ ДОСТУПНО! "ТОЕСТЬ НЕТ КНОПКИ СПИСАТЬ" И СКОЛЬКО БУДЕТ НАЧИСЛЕНО ПОСЛЕ ПОКУПКИ

@evgrezanov evgrezanov created this issue from a note in БонусПлюсWP (To do) Oct 8, 2023
@evgrezanov evgrezanov self-assigned this Oct 8, 2023
@evgrezanov evgrezanov added the good first issue Good for newcomers label Oct 8, 2023
@evgrezanov evgrezanov moved this from To do to In progress in БонусПлюсWP Oct 19, 2023
@Mikuznetsov
Copy link
Collaborator

  1. Сделать несколько акций с различными схемами начисления-списания бонусов (начисление, списание, процент)
    0,5ч
  2. Переписать функцию вывода информации о бонусах на странице корзины и чекаута и карточке товара:
    2.1 Ваш бонусный баланс NN.NN бонусов

    2.2 За покупку будет списано NN.NN бонусов / На данную покупку бонусы не применяются

    2.3 После покупки будет начислено NN.NN бонусов
  3. Списание бонусов после того как заказ Выполнен, когда заказ в статусе ожидает оплата - бонусы нужно резервировать https://bonusplus.pro/api/Help/Api/PATCH-customer-phoneNumber-balance-reserve
  4. Списываем все доступные для списания бонусы

@Mikuznetsov
Copy link
Collaborator

Mikuznetsov commented Nov 20, 2023

  • Добавить итог с учетом бонусов на странице checkout

2023-11-20_13-05-56

@evgrezanov
Copy link
Owner Author

@Mikuznetsov в корзину можно так примерно

// Создаем функцию для вывода дополнительных строк
function additional_cart_item_data( $cart_item, $cart_item_key ) {
    // Ваш код для получения данных или логики для отображения дополнительной информации
    $additional_data = 'Дополнительная информация'; // Замените эту строку своим кодом

    echo '<tr>';
    echo '<td colspan="2">' . $additional_data . '</td>';
    echo '</tr>';
}

// Добавляем хук для вывода дополнительных строк в таблице товаров корзины
add_action( 'woocommerce_after_cart_item_name', 'additional_cart_item_data', 10, 2 );

@Mikuznetsov
Copy link
Collaborator

Mikuznetsov commented Nov 20, 2023

Нашел такое решение, добавляем fee в объект WC()->cart - это пока заказа нет. Происходит пересчет
Хотел написать красиво, чтобы подставлять переменную, но со статическими функциями не получается.

  1. Получить переменную из запроса, записать ее в переменную, которую видно во всем классе
  2. Подставить типа $this->max_debit_bonuses

add_action('woocommerce_cart_calculate_fees', [CLASS, 'add_custom_fee_on_checkout']);
public static function add_custom_fee_on_checkout()
{
$fee_name = 'Списание бонусов';
$fee_amount = -210.00; // Тут поставить переменную, которую получаем из запроса
$taxable = true;
$tax_class = 'bpwp-bonuses-reserved';

    WC()->cart->add_fee($fee_name, $fee_amount, $taxable, $tax_class);
} 

это надо переписать класс типа такого?

``
private static $instance = false;

public static function getInstance()
{
    if (!self::$instance) {
        self::$instance = new self();
    }
    return self::$instance;
}

public function __construct()
{
}

@evgrezanov evgrezanov moved this from In progress to QA in БонусПлюсWP Nov 25, 2023
@evgrezanov evgrezanov moved this from QA to Done in БонусПлюсWP Dec 18, 2023
@evgrezanov evgrezanov moved this from Done to QA in БонусПлюсWP Dec 21, 2023
@evgrezanov evgrezanov added bug Something isn't working and removed good first issue Good for newcomers labels Dec 21, 2023
@evgrezanov evgrezanov added this to the 2.6 milestone Dec 21, 2023
@evgrezanov
Copy link
Owner Author

evgrezanov commented Dec 21, 2023

image
@Mikuznetsov тут пишет пользователь что 2 раза списываются бонусы в заказе - надо пофиксить
и у нас на сайте также
image

https://bonuspluswp.site/wp-admin/post.php?post=278&action=edit

@evgrezanov evgrezanov moved this from QA to In progress in БонусПлюсWP Dec 21, 2023
@evgrezanov evgrezanov pinned this issue Dec 23, 2023
@evgrezanov evgrezanov removed their assignment Dec 23, 2023
@evgrezanov evgrezanov modified the milestones: 2.6, 2.8 Dec 23, 2023
@evgrezanov evgrezanov moved this from In progress to To do in БонусПлюсWP Jan 19, 2024
@evgrezanov evgrezanov moved this from To do to In progress in БонусПлюсWP Feb 1, 2024
@evgrezanov evgrezanov moved this from In progress to QA in БонусПлюсWP Feb 7, 2024
@evgrezanov evgrezanov mentioned this issue Feb 8, 2024
@evgrezanov evgrezanov moved this from QA to Done in БонусПлюсWP Feb 8, 2024
@evgrezanov evgrezanov unpinned this issue Mar 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Development

No branches or pull requests

2 participants