Вывод списка товаров с помощью pdoResources



  • Здравствуйте, подскажите пожалуйста как это адаптировать но только под pdoResources ?

    [[!getPage?
    &elementClass=`modSnippet`
    &element=`getProducts`
    &className=`shopContent`
    &packageName=`shop`
    &limit=`10`
    &tpl=`product`
    &where=`{"template":15}`
    ]]
    

  • Администраторы

    Почитать документацию pdoResources лень?



  • @Andchir
    Я читал и пытался сделать своими силами, но у меня ничего не получилось, по этому я обратился на форум за помощью.


  • Администраторы

    Тогда надо написать как вы пытались и что не получилось.



  • @Andchir

                [[pdoResources?
                &loadModels=`shopkeeper3`
                &parents=`[[*id]]`
                &depth=`3`
                &hideContainers=`1`
                &includeTVs=`img_product,img_alt,img_title,hit_product,price`
                &tvPrefix=``
                &limit=`20`
                &sortdir=`ASC`
                &tpl=`tpl_product`
                &showLog=`1`
                ]]
    

    Вывожу так, но кнопка добавить в корзину не работает, просто обновляется страница. И товар в корзину не попадает.
    Корзину вывожу так.

    [[!Shopkeeper3@cart_catalog]]
    

  • Администраторы

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

    Значит товары все таки выводятся. Это и есть назначение pdoResources. Покажите чанк "tpl_product".

    &loadModels=`shopkeeper3`
    

    Это лишнее. У вас товары видимо обычные ресурсы MODX.



  • Вот собственно сам чанк.

    <div class="product shk-item">
        <div class="product-b">
            <div class="product-descr">
                <a href="[[~[[+id]]? &scheme=`abs`]]">
                    <img class="shk-image" src="[[+img_product]]" alt="" height="130" width="130" />
                </a>
                <h3>[[+pagetitle]]</h3>
                [[+introtext]]<br />
                <a href="[[~[[+id]]? &scheme=`abs`]]">Подробнее &rsaquo;</a>
                <div style="clear:both;"></div>
            </div>
            <form action="[[~[[*id]]? &scheme=`abs`]]" method="post">
                <fieldset>
                    <input type="hidden" name="shk-id" value="[[+id]]" />
                    <input type="hidden" name="shk-count" value="1" />
                    <div class="product-price">
                        <button type="submit" class="shk-but">В корзину</button>
                        <div>Цена: <span class="shk-price">[[+price:num_format]]</span> руб.</div>
                    </div>
                </fieldset>
            </form>
        </div>
    </div>
    

  • Администраторы

    Есть ссылка? Может JS ошибка возникает? Проверьте чтобы jQuery был подключен только один раз.



  • @Andchir
    В общем проблема была в том что я выводил корзину на отдельном ресурсе в шаблоне.
    Как я понял она должна быть в чанке и появляться на каждом ресурсе.
    Как только добавил это в чанк header всё заработало.

    [[!Shopkeeper3@cart_catalog]]
    


  • @October Пример из моего интернет магазина

     [[!pdoPage?
      &elementClass=`modSnippet`
      &element=`pdoResources`
      &showHidden=`1`
      &tpl=`product`
      &limit=`20`
      &includeContent=`1`
      &includeTVs=`1`
      &includeTVList=`img,kg,new,rubli,tags,netvn2`
      &processTVs=`1`
      &parents=`[[*id]]`
      &hideContainers=`1`
      &pageLimit=`100`
      &pageNavVar=`page.nav`
      ]]
    						
    

    Попробуйте вставить код и подставить свои значения



  • Теперь такая проблема. При оформлении товара если я изменяю количество товара идёт обновления и настройки параметров сниппета shopkeeper сбрасываются на "по умолчанию".
    Я вывожу малую корзину таким образом и прописывал ей свой чанк. То если на странице оформления я изменяю колличество товара то у ней чанк выводится по дефолту.

    [[!Shopkeeper3@cart]]
    

    Таже ситуация и с оформлением товара. У ней тоже сбрасываются настройки параметров и выводятся по дефолту.

    [[!Shopkeeper3@order_page]]
    

    Подскажите пожалуйста куда копать ?



  • В маленькой корзине у вас разделитель так идет ?

    <!--tpl_separator-->
    


  • @Роман сказал Вывод списка товаров с помощью pdoResources:

    <!--tpl_separator-->

    Да всё верно. В общем покопался я и у меня проблемы с настройками параметров. Скачал демо магазин установил скопировал настройки из него. Остался вопрос что за параметры для чего они нужны ? className packageName прочитал документацию ничего не понял :C Поставил в общем className = modResource.

    Спасибо вам Роман что пытаетесь помочь.



  • Теперь у меня всё работает. Но вот если не добавлять товар в корзину то малая корзина и страница оформления заказа не выводит текст "пустая корзина" ту часть чанка которая идёт до сепаратора %)

    <!--tpl_separator-->
    

    Куда рыть ?:)



  • если вы написали не <!--tpl_separator--> а например <!--tpl_разделитель--> то работать ничего не будет

    Вот пример чанка корзины товаров

    <div class="shop-cart" data-shopcart="1">
        <div class="shop-cart-head"><b>Корзина</b></div>
        <div class="empty">
            <div class="shop-cart-empty">Пусто</div>
        </div>
    </div>
    <!--tpl_separator-->
    <div class="shop-cart" data-shopcart="1">
        <div class="shop-cart-head"><b>Корзина</b></div>
        <div class="full">
            <div  style="text-align:right;">
                <a href="[[+empty_url]]" id="shk_butEmptyCart">Очистить корзину</a>
            </div>
            <div class="shop-cart-body">Выбрано: <b>[[+items_total]]</b> [[+plural]]</div>
            <div style="text-align:right;">Общая сумма: <b>[[+price_total]]</b> [[+currency]]
            </div>
            <div class="cart-order">
                <a href="[[+order_page_url]]" id="shk_butOrder">Оформить заказ</a>
            </div>
        </div>
    </div>
    

    Вот тут я писал про это http://wiki.modx-shopkeeper.ru/doku.php?id=shopkeeper3



  • Первая часть — чанк пустой корзины товаров.
    <!--tpl_separator-->
    Вторая часть — чанк корзины с товарами.



  • еще обязательно должен быть атрибут data-shopcart="1" Это номер набора параметров. По этому номеру будет производиться обновление корзины.



  • @Роман
    Все чанки выводятся верно, они были взяты из демо магазина. Я их проверил всё верно.
    Подскажите пожалуйста, у меня следующая проблема, при выборе способа доставке не обновляется ценна доставки и её способ, она обновляется только в том случаии если я на форме заказа нажимаю кнопку отправить. Тогда поля стоимости заказа и способ заказа обновляются. Опять же все чанки были взяты из демо магазина. Может какие то проблемы с настройками в @cart_order_page ? Как я понял почему то не срабатывает JS и не обновляет те поля с ценой и способом доставки.


  • Администраторы

    у меня следующая проблема, при выборе способа доставке не обновляется ценна доставки и её способ, она обновляется только в том случаии если я на форме заказа нажимаю кнопку отправить

    Значит не всё скопировали с демо. Там есть скрипт, который обновляет цену.



  • @Andchir Два чанка page_order_cart и shopOrderForm_modified
    В первом чанке page_order_cart в самом низу такой скрипт:

    <script type="text/javascript">
        function SHKloadCartCallback() {
            if( $('#shopOrderForm').size() > 0 && SHK.data.items_total == 0 ){
                window.location.reload();
            }
        }
    </script>
    

    Во втором чанке shopOrderForm_modified в самом низу вот такой срипт.

    <script type="text/javascript">
    $(document).bind('ready',function(){
        if ( SHK.data.delivery_name ) {
            $('select[name="shk_delivery"]','#shopOrderForm').val( SHK.data.delivery_name );
        }
        $('select[name="shk_delivery"]','#shopOrderForm').bind('change',function(){
            SHK.selectDelivery( $(this).val() );
        });
    });
    </script>
    

    Если я изменяю способ доставки ничего не происходит. А если нажимаю кнопку "оптравить" то данные меняются.



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

Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.