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

Александр Туниеков
22 декабря 2023, 22:42
+1
Или в index.php 'msProductData' вместо массива строка
'msProductData' => "require_once 'msproductdata.map.inc.php'",
Александр Туниеков
22 декабря 2023, 22:09
+1
Какой то не правильный плагин в папке core/components/minishop2/plugins/. Там плагины для расширения полей базы данных минишопа в виде index.php например
<?php
return array(
    'map' => array(
        'msProductData' => require_once 'msproductdata.map.inc.php',
    ),
    'manager' => array(
        'msProductData' => MODX_ASSETS_URL . 'components/minishop2/plugins/myplugin/msproductdata.js',
    ),
);
и msproductdata.map.inc.php
<?php
return array(
    'fields' => array (
		'avaible' => 1,
		'europrice' => 0.0
	  ),
    'fieldMeta' => array (
		'avaible' => 
		array (
		  'dbtype' => 'varchar',
		  'precision' => '50',
		  'phptype' => 'integer',
		  'null' => true,
		),
		'europrice' => 
		array (
		  'dbtype' => 'decimal',
		  'precision' => '12,2',
		  'phptype' => 'float',
		  'null' => true,
		  'default' => 0.0,
		),
    )
    ,'indexes' => array(
.....
наверно index.php присутствует, а файл определенный в строке ниже отсутствует

'map' => array(
        'msProductData' => require_once 'msproductdata.map.inc.php',
то есть для msProductData отсутствует файл msproductdata.map.inc.php.

Возможно в этом причина. Код брал со страницы Плагин товара для miniShop2 MODx Revo
adminixi
22 декабря 2023, 17:23
0
joxi.ru/ZrJ6WPDce33KZr
foreach ($map as $key => $values)
public function loadMap()
    {
        if (method_exists($this->pdoTools, 'makePlaceholders')) {
            $plugins = $this->loadPlugins();
            foreach ($plugins as $plugin) {
                // For legacy plugins
                if (isset($plugin['xpdo_meta_map']) && is_array($plugin['xpdo_meta_map'])) {
                    $plugin['map'] = $plugin['xpdo_meta_map'];
                }
                if (isset($plugin['map']) && is_array($plugin['map'])) {
                    foreach ($plugin['map'] as $class => $map) {
                        if (!isset($this->modx->map[$class])) {
                            $this->modx->loadClass($class, $this->config['modelPath'] . 'minishop2/');
                        }
                        if (isset($this->modx->map[$class])) {
                        foreach ($map as $key => $values) 
                                $this->modx->map[$class][$key] = array_merge($this->modx->map[$class][$key], $values);
                            }
                        }
                    }
                }
            }
        } else {
            $this->modx->log(modX::LOG_LEVEL_ERROR, 'pdoTools not installed, metadata for miniShop2 objects not loaded');
        }
    }
adminixi
22 декабря 2023, 17:18
0
Спасибо за наводку, посмотрю там.
adminixi
22 декабря 2023, 17:17
0
Поняла, спасибо!
Николай Савин
22 декабря 2023, 15:33
1
+5
Мнение человека, который зарегистрировался 18 минут назад нам бесспорно очень важно и однозначно поможет отложить основную работу, забить на семью и личное время и бежать писать код.

Если ты не против, я все таки буду делать то, что считаю нужным, в том порядке как мне кажется правильным.
Антон
22 декабря 2023, 15:19
-2
Чет меня бомбануло.
Сделав это, я могу продолжать работу над MiniShop3....
Ребят, я может вам открою глаза, но вы занимаетесь ерундой, под видом сделать все правильно, надежно, элегантно (А это все равно не получится), просто тормозите все развитие modx на русскоязычком рынке. Как и разработчики самого modx в свое время.

Хватит страдать фигней, выпустите уже то, что есть на 3 версию, чтобы проект дальше жил. Сколько уже пилите год, два. Да блин стыдно уже смотреть на этого умирающего лебедя. Сколько нужно реально времени, чтобы это написать программистам вашего уровня? пару недель? Месяц? Вы все равно не сохраните зависимость от модулей и все надо будет писать с нуля.

Без обид, просто подумайте.
Серый
22 декабря 2023, 13:40
+1
Так круто на профильном форуме спустя 2 года самому себе написать ответ на свой вопрос! Классика…
Всё дело было в том, что tplWrapper был @INLINE. Сделал отдельный чанк, и там [[+total]] нормально отдает реальную цифру, написал вот такое и стало мне счастье:
<div class="concert-list-item">
    <h4>
        Soloist[[+total:isnot=`1`:then=`s`:else=``]]:
    </h4>
    [[+output]]
</div>
Николай Савин
21 декабря 2023, 22:39
+1
Это предупреждение связано с работой опций. Смотрите что у вас с ними. Есть ли они, Может некорректно созданы. Может вызов где то в шаблоне некорректный
Александр Туниеков
21 декабря 2023, 04:17
+1
Это предупреждение наверно не из этого чанка галереи. Во первых стоит проверка {if $files?} во вторых если ругается на второй вызов {foreach $files as $file}, то должно ругаться и на первый вызов {foreach $files as $file}.
И, самое главное, в третьих ругается в файле /public_html/core/components/minishop2/model/minishop2/minishop2.class.php на строке 630. То есть чанк вообще не при чем. Посмотрите что есть там у вас в файле minishop2.class.php на строке 630
Артур Шевченко
20 декабря 2023, 23:25
+1
Это не ошибка, ошибка это ERROR, это предупреждение и на него можно просто забить, или отключить их показ в системных настройках.
Михаил
20 декабря 2023, 23:20
0
Привет. Отличный модуль. Подскажи, пожалуйста, каким образом можно ограничить количество выводимых в фид товаров? ВК поддерживает формат Yandex YML, но ограничивает количество товаров на импорт в 15 тыс. Если больше — полностью обрубает импорт.
Андрей Шевяков
20 декабря 2023, 20:22
0
Кстати, в магазине modstore есть 2 дополнения, которые работают с google и отправляют данные средствами php.
А каких 2? Только это находил msEcommerce
Наумов Алексей
20 декабря 2023, 20:18
0
Верно всё, я про эту особенность написал в тексте.
Пока у меня нет других идей, добавлять серверную часть я не хотел.
В общем это первая версия скрипта, может кто применит, появится больше опыта и наработок, скрипт станет лучше)

Кстати, в магазине modstore есть 2 дополнения, которые работают с google и отправляют данные средствами php.
Андрей Шевяков
20 декабря 2023, 17:14
0
На одном сайте при подключении пошли по такому пути:
В целом мы можем просто в нужных местах сайта добавлять такие вставки кода (это пример от Яндекса):

Скрипт для действия покупки располагается на странице успешного заказа в чанке tpl.msGetOrder. И мы столкнулись с проблемой, что если клиент совершает заказ без оплаты (у нас есть такой вариант, после подтверждения от менеджера), то все ок, но если клиент уходит на оплату, то некоторые, после оплаты просто не возвращаются на сайт и поэтому не видят страницу успешной оплаты и отсюда минус, что эти данные в коммерцию метрики не уходят.

Пока еще не исправляли этот момент, но в теории данные должны отправляться в момент успешного оформления заказа, до перехода клиента на оплату. С вашим скриптом в таком случае видимо тоже не отработает скрипт. Вот если это как то сможете настроить, было бы супер!
Роман
20 декабря 2023, 10:40
0
Они отрабатывают, в
1) случае приходит и письмо и амо заявка и юнисендер,
2),3) не отрабатывает именно почта
Наумов Алексей
20 декабря 2023, 10:35
+1
Хук должен вернуть true, в хуке не должно быть иного вывода. Иначе исполнение прочих хуков приостанавливается. Посмотрите, что у вас в amocrm и unisender
Роман
20 декабря 2023, 10:01
0
Я это предполагал, но все отрабатывает, а именно на почту отправляет только в последовательности 1)
И странно, что хуки не независмы, с этой целью же и делает сохранение формы например. Чтобы если почта не прошла, то форма точно сохранилась. А тут получается где-то отвалилось и все отвалилось :(
Володя
20 декабря 2023, 09:58
+1
Доброе утро.
Насколько я помню хук должен возвращать true. Если предыдущий хук не возвратил true то последующие не выполняются. Возможно я ошибаюсь, давно с FormIt не работал.