Всего 123 799 комментариев

Maks
06 сентября 2023, 10:50
0
Отлично. Все работает. Убрал Fetchit и запросов стало на 14 меньше.
Остался вопрос почему в консоли такие ошибки вылези?

Uncaught (in promise) TypeError: can't access property "closest", target is null
    resetAllErrors assets/components/sendit/web/js/modules/sending.js:250
    send /assets/components/sendit/web/js/modules/sending.js:107
    removeDir /assets/components/sendit/web/js/modules/fileuploader.js:273
    initialize /assets/components/sendit/web/js/modules/fileuploader.js:127
    initialize /assets/components/sendit/web/js/modules/fileuploader.js:126
    send /assets/components/sendit/web/js/modules/sending.js:119
    prepareSendParams /assets/components/sendit/web/js/modules/sending.js:86
    initialize /assets/components/sendit/web/js/modules/sending.js:42
    initialize /assets/components/sendit/web/js/modules/sending.js:36
    Sending /assets/components/sendit/web/js/modules/sending.js:26
    SendIt /assets/components/sendit/web/js/sendit.js:16
    promise callback*SendIt /assets/components/sendit/web/js/sendit.js:14
    <anonymous> /assets/components/sendit/web/js/sendit.js:105
    <anonymous> /assets/components/sendit/web/js/sendit.js:106
Константин
06 сентября 2023, 09:41
0
Пробую таким способом, артикул все таки выводится. На скриншоте проще показать: disk.yandex.ru/i/DiY5_EjPHyfklA
ID=31 — это самая верхняя категория которая в себе содержит десятки подкатегорий разной вложенности, и у товаров всех этих категорий, которые постоянно добавляются и убавляются, не нужно выводить артикул. Что бы не лезть постоянно в шаблон что бы прописать ID новой добавленной категории.
Наумов Алексей
06 сентября 2023, 08:27
0
В параметре thread рядом с resource потерян дефис:
'resource-' ~ $id
Алексей Смирнов
05 сентября 2023, 22:27
0
Просто пишите так:
{if $_modx->resource.parent not in list [29,31] }
  <div class="reward"><span>Артикул:</span> <span class="item">[[+article]]</span></div>
{/if}
это запрет вывода артикула на странице товара.
А исключить дочерние категории в списке — просто добавьте эти каталоги с минусом:
'parents' => '0,-29,-31'
но лучше вместо нуля вписать начальный каталог.
Maks
05 сентября 2023, 19:01
0
Вывожу таким образом рейтинг
{'ecThreadRating' | snippet : [
                      'tpl' => 'RatingTovar',                     
                      'thread' => 'resource' ~ $id,
                    ]}

Как в документации и получаю просто звезды пустые. Как будто голосов нет. При этом выше вызов
[[!ecThreadRating?
                    	&thread=`resource-[[+id]]`
                    	&tpl=`RatingTovar`
                    ]]


Показывает звезды там где есть голоса.
Константин
05 сентября 2023, 18:06
0
Ресурсы с id 29 и 31 — это категории товаров. На самих страницах товаров этих категорий нужно запретить вывод артикула и дочерних подкатегорий каталогов с id 29 и 31
Dan
Dan
05 сентября 2023, 17:57
0
т.е. у вас артикул выводится даже на странице ресурсов с id 29 и 31 и на их дочерних ресурсах?
Наумов Алексей
05 сентября 2023, 17:18
0
В базе удобно… администратор может видеть брошенные корзины.
А еще можно зайти под своей учеткой с разных устройств и видеть корзину же?..
Николай Савин
05 сентября 2023, 17:17
+4
Не вижу ни одной причины за эту идею.
В то время как хранение корзины в базе дает кучу преимуществ
1. Во-первых, это уже реализовано в ms2 и повторить реализацию можно тупо быстрее.
2. Во-вторых, менеджеры могут просматривать какие заказы сейчас находятся на стадии оформления, какие брошены и брать контактные данные, если хоть какие-то остались. В общем полный функционал брошенных корзин
3. Сам покупатель не привязан к клиенту. Начал оформлять заказ на телефоне (авторизованный), затем перешел за комп и сразу после авторизации видит свой заказ.
Павел Голубев
05 сентября 2023, 17:13
0
А почему всю корзину не хранить в LocalStorage? А при оформлении заказа прокидывать в процессор создающий заказ данные из LocalStorage. Там и событие есть на изменение, можно сразу все корзины офовлять по нему.
Наумов Алексей
05 сентября 2023, 15:10
0
1. нагенерируйте нужные превью, указав их в источнике файлов miniShop2
2. см. доки docs.modx.pro/components/easycomm/rating-in-pdoresources-and-msproducts
Сергей
05 сентября 2023, 14:44
0
Доброго времени суток! Вопрос по компоненту — amocrm.
у меня работает в режиме хука для Formit — ajaxform.
Проблема — не создается контакт в вмо, телефон пишется просто в доп полях, он приходит но контакта нет.
Создается на сколько я понял, только когда авторизован в modx.
Поковырял исходники. Там вроде как контакт создается на событие — OnUserFormSave (создание, обновление юзера).
Мне надо бы для анонимов сделать.
Артур Шевченко
05 сентября 2023, 13:57
+1
И ещё важно не забыть сделать метод генерации ключа товара в корзине публичным.
Maks
05 сентября 2023, 13:52
0
Во-первых избавляйтесь от phpthumbon.
Чем посоветуете заменить?

