208 похожих чатов

Ребята, как сделать автоматическое добавление подарка про промокоду? Я уже третьи

сутки бьюсь.

6 ответов

52 просмотра

Правила корзины. Действие "предоставить подарок", переходишь во вкладку купоны. Заполняешь число купонов. Если нужно ставишь период. Тип купонов один раз если нужно и максимальное число использования один. И сохраняешь.

Андрей- Автор вопроса
アレキサンダー
Правила корзины. Действие "предоставить подарок", ...

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

Андрей
Когда вводишь промокод, не должно быть выбора пода...

То есть ты хочешь чтоб он сразу подставлялся в товары?

Андрей- Автор вопроса
Андрей- Автор вопроса

Ответ: Берем за основу код из этой ссылки https://dev.1c-bitrix.ru/support/forum/forum6/topic120421/ Но работать этот код не будет. Нужно вносить коррективы. 1. Убедись, что юзаются эти классы: use Bitrix\Main, Bitrix\Sale, Bitrix\Sale\Compatible\DiscountCompatibility, Bitrix\Main\EventManager, Bitrix\Sale\Discount\Gift; 2. Событие OnSaleBasketItemEntitySaved меняем на событие onManagerCouponAdd , которое срабатывает при добавлении купона. Название модуля оставляем "sale". Название функции тоже можно оставить. 3. Убираем строку $basketItemEntity = $event->getParameter("ENTITY"); она не нужна тут. 4. Если переменная $giftCollections на дебаге будет нулевой, то в метод $giftManager->getCollectionsByBasket($basket) нужно добавить второе условие: объект правила работы с корзиной. Первое условие $basket у нас уже есть. Через запятую добавляем метод \CSaleDiscount::GetByID(АЙДИШНИК ПРАВИЛА). Я думаю, можно поиграться с методами класса CSaleDiscount под твои нужны, данный класс как раз работает с правилами работы с корзиной. 5. В конце кода, где задаются поля для айтема подарка, увидишь элемент "LID" => $LID. Переменную $LID автор кода забыл определить - это код сайта (например: "s1"). Поскольку сайтов может быть много, я бы определил ее так: $LID = Main\Context::getCurrent()->getSite(); Как я пришел к такому решению, лучше тебе не знать😄 Но надеюсь, пригодится

Андрей
Ответ: Берем за основу код из этой ссылки https:/...

Запишите это решение к тому что работать не будет.

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
70
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
25
Книга Юрова В.И пойдёт для обучения?
Botsman
24
Люди добрые, помогите с идеями, потому что свои закончились. У клиента падает софтина в момент инициализации модуля OtlEventMonitor на RegisterWindowMessage('Gp/OtlTaskEvents/...
Михаил Усков
7
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
2
GridView fully ignored first parent(SizedBox), and take width from second parent(Container). How can I constrain GridView by first parent? Widget build(BuildContext context) {...
Hamster
1
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Hey there Which is the best Linux destro for developers (coding)? To my research on reddit, they said Linux mint is good for mid level spec and Ubuntu for high Lev hardwar...
Wiz 🪄
11
Карта сайта