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

    @hoindex Автор вопроса
    tgarl, я пробовал и этот вариант, пробовал делать DiscountCouponsManager::init() внутри onecklickbuy отказывается работать хоть тресни.
    Ваш код я на всякий случай конечно скопипастил и проверил, без изменений.

    В переписке с Александром я писал что
    $lstCoupons = Sale\DiscountCouponsManager::get(false, [], true, false);

    возвращает купон еще до применения.
    Поковырявшись понял что купон также применяется при проверке номера телефона через ajax на форме 1 клик.
    Думал может внутри битрикса какая-то транзакция открывается убрал применения, принудительно сделал
    unset($_SESSION["CATALOG_USER_COUPONS"]);
    И в качестве "на всякий"
    DiscountCouponsManager::delete($coupon);
    DiscountCouponsManager::clear(true);
    DiscountCouponsManager::clearApply(true);


    К сожалению не помогло.
    $lstCoupons = Sale\DiscountCouponsManager::get(false, [], true, false);

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

    @hoindex Автор вопроса
    tgarl, ограничений нет, выбраны все группы пользователей
    Ссылка удалена модератором.
    Нарушение п.3.9 Регламента.

    Дело точно не в настройках, всё активно, без ограничений, без сроков, это касается и правил и их купонов.
  • Битрикс - почему не применяется купон к заказу?

    @hoindex Автор вопроса
    tgarl, упрощать правила некуда
    Ссылка удалена модератором.
    Нарушение п.3.9 Регламента.

    Кроме того я уже неоднократно писал что купон работает если применять его из отдельного файла.
    Мне очистка буфера не нужна, этот код писался до меня, у меня задача добавить скидку по номеру телефона.
    Тем не менее $APPLICATION->RestartBuffer() ни при чем, если его убрать ничего не меняется.
  • Битрикс - почему не применяется купон к заказу?

    @hoindex Автор вопроса
    Александр Маджугин,
    При чем тут условия?
    Я же пишу что в отдельном файле этот код работает, при переносе в oneClickBuy.php перестает
    По нему применяется купон и уменьшается цена, в админке у заказа видно примененный купон.
    Это та же база, тот же купон, тот же товар, тот же заказ.
    Этот код перестаёт работать когда попадает в файл обработки заказа по 1 клику.
    Т.е. тут работает https://onlinephp.io/c/9a790
    тут не работает https://onlinephp.io/c/a382b

    Что-то в этом файле мешает применению купона, вопрос что и почему нет никаких ошибок...
  • Битрикс - почему не применяется купон к заказу?

    @hoindex Автор вопроса
    Александр Маджугин,
    Так купон не применяется или стоимость остается прежней?

    В самом заказе купон не отображается, даже если сделать пересчет ручками.
    Видимо не применяется купон, то что стоимость не меняется это следствие.

    Купон есть в списке?

    Да есть,
    coupons list: Array
    (
    [0] => pl_10
    )


    При чем он есть в списке и до применения купона например тут
    if(isset($coupon)){
    
        $file = "/@del/coupon.log";
        $lstCoupons = Sale\DiscountCouponsManager::get(false, [], true, false);
        Diag\Debug::writeToFile("coupons list: ".print_r($lstCoupons, true), "", $file);
        $couponinfo = DiscountCouponsManager::getData($coupon, true);
        if ($couponinfo['ACTIVE'] == 'Y') {
    
            Diag\Debug::writeToFile("coupon ".$coupon." active", "", $file);
            $discountOrder = Sale\Order::load($orderId);
    
            Sale\DiscountCouponsManager::add($coupon);
            $discounts = $discountOrder->getDiscount();
            $discounts->calculate();
            $discountOrder->refreshData();
            $discountOrder->save();
        }
    }
  • Как из js закрыть модальное окно fancybox 4?

    @hoindex Автор вопроса
    Вы бы хоть для приличия весь текст вопроса прочитали.
    Не работает ни это ни многое другое.
  • Как автоматически и со звуком запустить youtube видео на странице?

    @hoindex Автор вопроса
    Грусть-печаль, но видимо это истина, ибо чего только не пробовал...
  • Как автоматически и со звуком запустить youtube видео на странице?

    @hoindex Автор вопроса
    wadowad, я выполняю playVideo() по событию onPlayerReady и на этот момент объект в браузере есть.
    Я так понимаю это уже после того как загрузился фрейм.
    И вы предлагаете в

    $("#ytplayer").load( function() { / setTimeout(() => {

    поместить весь скрипт?
    Так оно никогда не сработает.
  • Почему не работает новый ЧПУ URL в opencart на NGINX + PHP-FPM?

    @hoindex Автор вопроса
    @iMedved2009
    При том что это в апаче делают вагон rewrite в каждой папке. В nginx стараются обходиться location.

    Т.е. вагон таких конструкций
    location /man-main {
                    try_files $uri $uri/ /index.php?route=common/home&gender=m;
            }

    лучше чем
    rewrite ^/man-main/$ /index.php?route=common/home&gender=m last;

    ?
    С какой стороны оно лучше?

    Я отметил ваш вариант решением т.к. в целом моя проблема решилась, но мой основной вопрос - почему работает
    rewrite ^/man-main/$ /index.php?route=common/home&gender=m last;

    а
    rewrite ^/woman-main/$ /index.php?route=common/home&gender=w last;

    не работает?
    Очевидно же что rewrite вполне себе рабочий способ.
  • Почему не работает новый ЧПУ URL в opencart на NGINX + PHP-FPM?

    @hoindex Автор вопроса
    но я специально многоточие поставил - что там еще должно чего быть.

    Я к сожалению с nginx не очень, нахожу примеры и пробую их использовать.
    Таких конструкций по запросу nginx чпу я не встречал, что там вместо многоточия не представляю.

    вы из nginx пытаетесь сделать апач с его rewrite - это не совсем правильно.

    Я следую инструкции на официальном сайте, которая отдается яндексом в числе первых - https://nginx.org/ru/docs/http/ngx_http_rewrite_mo...

    И я повторю изначальный вопрос.
    Почему работает
    rewrite ^/man-main/$ /index.php?route=common/home&gender=m last;
    а
    rewrite ^/woman-main/$ /index.php?route=common/home&gender=w last;
    не работает?
    При чем тут апач?
  • Почему не работает новый ЧПУ URL в opencart на NGINX + PHP-FPM?

    @hoindex Автор вопроса
    location /woman-main/ {
    fastcgi_param QUERY_STRING route=common/home&gender=w;
    }

    url отдает 404

    З.Ы. А почему просто не пробросить все на php и там разобрать роуты?

    Когда слышу слова "перенести" и "разбирать" понимаю что это не2 минуты, а у меня ситуация когда всё работает кроме /woman-main/
    Да и тут больше академический интерес, т.к. я могу и другой url использовать.
  • Почему не работает новый ЧПУ URL в opencart на NGINX + PHP-FPM?

    @hoindex Автор вопроса
    dodo512, есть тут /etc/nginx/vhosts-includes/*.conf;
    blacklist-nginx.conf
    disabled.conf
    letsencrypt.conf
    phpmyadmin-nginx.conf

    Во второй папке пусто.
  • Почему не работает новый ЧПУ URL в opencart на NGINX + PHP-FPM?

    @hoindex Автор вопроса
    dodo512,
    server {
    	server_name site.ru www.site.ru;
    	charset off;
    	index index.php index.html;
    	disable_symlinks off;
    	include /etc/nginx/vhosts-includes/*.conf;
    	include /etc/nginx/vhosts-resources/site.ru/*.conf;
    	access_log /var/www/httpd-logs/site.ru.access.log;
    	error_log /var/www/httpd-logs/site.ru.error.log notice;
    	set $root_path /var/www/site/data/www/site.ru;
    	root $root_path;
    	listen 127.0.0.1:80;	
    	
    	location / {
    		location ~ [^/]\.ph(p\d*|tml)$ {
    			try_files /does_not_exists @php;
    		}
    		if (!-e $request_filename){
            rewrite ^/(.+)$ /index.php?_route_=$1 last;
            
            }
    		auth_basic "Access limited by ISPmanager";
    		auth_basic_user_file /var/www/site/data/etc/access.site.ru.1B2M2Y8A.passwd;
    	}
    	location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|woff2)$ {
    			expires max;
    			access_log off;
    			error_log off crit;
    		}
    	location @php {
    		fastcgi_index index.php;
    		fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@site.ru";
    		fastcgi_pass unix:/var/www/php-fpm/site.sock;
    		fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
    		try_files $uri =404;
    		include fastcgi_params;
    	}
    	rewrite ^/man-main/$ /index.php?route=common/home&gender=m last;
    	rewrite ^/woman-main/$ /index.php?route=common/home&gender=w last;	
    }
  • Почему sql запрос возвращает NULL?

    @hoindex Автор вопроса
    Дмитрий, ))))
    Спасибо огромное!!!
  • Почему sql запрос возвращает NULL?

    @hoindex Автор вопроса
    Akina,
    Теперь понятно, почему возвращается 'NULL'?

    Примерно да, непонятно для чего эта конструкция была придумана.
    В отчете куча столбцов с атрибутами товаров, есть и числовые и текстовые.
    Разработчик хотел отфильтровать значения начинающиеся с 1 ?
    ИМХО, в этом нет смысла...
  • Почему sql запрос возвращает NULL?

    @hoindex Автор вопроса
    Дмитрий, сайт на php, но отчет строится без php.
    То что этот генератор мог писать php'шник со своим понимание приведения типов это да, может быть.

    Просто единственный смысл который я вижу это возвращение NULL вместо пустого ответа, но чем его пустой ответ в этом случай не устраивал непонятно.
    В этом отчете некоторые поля пустые некоторые NULL.
    Есть ощущение что есть какой-то более прикладной смысл.
  • Почему sql запрос возвращает NULL?

    @hoindex Автор вопроса
    Дмитрий, так я NULL ни с чем её не сравниваю и не привожу)))
    Задача отчета создать таблицу со столбцами
    id товара | артикул | свойство 1 | ... | свойство 99 |
    Ну и с их значениями соответственно.
    Я бы для полей такого типа этого использовал запрос типа
    SELECT pa.text FROM oc_product_attribute_test pa WHERE pa.product_id = 19442 AND pa.attribute_id = '35'

    Но я понимаю что разработчик не дурак и не спроста обернул простой запрос в конструкцию IF (в вашем варианте IFNULL)
    Для чего?
  • Почему sql запрос возвращает NULL?

    @hoindex Автор вопроса
    Дмитрий, запросы
    SELECT IFNULL((SELECT pa.text FROM oc_product_attribute_test pa WHERE pa.product_id = 19442 AND pa.attribute_id = '35'), 'NULL');
    SELECT IFNULL((SELECT pa.text FROM oc_product_attribute_test pa WHERE pa.product_id = 24074 AND pa.attribute_id = '35'), 'NULL');

    отдают корректные данные.
    Вопрос от чайников - а в чем конкретно задача запроса формата SELECT IFNULL((SELECT pa.text FROM...?
    Почему не используется простой SELECT pa.text FROM... ?