
Андрей
29.09.2017
13:55:19

DeeM
29.09.2017
13:55:44

Dmitry
29.09.2017
13:57:21

Андрей
29.09.2017
13:57:25

Google

Андрей
29.09.2017
13:57:42
для 100 записей городить..

Dmitry
29.09.2017
13:58:06

DeeM
29.09.2017
13:58:23

Dmitry
29.09.2017
13:58:35

DeeM
29.09.2017
13:58:39
мне надо менять год у даты активности
и неактивности

Андрей
29.09.2017
14:00:29
100 записей - выбрал все активные - в php отфильтровал хоть по четности дня недели - вывел подходящее...
крон какой-то пихают..
может это я уже устал за неделю...

DeeM
29.09.2017
14:02:33
он мне не подходит
ты там по свойству фильтруешь же

Андрей
29.09.2017
14:09:14
где?

Google

Андрей
29.09.2017
14:09:14

DeeM
29.09.2017
14:11:02
UF_*

Андрей
29.09.2017
14:12:00
UF_*
я делал через секции... у тебя та же логика работы но с элементами..

Benjamin
29.09.2017
14:41:42
Всем привет. Не подскажете, можно где-то найти простой шаблон для списка результатов формы?
Нет желания сидеть и разбираться в стандартном

Anton
29.09.2017
14:47:39
такая ж фигня
решил взять пивка и на яваскрипте покодить

Андрей
29.09.2017
15:00:28

