Последние темы


ЯНДЕКС КАССА

  • [[!Shopkeeper3@cart_main?propertySetName=`cart_main`]]
    
    [[!FormIt?
    &hooks=`spam,shk_fihook,email,FormItAutoResponder,YandexMoneyHook,redirect`
    &submitVar=`order`
    &emailTpl=`shopOrderReport`
    &emailSubject=`В интернет-магазине "[[++site_name]]" сделан новый заказ`
    &emailTo=`[[++emailsender]]`
    &emailFrom=`[[++mail_smtp_user]]`
    
    &fiarSubject=`Вы сделали заказ в интернет-магазине "[[++site_name]]"`
    &fiarTpl=`shopOrderReportUser`
    &fiarFromName=`[[++site_name]]`
    &_fiarReplyTo=`[[++emailsender]]`
    &fiarToField=`email`
    
    &fiarReplyTo=`[[++mail_smtp_user]]`
    &fiarSender=`[[++mail_smtp_user]]`
    
    &redirectTo=`95`
    &validate=`address:required,fullname:required,email:email:required,phone:required`
    &errTpl=`<br /><span class="error">[[+error]]</span>`
    ]]
    
    
    [[!+shk.items_total:gt=`0`:then=`
    [[$shopOrderForm]]
    `:else=`<center><p>Вы не положили в корзину ни одного товара</p></center>`]]
    
    <script type="text/javascript">
        function SHKloadCartCallback() {
            if( $('#shopOrderForm').size() > 0 && SHK.data.items_total == 0 ){
                window.location.reload();
            }
        }
    </script>
    

    Вот так вот вроде работает...

  • <?php
    $_isAdmin = ($modx->user->sudo == 1);
    
    if(!defined('YANDEXMONEY_PATH')) define('YANDEXMONEY_PATH', MODX_CORE_PATH."components/yandexmoney/");
    require_once YANDEXMONEY_PATH.'model/yandexmoney.class.php';
    
    $snippet = $modx->getObject('modSnippet',array('name'=>'YandexMoney'));
    $config = $snippet->getProperties();
    
    $ym = new Yandexmoney($modx, $config);
    
    if(!empty($_SESSION['shk_lastOrder']) && !empty($_SESSION['shk_lastOrder']['id'])){
        $ym->pay_method = !empty($_SESSION['shk_lastOrder']['payment']) ? $_SESSION['shk_lastOrder']['payment'] : '';
        $order_id = (int)$_SESSION['shk_lastOrder']['id'];    
    }
    if (!empty($_POST['payment'])){
        $ym->pay_method = $_POST['payment'];
    }
    if (!$ym->checkPayMethod()){
        return true;//false;
    }
    
    $modx->addPackage('shopkeeper3', MODX_CORE_PATH."components/shopkeeper3/model/");
    $order = $modx->getObject('shk_order',array('id'=>$order_id));
    
    if (!$order){
        return false;
    }
    $output = '';
    
    if ( $order_id ){
        $ym->userId = $modx->getLoginUserID('web') ? $modx->getLoginUserID('web') : 0;
        $ym->orderId = $order_id;
        $ym->orderTotal = $_SESSION['shk_lastOrder']['price'];
        $ym->orderTotal = floatval(str_replace(array(',',' '), array('.',''), $ym->orderTotal));
        $ym->comment = $_POST['message'];
    
        $_host = str_replace(array('http://', 'https://'), '' , $modx->config['site_url']);
        $host = 'https://' . $_host . 'assets/components/yandexmoney/connector_result.php';
        $ym->successUrl = $host.'?success=1';
        $ym->failUrl = $host.'?fail=1';
    
        echo $ym->createFormHtml();
        exit;
    
    }
    
    return true;
    

    А это YandexMoneyHook

  • Позанимавшись немного интеграцией яндек-кассы, наткнулся на момент: хук YandexMoneyHook как будто бы не рассчитан на то, что могут быть другие платежные методы, ктоме тех, которые в нем указаны. Например, нельзя просто так добавить способ оплаты "Наличными курьеру при получении" - хук будет возвращать false и все хуки, следующик за ним, не будут выполнены.

    Можно, конечно, дописать в его начало что-то вроде

    if ($_POST['payment'] == 'Наличными курьеру') {
        return true;
    }
    

    может, у кого-то есть более изящный вариант?

    +, как уже заметил @akradeus , хук из коробки содержит ошибку - $output всегда будет пуст.

    Здесь https://github.com/andchir/yandex-money-cms-modx почему-то нельзя добавить issue (почему, кстати?), поэтому пусть будет здесь.

  • Когда я с первого раза напишу сообщение без опечаток, вселенная сколлапсирует. @Andchir , можно увеличить время, в течении которого сообщения можно править?

  • @whitebyte сказал ЯНДЕКС КАССА:

    Когда я с первого раза напишу сообщение без опечаток, вселенная сколлапсирует. @Andchir , можно увеличить время, в течении которого сообщения можно править?

    Там установлен час времени. Я думаю этого должно быть достаточно.

  • @Andchir закрывает через 60 секунд

  • @whitebyte сказал ЯНДЕКС КАССА:

    @Andchir закрывает через 60 секунд

    Я перепутал секунды с минутами 🙂 Увеличил время.

  • После оплаты не приходит письмо о смене статуса заказа. Статус заказа становится отмененным.

  • Со статусом разобрался, но письмо не приходит.

  • @Ростилав сказал ЯНДЕКС КАССА:

    Со статусом разобрался, но письмо не приходит.

    Не приходит потому что такого функционала пока нет.

  • @andchir а подскажите пожалуйста, что прописать чтоб передавались данные для чека?

 

Последние комментарии

  • M

    @Andchir , спасибо. Проблема и правда была в одном из плагинов, который на другом сайте нормально работает

    Читать далее
  • Что нового в Shopkeeper 4.0.3:

    Исправлено некорректное определение языка по умолчанию В настройках в админке скрываются пароли. Добавлена возможность загружать картинки для категорий. shopkeeper.js - добавлена функция updateProductsPrice() для поддержки текстовых полей для цены. Twig-функции contentList() и includeContent() вынесены в отдельный класс. Добавлено событие "order.before_create". Сортировка всех полей типа контента перетаскиванием. Автоматическое сохранение сортировки полей при сохранении типа контента (не нужно нажимать на отдельную кнопку). В интерфейсе админа добавлено поле поиска для списка Composer-пакетов.

    Скачать можно на главной странице https://modx-shopkeeper.ru/

    Читать далее
  • Вот этот плагин:
    0_1550334109280_screenshot_022.png

    Вроде по умолчанию он выключен. Надо включить. Но плагин работает только на редактирование товаров, при удалении он делалать ничего не будет. Только что проверил кнопку, всё работает корректно, фильтры удаляются и добавляются, когда нужно. Но нужно очищать корзину после удаления товаров (возможно баг).

    Читать далее
  • J

    @Andchir Если нажимаю кнопочку "Обновить значения", то в фильтрах появляются как раз те самые удаленные значения фильтра.. Потом приходится Ручками выбирать эти удаленные значения.
    вот так выглядит Управление фильтрами когда удаляешь ручками: https://yadi.sk/i/_zw64CGkZ_sAYg
    А вот так выглядит когда просто нажимаешь "Обновить значения": https://yadi.sk/i/7WFbXC6xV5sQAw (красным выделено, то что приходится постоянно удалять

    Читать далее