Всего 123 803 комментария

vectorserver
05 октября 2022, 13:25
0
Тебе дали 100500, подсказок, разжевали как могли!
Изучай документацию, и методы работы с компонентом minishop, если не понимаешь что к чему, пиши в раздел modx.pro/work
Евгений
05 октября 2022, 13:01
0
ага, понятно
но оба варианта не работают
$where = $modx->toJSON(array($filter));
заменить на 
$where = $modx->toJSON($filter);
Maks
05 октября 2022, 12:30
0
Я одного не могу понять почему из обычного тв в поле price все прописывается а в поле Список с автодополнением ничего записываться не хочет.

Может за деньги поможете?
Константин Ильин
05 октября 2022, 12:28
0
Ну это уже совсем. Программированию вас никто учить не будет. Включите голову, как присваиваются переменные. Вам уже все дали, как получить из ТВ, засунуть ее в переменную, как обновлять товар и его опции, осталось чуть подумать собрать все вместе, удалить ненужное.
Maks
05 октября 2022, 12:26
-1
У вас же заданы конкретные значения для опций, мне же надо эти самые опции вытаянуть из дополнительных полей.
Роман
05 октября 2022, 12:26
+1
/test?sortby=pagetitle&sortdir=asc
/test?sortby=pagetitle&sortdir=desc
/test?sortby=price&sortdir=asc
/test?sortby=price&sortdir=desc
Maks
05 октября 2022, 12:21
-1
$productArray['options-available'] = 1; как сюда добавить тв с которого данные вытянуть необходио?
Евгений
05 октября 2022, 12:19
0
как определил что сортировка работает? вижу что не выгружаются блоки с ресурсами
Константин Ильин
05 октября 2022, 11:59
0
Так я вам и дал код который туда вставить, в цикл, внимательно смотрите.
Maks
05 октября 2022, 11:57
-2
<?php
$query = $modx->newQuery('msProduct');
$query->select(['msProduct.*']);
$query->where(['class_key' => 'msProduct']);
$query->limit(0);
$resources = $modx->getIterator('modResource',$query);
foreach ($resources as $resource) {
      $tv_available = $resource->getTVValue('30');
        $resource->set('available',$tv_available);
        $resource->save();
}
А сюда нельзя добавить запись именно в поля такие как Список с автодополнением?

Пользуюсь поиском видимо не так ищу. Подскажите пожалуйста, уже голова отваливается никак не могу разобраться.
vectorserver
05 октября 2022, 11:45
0
Тогда иди в miniShop2 :: Настройки (скрин), создавай доп. опции, потом вызывай из через метод $product->loadData()->get('options') (пример кода ниже)



Пример:
<?php
$debug = 1;
$array_ids = $modx->getChildIds(8,6,array('context' => 'web'));

foreach ($array_ids as $doc_ID){
    /* @var msProduct $product */
    $product = $modx->getObject('msProduct',$doc_ID);
    if($product){

        //tv price
        $tv_price = $product->getTVValue('price');
        //tv available
        $tv_available = $product->getTVValue('available');



        //msProduct price
        $product->set('price',$tv_price);

        //Дополнительные опции товара
        $options = $product->loadData()->get('options');
        //Добавим значение в доп. опцию товара
        $options['available'][0] = $tv_available;
        //Обновим опции
        $product->set('options', $options);
        //Save
        $product->save();

        //debug
        if($debug){

            var_dump($product->toArray());
            break;
        }



    }

}
Константин Ильин
05 октября 2022, 11:43
0
Совсем вы не хотите гуглить.
Есть процессоры, один минус они медленные. Если товаров очень много(примерно >1000) то это будет долго или выйдет за лимит выполнения скрипта.
.....
foreach ($resources as $resource) {
    // Эти строки не трогайте
    $arr = $resource->toArray();
    $productArray['context_key'] = 'web';
    $productArray['class_key'] = 'msProduct';
    $productArray['alias'] = $arr['alias'];
    $productArray['id'] = $arr['id'];
    
    // Эти строки настраивайте как вам надо
    $productArray['options-cvet'] = ['белый' , 'кофе', 'серый'];
    $productArray['options-available'] = 1;
    $productArray['price'] = 99999;
    $productArray['tags'] =  ['большие' , 'маленькие'];
    
    // Это процессор обновления товара
    $response = $modx->runProcessor('resource/update', $productArray);
}
Maks
05 октября 2022, 10:59
0
Здесь проблема именно с записью в поля такие как Tags Color и остальные того же типа ввода. Если поле просто текст то проблем с записью нет никаких.

Никто не подскажет как сделать запись именно в такие поля?
Артур Шевченко
05 октября 2022, 10:58
0
Я думаю, что там адреса привязывались к пользователю, поэтому компонент будет работать.
Максим
05 октября 2022, 10:31
0
Помнится, видел даже готовое дополнение, которое позволяло создавать несколько адресов доставки из личного кабинета и при заказе выбирать… Эта функция достаточно удобная, сам пользуюсь на всяких ДодоПиццах ))
Maks
05 октября 2022, 10:25
0
Да но только не одной опцией все ограничивается. Есть и другие опции. Может кто подскажет как опции сюда прикрутить?
Aleksandr Huz
05 октября 2022, 09:41
+5
Добрый день!
В ТП вижу ваше сообщение в 21:02 (04.10). Когда мне нужно было отвечать, ночью?
Или может вы еще где-то писали в ТП и я не заметил. В любом случаи ответил вам в ТП.
Роман
05 октября 2022, 08:57
0
Версию php поменяйте на 7.4, скорее всего из-за этого.