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

Артур Шевченко
11 сентября 2023, 21:41
0
Скрипт был рассчитан на импорт товаров на пустой сайт, поэтому опции и категории создаются автоматически. Если опции уже есть на сайте, то param должны иметь такие же имена как и ключи у опций на сайте. Если param имеют другие имена, то надо модифицировать скрипт, а именно метод importProducts.

Не знаю кто пустил слух, что товары импортируются по feed_id, на самом деле они импортируются по pagetitle, по feed_id определяется родитель. Чтобы сделать импорт товаров по sku, а импорт категорий по pagetitle, надо модифицировать функцию manageResource.
Дмитрий
11 сентября 2023, 20:16
0
Привет, Артур! Спасибо тебе за твои труды. Есть вопрос по п.3: Импорт опций товаров из тэгов «param» (опции создаются автоматически). Правильно ли я понимаю, чтобы сопоставить уже созданные опции на своём сайте с param из xml, нужно переименовывать param'ы в файле xml? или это можно сделать через importconfig.inc.php? Если в будущем добавлять новые товары из того же xml, то придется каждый раз переименовывать все param?

И второй вопрос: тут уже задавался про обновление по id из фида, но я бы хотел обновлять товары не по id, а по vendorCode, для этого у меня в каждом товаре создано дополнительное поле sku. Как можно поменять обновление по этому ключу?
Дмитрий
11 сентября 2023, 14:02
0
столкнулся с такой же проблемой( нашли решение?
diskoden
11 сентября 2023, 10:35
0
Найден по пути: ../manager/assets/components/ckeditor/ckeditor/config.js
Артур Шевченко
10 сентября 2023, 23:03
0
А так
(function(miniShop2, $){      
        miniShop2.Message = FetchIt.Message;
    })(miniShop2, jQuery);
Дмитрий
10 сентября 2023, 20:06
0
добавил скрипт, выдает ошибку — Uncaught SyntaxError: Function statements require a function name
Алексей Смирнов
10 сентября 2023, 17:08
0
Значит у вас версия минишопа не 4ка, походу.
для передачи параметров можно использовать плейсхолдеры:
{set $allpara = $_modx->getChildIds(31,4,['template' => 3])}
{set $allpara2 = $_modx->getChildIds(29,4,['template' => 3])}

{foreach $allpara2 as $nyam}
  {set $allpara[] = $nyam}
{/foreach}
setPlaceholder('utochka', $allpara); // посмотрите в доке синтаксис.
и уже в tpl вызывайте так:
{if $parent not in list ('utochka' | placeholder)}
  <div class="reward"><span>Артикул:</span> <span class="item">{$article}</span></div>
{else}
{/if}
Дмитрий
10 сентября 2023, 13:34
0
У кого-нибудь работает этот плагин с minishop2 версии 3.x?
Дмитрий
10 сентября 2023, 13:33
0
Данный компонент не работает с minishop2 версий 3.x? После обновления пропали пункты выдачи в корзине(
Евгений
10 сентября 2023, 12:54
0
а как это можно записат ьв чанке?
номер выводится как
[[+idx]]
Константин
10 сентября 2023, 08:09
0
Спасибо, пробую, немного не понял, что все таки указывать в parents, потыкал всяко, пробую так, в шаблоне каталога:
{set $allpara = $_modx->getChildIds(31,4,['template' => 3])}
{set $allpara2 = $_modx->getChildIds(29,4,['template' => 3])}

{foreach $allpara2 as $nyam}
  {set $allpara[] = $nyam}
{/foreach}
{'msProduct' | snippet : [
  'parents' => 31,29,
  'forarticle' => $allpara
]}
В чанке:
{if $parent not in list $allpara}
  <div class="reward"><span>Артикул:</span> <span class="item">{$article}</span></div>
{else}

{/if}
Что то не то похоже делаю.
Артур Шевченко
10 сентября 2023, 00:18
0
Хитрец, это с меня был бы рубль, если б я не угадал, а с тебя 1000 на новый минишоп)))
Артур Шевченко
09 сентября 2023, 23:58
0
pdoResources выставлять плейсхолдер total. Соответственно ты можешь рассчитать порядковый номер от последнего к первому вот так
$total - ($idx - 1)
Евгений
09 сентября 2023, 23:20
0
[[pdoResources? &tpl=`books` &parents=`4` &includeTVs=`rtp,image` &sortby = `{"rtp":"DESC"}` &tvFilters=`volatility==%low%`]]
например такое, порядковые номера не прокатят никак так как списки не фиксированы
Артур Шевченко
09 сентября 2023, 23:10
0
Порядковый. Хотя если кроме сортировки, есть фильтрация, то такой вариант не сработает. Вообще очень мало данных. Что за сортировка? Где? Как?
Алексей Смирнов
09 сентября 2023, 22:22
0
Ну я вам и давал решение на странице товара.
А если у вас артикулы в списках товаров, то тут чтобы не делать запросы для каждого товара, необходимо в сниппет заранее передать данные по родителям. тут придется написать маленький модификатор для array_merge И передать данные в msProduct (или какой вы сниппет используете?)
1. до сниппета нужно получить все тоже:
{set $allpara = $_modx->getChildIds(31,4,['template' => 3])}
{set $allpara2 = $_modx->getChildIds(29,4,['template' => 3])}
потом нам нужно эти 2 массива склеить через array_megre. Но обьяснять как делать этот модификатор — лень.
Возьмем сделаем чуток вычурно, зато понятно:
{foreach $allpara2 as $nyam}
  {set $allpara[] = $nyam}
{/foreach}
{'msProduct' | snippet : [
  'parents' => $catalog, // $catalog - не 0, а id каталога. не нужно сюда писать ноль!
  'forarticle' => $allpara
]}
И далее в шаблоне tpl
указываем так:

{if $parent not in list $allpara}
показать Артикул
{else}
скрыть art
{/if}
Константин
09 сентября 2023, 20:15
0
Спасибо, отлично работает на странице товара, но в каталоге в листинге отказывается. Вывожу так:
{set $allpara = $_modx->getChildIds(31,4,['template' => 3])}
{set $allpara2 = $_modx->getChildIds(29,4,['template' => 3])}
{if (($_modx->resource.parent in list $allpara) || ($_modx->resource.parent in list $allpara2))}

{else}
  <div class="reward"><span>Артикул:</span> <span class="item">{$article}</span></div>
{/if}
Пробовал из условия убрать id шаблона, но все равно выводит артикул.
Алексей
09 сентября 2023, 18:20
0
Да, с меня рубль :-)