Если у вас выводится на странице много товаров — стоит попробовать вместо вызова ecThreadRating делать join таблицы чтобы получать рейтинг товара.
Если не трудно покажите как это сделать?
Наумов Алексей
05 сентября 2023, 12:13
+2
п. 3 и 4 в msProducts — ура))
Необязательная регистрация пользователя — тоже ура)
Константин
05 сентября 2023, 10:57
0
Да, именно на странице товара и не получается отключить вывод артикула.
Ни так:
{if $parent != 31 && $id != 31 && $parent != 29 && $id != 29}
Ни так:
{if $_modx->resource.parent != 31 && $_modx->resource.id != 31 && $_modx->resource.parent != 29 && $_modx->resource.id != 29}
Наумов Алексей
05 сентября 2023, 10:54
0
Ну у вас прям навороченный чанк…
Во-первых избавляйтесь от phpthumbon.
Во-вторых уберите встроенный синтаксис modX (с прямоугольными скобками который).
Если у вас выводится на странице много товаров — стоит попробовать вместо вызова ecThreadRating делать join таблицы чтобы получать рейтинг товара.

Два вызова msOptions тоже… может как-то упростить?
Maks
05 сентября 2023, 10:44
0
<div class="ms2_product col-6 col-sm-6 col-md-4 mb-3 px-2">
              <div class="product text-center">
                  {var $productimage = 'phpthumbon' | snippet : ['input' => $_pls['$thumb'],  'options' => 'h=200&f=jpg&bg=ffffff']}
                  {var $productimagewebp = 'phpthumbon' | snippet : ['input' => $_pls['$thumb'],  'options' => 'h=200&f=webp&bg=ffffff']}
 [[!addComparison?
  &list_id=`15`
  &id=`[[+id]]`
]]                                           
                <a href="{$uri}" class="clr3" title="{$_modx->resource.pagetitle} {$pagetitle}">
                 
                    <picture>
                        <source srcset="{$thumb}" type="image/webp">
                        <source srcset="{$thumb}" type="image/jpg">
                        <img src="{$thumb}" alt="{$_modx->resource.pagetitle} {$pagetitle}" title="{$_modx->resource.pagetitle} {$pagetitle}" class="lazy img-fluid">
                    </picture>

                    
 <div class="flags ">
                    {if $new?}
                        <span class="badge badge-secondarynew  badge-pill mr-md-1">{'ms2_frontend_new' | lexicon}</span>
                    {/if}
                    {if $popular?}
                        <span class="badge badge-secondarytop badge-pill mr-md-1">{'ms2_frontend_popular' | lexicon}</span>
                    {/if}
                    {if $favorite?}
                        <span class="badge badge-secondaryfav badge-pill mr-md-1"> {'ms2_frontend_favorite' | lexicon}</span>
                    {/if}
                    {if $sklad?}
                        <span class="badge badge-secondarysklad badge-pill mr-md-1"> {'ms2_frontend_sklad' | lexicon}</span>
                    {/if}                    
                </div>                      
                    
                </a>
                               
                <div class="product-info">
                  <p class="font-weight-bold text-uppercase h4">
                      <a href="{$uri}" class="clr3" title="{$_modx->resource.pagetitle} {$pagetitle}"> 
[[+titletovar:ifempty=`[[+pagetitle]]`]]                  
                      </a></p>
                    [[!ecThreadRating?
                    	&thread=`resource-[[+id]]`
                    	&tpl=`RatingTovar`
                    ]]  

                  	  {$_modx->runSnippet('msOptions', [
                		'product' => $id,
                		'options' => 'tags',
                		'tpl' => '@FILE chunks/catalog/ProductOptions.tpl',
                	  ])}                       
                  	  {$_modx->runSnippet('msOptions', [
                		'product' => $id,
                		'options' => 'brand,made_in,available',
                		'tpl' => '@FILE chunks/catalog/msOptionsTags.tpl',
                	  ])}
                
                    {if $old_price?}
                        <img src="assets/img/icons/promo-badge.svg" alt="Иконка Акции" width="40" height="40" loading="lazy" class="promobadge">
                        <span class="old_price ml-md-3"><del>{$old_price} {'ms2_frontend_currency' | lexicon}</del></span>
                    {/if}                  
                  <p class="price clr1 font-weight-bold">
                   [[+price:is=`0`:then=`[[*context_key:is=`web`:then=`Цена по запросу`:else=`Ціна за запитом`]] `:else=`{$price} {'ms2_frontend_currency' | lexicon}`]]  
                  </p>

        
                  <a href="{$uri}" class="product-link" title="{$_modx->resource.pagetitle} {$pagetitle}">{'ms2_frontend_add_to_cart' | lexicon}</a>
 

        
                </div>
              </div>
            </div>
Чанк