• Битрикс - почему не применяется купон к заказу?

    Значит он применен. А то что цена не меняется может быть следствием что не проходит по условию скидка. Сделайте скидку с предельно простым условием - 10% скажем на все для веех и проверьте.

    Я сейчас посмотрел на одно работающем проекте контроллер применяющий купон выглядит так:
    /*
         * проверяет есть ли товар с $productid в корзине и возвращает его количество
        */
        public function applyCouponAction(string $coupon): array
        {
    
            $lstCoupons = Sale\DiscountCouponsManager::get(false, [], true, false);
            $arDebug = ['$lstCoupons' => $lstCoupons];
            // получим купоны и проверим нет ли этого купона среди примененных
            foreach ($lstCoupons as $ecoupon) {
                if ($ecoupon == $coupon) {
                    $coupon = false;
                    break;
                }
            }
            
            if ($coupon) {
                $couponChanged = Sale\DiscountCouponsManager::add($coupon);
                if (!$couponChanged) Sale\DiscountCouponsManager::delete($coupon);
                $arDebug['$couponChanged'] = $couponChanged;
                
            }
            
            
            $arResponce = $this->getAction();
            if (APPLICATION_ENV == 'dev') $arResponce['debug'] = $arDebug;
            return $arResponce;
        }
        #

    Вот прям работающий код.
  • Битрикс - почему не применяется купон к заказу?

    Так купон не применяется или стоимость остается прежней?
    Если получить список купонов после применения:
    $lstCoupons = Sale\DiscountCouponsManager::get(false, [], true, false);

    Купон есть в списке?
  • Как НЕ фиксировать транзакцию после отработки php скрипта?

    садится - это какое-то новой словечко, распространенное среди СЕОшников и джунов, обозначающее записывается, сохраняется. В данном случае видимо сохраняется в консистентном состоянии.

    Почти уверен что вы правы и это из цикла "незавершенная регистрация". Сам хотел ответить что-то похожее что вы написали.
  • Знаете расширение для сохранения открытый редакторов/сессий в рабочей области?

    Suntechnic
    @Suntechnic Автор вопроса
    Очевидное решение, но имеет один недостаток - для одного проекта расплодится куча рабочих областей не синхронизированных между собой. В частности избранное у них будет у каждого свое.
    В том-то и смысл, чтобы иметь разные наборы открытых вкладок внутри одной рабочей области.
  • Как задать клик мышки горячей клавишей?

    а... речь про текстовой курсор? Типа того что Ctrl+D делает?
  • Как задать клик мышки горячей клавишей?

    Оу... зачем нужно несколько курсоров? Как это вообще должно работать и для чего?
  • Как получить свойства заказа Юридического лица?

    Не по умолчанию, а того заказа из которого вы это получаете.
  • Как сделать сервер маршрутизации?

    Suntechnic
    @Suntechnic Автор вопроса
    res2001, я не очень понимаю зачем мне маршрут на ноуте. Я знаю как настроить его и у меня даже GUI для этого есть. Но сейчас когда я подключаюсь к VPN северу весь же трафик идет через него и все отлично работает.

    Мне бы теперь просто заставить VPN сервер на VPS ходить в сеть через forti.

    Кстати вот конфиг OpenVPN:
    local xx.xx.xx.181
    port 1194
    proto udp
    dev tun
    ca ca.crt
    cert server.crt
    key server.key
    dh dh.pem
    auth SHA512
    tls-crypt tc.key
    topology subnet
    server 10.8.0.0 255.255.255.0
    server-ipv6 fddd:1194:1194:1194::/64
    push "redirect-gateway def1 ipv6 bypass-dhcp"
    ifconfig-pool-persist ipp.txt
    push "dhcp-option DNS 8.8.8.8"
    push "dhcp-option DNS 8.8.4.4"
    push "block-outside-dns"
    keepalive 10 120
    cipher AES-256-CBC
    user nobody
    group nogroup
    persist-key
    persist-tun
    verb 3
    crl-verify crl.pem
    explicit-exit-notify
    log /dev/null
    status /dev/null
  • Как сделать сервер маршрутизации?

    Suntechnic
    @Suntechnic Автор вопроса
    res2001,
    Openvpn сам NAT не поднимает. Возможно вы когда его настраивали добавили соответствующее правило.

    Да, я знаю. Есть скрипты разные - это один из них был.

    Что именно нет? Как вы тестируете?

    Пингом к gitlab с ноутбука. Но вообще с этими правилами интернет на ноуте переставла работать совсем.
  • Как сделать сервер маршрутизации?

    Suntechnic
    @Suntechnic Автор вопроса
    res2001, я не знаю что такое "поднять NAT на интрефейсе" (((
    Я знаю как его включить и он включен.

    Потом, как я думаю, нужно настроить редирект пактов и вот тут засада (((

    Но может что-то еще нужно сделать чтобы NAT заработал именно для vpn0073533d6d

    В любом случае спасибо за помощь.
  • Как сделать сервер маршрутизации?

    Suntechnic
    @Suntechnic Автор вопроса
    Alexey Dmitriev, openVpn добавляет такое:

    -A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to-source xx.xx.xx.181

    Я сбросил таблицу nat и создал новое:
    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source yy.yy.yy.17

    Я попробовал создать аналогичное тому что было:
    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to-source yy.yy.yy.17

    тоже нет (((
  • Как сделать сервер маршрутизации?

    Suntechnic
    @Suntechnic Автор вопроса
    res2001, но похоже это не правильно. Я вижу что OpenVPN создает правило:
    -A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to-source xx.xx.xx.181

    Я сбросил таблицу nat и создал новое:
    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source yy.yy.yy.17

    Я попробовал создать аналогичное тому что было:
    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to-source yy.yy.yy.17

    тоже нет (((
  • Как сделать сервер маршрутизации?

    Suntechnic
    @Suntechnic Автор вопроса
    res2001, я пробую сделать так:
    iptables -t nat -A POSTROUTING -s xx.xx.xx.181/24 -j SNAT --to-source yy.yy.yy.17

    Где xx.xx.xx.181 - внешний адрес сервера VPS. Тот к которому я подключаюсь.
    а yy.yy.yy.17 - внешний адрес на интерфейсе vpn0073533d6d который создает forti
  • Как сделать сервер маршрутизации?

    Suntechnic
    @Suntechnic Автор вопроса
    Alexey Dmitriev, судя по всему никакие:
    # iptables -L
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     udp  --  anywhere             anywhere             udp dpt:openvpn
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
    ACCEPT     all  --  10.8.0.0/24          anywhere            
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination

    По крайней мере в iptables.
  • Как сделать сервер маршрутизации?

    Suntechnic
    @Suntechnic Автор вопроса
    Alexey Dmitriev, вроде бы я сделал и описал что сделал. Если не понятно я могу попробовать перефразировать:
    сть удаленный сервер назовем его просто gitlab, к которому возможен доступ "только по VPN". Судя по всему - там просто фильтрация по IP.

    Есть мой компьютер назовем его просто ноутбук, ip которого забанен на сервере VPN заказчика.

    Я поднимаю VPS в нейтральной стране и хочу с него подключаюсь к VPN заказчика. И собственно подключаюсь. И пинг с него к gitlab идет. Все ок.

    Теперь я поднимаю на нем же OpenVPN сервер и подключаюсь к нему с ноубука. Я ожидаю что OpenVPN на VPS будет выходить наружу через подключение fortivpn и соотвествено теперь пакеты с моего ноубука будет идти через
    OpenVPN@VPS и forti@VPS к gitlab. Но этого не происходит.

    Т.е. если представить это в виде какой-то схемы то я ожидаю что маршрут будет какой-то такой [ноутбук]->[OpenVPN@VPS -> forti@VPS] -> [fortivpnserver] -> [gitlab]

    Т.е. никакого "не получается" у меня нет. У меня все получилось. Вопрос почему то что получилось работает не так как я ожидаю и что нужно сделать чтобы работало так как я хочу.
  • Как сделать сервер маршрутизации?

    Suntechnic
    @Suntechnic Автор вопроса
    res2001, возожно в этом и проблема. Я не понимаю "какой сети". С моей точки зрения никакой сети нет.
    Есть удаленный сервер назовем его просто gitlab, к которому возможен доступ "только по VPN". Судя по всему - там просто фильтрация по IP.

    Есть мой компьютер назовем его просто ноутбук, ip которого забанен на сервере VPN заказчика.

    Я поднимаю VPS в нейтральной стране и хочу с него подключаюсь к VPN заказчика. И собственно подключаюсь. И пинг с него к gitlab идет. Все ок.

    Теперь я поднимаю на нем же OpenVPN сервер и подключаюсь к нему с ноубука. Я ожидаю что OpenVPN на VPS будет выходить наружу через подключение fortivpn и соотвествено теперь пакеты с моего ноубука будет идти через
    OpenVPN@VPS и forti@VPS к gitlab. Но этого не происходит.

    Т.е. если представить это в виде какой-то схемы то я ожидаю что маршрут будет какой-то такой [ноутбук]->[OpenVPN@VPS -> forti@VPS] -> [fortivpnserver] -> [gitlab]
  • Как сделать сервер маршрутизации?

    Suntechnic
    @Suntechnic Автор вопроса
    И что мне это даст?
    Давайте опустим этот момент и предположим я знаю как настроить маршруты (для сервера не знаю, но нагуглю). Дальше-то что?
    Как я узнаю какие маршруты надо настраивать? В этом и суть вопроса - я на логическом уровне слабо представляю что делать. Как сделать так чтобы OpenVPN сервер ходил наружу через соединение созданное forticlient.
    Если я буду это понимать я уж как-нибудь нагуглю как это настраивается.
  • Как сделать сервер маршрутизации?

    Suntechnic
    @Suntechnic Автор вопроса
    Можно чуть подробнее - я совсем нуб в сетевых вопросах.
  • Как узнать процент похожести текста?

    DragoN DragoN, это можно сделать оперативно. Смотрите, ведь редакторы печатают слова? Ок. Вероятно они есть в тексте. Следовательно вы можете добавить шорткаты клавиатуры, которые отправляют слово левее курсора в соответствующие поля. Да, придется учится. А например даты может не быть в тексте в явном виде. Там может быть "вчера" например, но можно сделать конвертер... ну это я уже на ходу сочиняют.

    В целом, как и сказал rPman, мысль в том, чтобы предоставить структуру данных о статье в машиночитаемом виде. Это как бы та же ваша задача но разбитая на два приема, первый из которых подготовка данных под контролем человека.