Александр

Александр

Был в сети 03 февраля 2025, 17:16
Заказы принимаю
обновитесь до последней версии minishop2
Fixed default path to loading services in the loadCustomClasses() method.
Update the cost of an orders after product addition.
Improved processing of products options.
Removed call of ms2Gallery::syncFiles() from msProductData::updateProductImage().
[mgr] Add contexts list into filters at the orders page.
[mgr] Fixed possible error on get orders statuses list.
[mgr] Fix «xcheckbox» in a Product options.
[mgr] Add «expand,collapse,check,uncheck» actions to the categories and options trees.
При изменении статуса — письмо должно само отправляться.
Этот параметр задается в настройке статуса.
Письмо покупателю
При изменении доставки — статус остается, соответственно письмо покупателю не уходит.
События на обновление полей нет. Остается только вариант сделать отдельный статус «изменен» (например) и при изменении доставки — менять статус. (смена статуса спровоцирует отправку письма клиенту)
документацию прочитать…

Или вы можете обновить сразу все картинки специальным скриптом:
<?php
define('MODX_API_MODE', true);
require 'index.php'; // Этот файл лежит в корне сайта

$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');

// Проходимся по всем товарам
$products = $modx->getIterator('msProduct', array('class_key' => 'msProduct'));
foreach ($products as $product) {
    // Получаем оригиналы их картинок
    $files = $product->getMany('Files', array('parent' => 0));
    foreach ($files as $file) {
        // Затем получаем их преью
        $children = $file->getMany('Children');
        foreach ($children as $child) {
            // Удаляем эти превью, вместе с файлами
            $child->remove();
        }
        // И генерируем новые
        $file->generateThumbnails();

        // Если это первый файл в галерее - обновляем ссылку на превью товара
        /** @var msProductData $data */
        if ($file->get('rank') == 0 && $data = $product->getOne('Data')) {
            $thumb = $file->getFirstThumbnail();
            $data->set('thumb', $thumb['url']);
            $data->save();
        }
    }
}

echo microtime(true) - $modx->startTime;
Скорее всего картинки генерировались после части залитых товаров. Всмысле, часть товаров заливались с одними настройками в медиаресурсе, другая часть — с другими настройками.
надо:
а) или перегенерировать все картинки скриптом через консоль
б) перегенерировать картинки в тех товарах, в которых непоказываются

2ая возможная проблема если совет выше непоможет:
Скорее всего непоказываются те, у которых пропорции несоответсвуют параметрам.
В настройках укажите еще и ширину:
{«w»: ширина,«h»: высота,«q»:70,«zc»:«1»,«bg»:«ffffff»}
при zc (zoomcrop) картинка будет обрезаться до нужной
После изменения настроек — также перегенерировать превью