• A
    alexanderr

    @LoGruS Интересное предложение. Но я считаю что лучше сделать отдельную страницу по шаблону. По типу того как отправляются письма с заказом клиенту и админу. Там есть возможность самому все настроить и текст и форму и дизайн письма. Также и здесь. Смысл в том, чтобы печатать документ с информацией о заказе. Номер заказа, адрес доставки и т.д.. А также добавить информацию о сроках возврата и всю остальную информацию, которую необходимо вручать получателю в момент передачи товара ( и все остальное что требует от на законодательство). Поэтому считаю что нужно выводить инфу по шаблону с плейсхолдерами.
    Не так давно я просил совета в другой ветке http://forum.modx-shopkeeper.ru/topic/371/печать-заказа-из-админки/3.
    Решил сам реализовать. @Andchir дал пару советов. Но этих советов оказалось недостаточно для реализации задуманного.
    Решение где-то рядом.))

    написал в Пожелания и предложения Читать далее
  • A
    alexanderr

    @pitrooo я видел данный компонент. Не уверен что с 3 шопкипером работает как надо. Разработан он изначально под minishop. Не выводит в html а только в pdf. К тому же смущает, что его можно установить только на один домен (из слов самого автора).
    Я за то, чтобы разработать свой компонент для SHK3.

    написал в Пожелания и предложения Читать далее
  • A
    alexanderr

    @slaad Пару лет назад, мне потребовалось сделать обычный интернет магазин. На тот момент, я обладал знаниями только в HTML, очень поверхностно JavaScript и так-же PHP. После прочтения кучи отзывов и мнений, решил сделать магазин на OpenCart (OcStore). Кстати, кто-то однажды заметил что OpenCart это не так CMS, как оболочка для интернет магазина. В общем, установил начал разбираться и углубляться. Установил тему, стал вносить изменения. Чем больше углублялся в создание интернет магазина, тем больше требовалось специфических плагинов, таких как импорт/эскпорт товаров, раздел "Блог(Новости)", фильтры для товаров, и т.д. Все эти типовые плагины можно найти. Но все они прекрасно устанавливаются на стандартную тему. Если же тема не стандартная, возникают проблемы. Приходилось много времени тратить на подгонку плагинов к теме.
    В итоге все сделал. Магазин прекрасно работал.
    Через некоторое время потребовалось сделать еще один магазин. К тому времени я уже познакомился с MODX. И решил делать магазин на MODX. Я потратил очень много времени на изучение Shopkeeper, сниппетов, плагинов. Подтянул знания в PHP и JS. И сделал то, что не смог бы сделать на OpenCart. Кто-то где-то сказал, что на MODX можно сделать все! Были бы знания и время. Мне очень нравится MODX, потому как здесь можно легко реализовать очень много классных идей возникающих у тебя в голове, или голове заказчика или просто следуя тенденциям. Добавлять на сайт новые фишки.

    Я сделал вывод. Если нужно быстро сделать простой интернет-магазин без заморочек и всяких доделок, то необходимо делать на OpenCart.
    Но, если вы хотите нечто большее, то только MODX.

    На счет безопасности и обсуждаемой всеми темы критической уязвимости MODX. Я думаю, что любую систему можно взломать. Modx, OpenCart, WP, Bitrix и т.д. Всегда будут люди, которые будут находить дыры. Эти дыры будут закрываться рано или поздно. Это круговорот. И от него не уйти. Многие так испугались и стали думать на какую CMS переходить))). Вы думаете, другая CMS лучше? Та уязвимость, которая найдена, вскоре будет устранена. Так что не стоит так переживать.
    Кстати на тему безопасности OpenCart. Некоторое время назад заметил что сайт на котором сделан OpenCart открывается по 10 сек. А в админку вообще доступа нет!!! Начал гуглить. Оказалось что в исходном коде, был некий баг, который заставлял сайт кучу раз обращаться на сторонний сервер. Проблему решил по инструкции, удалив часть плохо кода.
    Я к чему это? Да к тому, что нет идеальной системы. Везде есть плюсы и минусы.

    написал в MODX - Вопросы и обсуждения Читать далее
  • A
    alexanderr

    Случайно зашел на этот форум и увидел что многих интересует как реализовать Список доставки в виде radio-списка.
    Я этот способ реализовал очень давно и уже не помню деталей. Показываю код для реализации этой фишки. Не спрашивайте как и зачем. Просто изучите код сравните со своим и внедряйте.
    У меня задача была такая: сделать список доставки и список способов оплаты в виде блоков (с заголовками и иконками). Именно выбор через radio позволили реализовать идею. Вот что получилось http://timotrader.ru/oformlenie-zakaza

    Вызов shkOptions

    [!shkOptions?
    &get=`delivery,payments`
    &post_name=`shk_delivery,payment`
    &toPlaceholders=`1`
    &pl_prefix=`shkopt_`
    &tpl=`select_option_2`
    ]]
    

    // tpl select_option_2

    <label class="op_[[+name]]">
    <input name="[[+name:is=`delivery`:then=`shk_delivery`:else=`payment`]]" type="radio" value="[[+value]]" [[+checked]] ><span>[[+label]]
    <div>
    	[[+value:is=`Доставка курьером (по Москве)`:then=`<i class="fa fa-truck" aria-hidden="true"></i>`]]
            [[+value:is=`Доставка курьером до ПВЗ (по России)`:then=`<i class="fa fa-truck" aria-hidden="true"></i>`]]
    	[[+value:is=`Самовывоз (Москва)`:then=`<i class="fa fa-archive" aria-hidden="true"></i>`]]
    	[[+value:is=`Наличными при получении`:then=`<i class="fa fa-rub" aria-hidden="true"></i>`]]
    	[[+value:is=`Банковской картой`:then=`<i class="fa fa-credit-card" aria-hidden="true"></i>`]]
    	[[+value:is=`Банковской картой при получении`:then=`<i class="fa fa-tablet" aria-hidden="true"></i>`]]
    	</div></span>
    </label>
    

    // html разметка

    <div class="opt_delivery">
    	<span>Выберите способ доставки</span>
    		[[!+shkopt_delivery]]
    </div>
    <div class="opt_payment">
    	<span>Выберите способ оплаты</span>
    		[[!+shkopt_payments]]
    </div>
    

    // модифицированный код снипета shkOptions

    <?php
    /**
     * shkOptions
     * Сниппет выводит данные из конфигурации Shopkeeper
     *
     */
    
    $output = array();
    
    $get = $modx->getOption( 'get', $scriptProperties, '' );
    $post_name = explode( ',', $modx->getOption( 'post_name', $scriptProperties, $get ) );
    $get = explode( ',', $get );
    $get = array_map( 'trim', $get );
    $post_name = array_map( 'trim', $post_name );
    $tpl = $modx->getOption( 'tpl', $scriptProperties, '' );
    $toPlaceholders = $modx->getOption( 'toPlaceholders', $scriptProperties, false );
    $pl_prefix = $modx->getOption( 'pl_prefix', $scriptProperties, 'shkopt_' );
    
    if( empty( $get ) ) return '';
    
    if( class_exists('Shopkeeper') ){
        
        $config = Shopkeeper::getConfig( $get );
        
        //echo '<pre>' . print_r( $config, true ) . '</pre>';
        
        if( !empty( $config ) ){
            
            foreach( $get as $index => $opt_name ){
                
                if( !empty( $config[ $opt_name ] ) ){
                    
                    $output[ $opt_name ] = '';
                    
                    foreach( $config[ $opt_name ] as $key => $conf ){
                        
                        if( empty( $conf['value'] ) ){
                            $conf['value'] = $conf['label'];
                        }
                        if( empty( $conf['name'] ) ){
                            $conf['name'] = $opt_name;
                        }
                        $conf['checked'] = ( isset( $post_name[$index] ) && isset( $_POST[ $post_name[$index] ] ) && $_POST[ $post_name[$index] ] == $conf['value'] ? 'checked="checked"' : '' );
                        
                        $output[ $opt_name ] .= $modx->getChunk( $tpl, $conf ) . PHP_EOL . "\t";
                        
                    }
                    
                }
                
            }
            
        }
        
    }
    
    if( $toPlaceholders ){
        
        foreach( $output as $pl_name => $out ){
            $modx->setPlaceholder( $pl_prefix . $pl_name, $out );
        }
        
        $output = array();
        
    }
    
    return implode( '', $output );
    

    написал в Поддержка Читать далее