Serg
29.09.2017
15:29:26
Кто может помочь мне вечером или на выходных по скайпу?
Вообще не переваривается битрикс(((
Надо наладить каталог, и сделать сложное меню.
Есть наброски чего хочу, и развёрнутый битрикс. Наполнять и стилизовать буду сам. Надо механику наладить чтобы работало и объяснить мне.

Anton
29.09.2017
15:30:29
завтра мне в личку напиши, в районе 15 по москве

Serg
29.09.2017
15:30:43
хорошо

Anton
29.09.2017
15:33:32
Нужны будут доступы до разработки по ссш или фтп. И наверное тимвьювер накати себе, чтобы я с твоей машины тыкал и рассказывал что к чему

Serg
29.09.2017
15:37:42
ссш не обещаю

Vlad
29.09.2017
16:02:58
Добрый день, как проверить применен ли определенный тип копонов, 1 из 3 к оплаченному заказу?
Хотя как получить сам примененный купон, я разобрался
$couponList = \Bitrix\Sale\Internals\OrderCouponsTable::getList(array(
'select' => array('COUPON'),
'filter' => array('=ORDER_ID' => ID_заказа)
));
while ($coupon = $couponList->fetch())
{
echo $coupon['COUPON'];
}
Тут вопрос как группу определить

Nick
29.09.2017
16:05:05

Vlad
29.09.2017
18:14:19
теперь новый, как получить куппоны пользователя
AddEventHandler("sale", "OnSalePayOrder", "DeletePromo");
function DeletePromo($ID) {
$couponList = \Bitrix\Sale\Internals\OrderCouponsTable::getList(array(
'select' => array('COUPON','ID', 'DISCOUNT_NAME' => 'ORDER_DISCOUNT.NAME','DISCOUNT_ID' => 'ORDER_DISCOUNT.DISCOUNT_ID'),
'filter' => array('=ORDER_ID' =>$ID)
));
while ($coupon = $couponList->fetch())
{
if($coupon['DISCOUNT_ID']==29 || $coupon['DISCOUNT_ID']==30 || $coupon['DISCOUNT_ID']==31)
{
//
}
}
}

Google


Vlad
29.09.2017
18:16:15
узнать к какой группе примененный купон получилось...но нужно выдернуть еще все куппоны пользователя
OrderCouponsTable::getList //вообще порадовала что в оф и не оф документации этот метод вообще не заявлен
Уф, 3часовой пиз*** закончился, 7 событий работы с купонами, дырка в документации по методам новых событие, изучение таблиц битрикса напрямую сделали свое дело, просто надеюсь что через 2 минуты у меня заработает удаление купонов
$couponList = \Bitrix\Sale\Internals\OrderCouponsTable::getList(array(
'select' => array('COUPON','ID', 'DISCOUNT_NAME' => 'ORDER_DISCOUNT.NAME','DISCOUNT_ID' => 'ORDER_DISCOUNT.DISCOUNT_ID'),
'filter' => array('=ORDER_ID' =>124)
));
while ($coupon = $couponList->fetch())
{
// echo $coupon['COUPON'];
if($coupon['DISCOUNT_ID']==29 || $coupon['DISCOUNT_ID']==30 || $coupon['DISCOUNT_ID']==31)
{
$arCoupons =\Bitrix\Sale\Internals\DiscountCouponTable::getList(array(
'select' => array('ID', 'COUPON'),
'filter' => array('=USER_ID' => 277)
));
while ($couponUser = $arCoupons->fetch()) {
var_dump($couponUser);
}
}
}
OrderCouponsTable::getList && DiscountCouponTable::getList, это такая мания даже не пытаться getList описывать в доке...


Anton
29.09.2017
20:19:02

Mike
29.09.2017
20:27:00

Anton
29.09.2017
20:29:09
ну в большинстве случаев надо слазить
можно было бы попробовать битрикс вывалить в опен сорс. посонов хотя бы на документацию подключить


Vlad
30.09.2017
08:20:04
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler(
'sale',
'OnSaleOrderSaved',
'DeletePromoHandler'
);
function DeletePromoHandler(\Bitrix\Main\Event $event)
{
$isNew = $event->getParameter("IS_NEW");
if (!$isNew)
return true;
$order = $event->getParameter("ENTITY");
$order_id = $order->getId();
if (CModule::IncludeModule("iblock") && CModule::IncludeModule("sale")) {
$arOrder = CSaleOrder::GetByID($order_id);
$couponList = \Bitrix\Sale\Internals\OrderCouponsTable::getList(array(
'select' => array('COUPON', 'ID', 'DISCOUNT_NAME' => 'ORDER_DISCOUNT.NAME', 'DISCOUNT_ID' => 'ORDER_DISCOUNT.DISCOUNT_ID'),
'filter' => array('=ORDER_ID' => $order_id)
));
while ($coupon = $couponList->fetch()) {
if ($coupon['DISCOUNT_ID'] == 29 || $coupon['DISCOUNT_ID'] == 30 || $coupon['DISCOUNT_ID'] == 31) {
$arCoupons = \Bitrix\Sale\Internals\DiscountCouponTable::getList(array(
'select' => array('ID', 'COUPON'),
'filter' => array('=USER_ID' => $arOrder["USER_ID"])
));
while ($couponUser = $arCoupons->fetch()) {
global $DB;
$res = $DB->Query(
"UPDATE b_sale_discount_coupon SET
ACTIVE = 'N'
WHERE ID=" . $couponUser["ID"]) . "AND DISCOUNT_ID IN (29,30,31)";
}
}
}
}
}
Да, ещу пришлось напрямую менять action у купонов, событие update и delete нивкакую не стартовали


Konstantin
30.09.2017
08:25:01
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler(
'sale',
'OnSaleOrderSaved',
'DeletePromoHandler'
);
function DeletePromoHandler(\Bitrix\Main\Event $event)
{
$isNew = $event->getParameter("IS_NEW");
if (!$isNew)
return true;
$order = $event->getParameter("ENTITY");
$order_id = $order->getId();
if (CModule::IncludeModule("iblock") && CModule::IncludeModule("sale")) {
$arOrder = CSaleOrder::GetByID($order_id);
$couponList = \Bitrix\Sale\Internals\OrderCouponsTable::getList(array(
'select' => array('COUPON', 'ID', 'DISCOUNT_NAME' => 'ORDER_DISCOUNT.NAME', 'DISCOUNT_ID' => 'ORDER_DISCOUNT.DISCOUNT_ID'),
'filter' => array('=ORDER_ID' => $order_id)
));
while ($coupon = $couponList->fetch()) {
if ($coupon['DISCOUNT_ID'] == 29 || $coupon['DISCOUNT_ID'] == 30 || $coupon['DISCOUNT_ID'] == 31) {
$arCoupons = \Bitrix\Sale\Internals\DiscountCouponTable::getList(array(
'select' => array('ID', 'COUPON'),
'filter' => array('=USER_ID' => $arOrder["USER_ID"])
));
while ($couponUser = $arCoupons->fetch()) {
global $DB;
$res = $DB->Query(
"UPDATE b_sale_discount_coupon SET
ACTIVE = 'N'
WHERE ID=" . $couponUser["ID"]) . "AND DISCOUNT_ID IN (29,30,31)";
}
}
}
}
}
У вас событие работает?


Vlad
30.09.2017
08:26:18
У вас событие работает?
OnSaleOrderSaved ? Нет, пока нет, разбираюсь в чем косяк, а вот сам код DeletePromoHandler если переместить в отдельный файл и открыть, указав id вручную, да

Konstantin
30.09.2017
08:26:40
А какой компонент юзаете для корзины?

Vlad
30.09.2017
08:27:17
Да

Konstantin
30.09.2017
08:27:24
У вас событие тогда не то висит

Vlad
30.09.2017
08:28:24

Admin
ERROR: S client not available

Google

Vlad
30.09.2017
08:28:26
?

Konstantin
30.09.2017
08:29:00
Щас нагуглю, скину.
?
OnSaleComponentOrderOneStepComplete
Вот тут смотрите если что
https://dev.1c-bitrix.ru/api_help/sale/events/events_components.php

Vlad
30.09.2017
08:31:36
OnSaleOrderSaved это поколение D7
Кстати, можно сказать почти заработало...Object of class CDBResult could not be converted to string (0)
/home/c/cg11478/public_html/bitrix/php_interface/init.php:121
while ($couponUser = $arCoupons->fetch()) {
global $DB;
$res = $DB->Query(
"UPDATE b_sale_discount_coupon SET
ACTIVE = 'N'
WHERE ID=" . $couponUser["ID"]) . "AND DISCOUNT_ID IN (29,30,31)";
}
Какой конфлик DB может быть в init php?

Konstantin
30.09.2017
08:33:37
А можно скрин кода со строчками, так не понятно

Vlad
30.09.2017
08:33:37
Вплане в тестовом файле все отлично...а откуда init о db знает...
И пощел гуглить, нужно ли db явно в инит обьявлять как либо
Потому что я пока разбирался с OrderCouponsTable::getList && DiscountCouponTable::getList уже чуть не повесился, но когда у меня не сработал апдейт купонов, это уже было слишком, потом можно будет добить, но мне нужно сейчас закончить с этим, чтобы перейти к след задаче

Konstantin
30.09.2017
08:44:03
Работать по выходным, жесть конечно

Виктор
30.09.2017
09:01:45

Vlad
30.09.2017
09:02:22
Работать по выходным, жесть конечно
Не рботало потому что я долбан)
$res = $DB->Query(
"UPDATE b_sale_discount_coupon SET
ACTIVE = 'N'
WHERE ID='".$couponUser["ID"]."' AND DISCOUNT_ID IN (29,30,31)");
Было $res = $DB->Query(
"UPDATE b_sale_discount_coupon SET
ACTIVE = 'N'
WHERE ID=" . $couponUser["ID"]) . "AND DISCOUNT_ID IN (29,30,31)";
) не туда впухнул+ не взял $couponUser["ID"] в ''

Konstantin
30.09.2017
09:03:18
Ааа)

Google

Vlad
30.09.2017
09:03:20
$couponUser["ID"] !)! .

Виктор
30.09.2017
09:07:46
Ну в принципе по названию понятно зачем эта таблица

Vlad
30.09.2017
09:08:03
'DISCOUNT_ID' присутсвует в той таблице на равне с COUPON и ID

Виктор
30.09.2017
09:08:13
ИД скидки

Vlad
30.09.2017
09:08:16
Так почему она выдерается 'DISCOUNT_ID' => 'ORDER_DISCOUNT.DISCOUNT_ID'

Виктор
30.09.2017
09:08:16
ЧТо непонятно то?

Vlad
30.09.2017
09:08:29

Виктор
30.09.2017
09:08:45
что значит выдерается?