Константин

Константин

С нами с 24 апреля 2017; Место в рейтинге пользователей: #1041
Немыкин Андрей
01 декабря 2018, 21:59
1
0
Все. Отбой. Решил. Ситуация получилась следующая:
1. Перенес сайт на новый домен и совсем забыл про обновление ключей к modstore.
2. В панике удалил и снова создал поставщика.
3. В этот момент ссылка на поставщика в пакетах и сбилась — приняло значение 2.

решение:
Выбираю пакет установленный с modstore — «Показать детали» — «Поставщик» меняю значение «2» на строку Modstore.

Все. Извините за беспокойство.
Алексей Суслов
03 марта 2018, 13:08
3
0
В общем пришлось пока временно сделать так:
в файле core/components/minishop2/model/minishop2/msproductdata.class.php
меняем строку:
$c->leftJoin('msOption', 'msOption', 'msProductOption.key=msOption.key');
на:
$c->rightJoin('msOption', 'msOption', 'msProductOption.key=msOption.key');
Это вроде помогло, по крайней мере с тегами, цветом и размерами — они перестали менять порядок сортировки при каждом сохранении товара. Но возможно такой фикс как-то повлияет на опции товара, так что на свой страх и риск.
Дмитрий Суворов
19 декабря 2016, 22:01
1
+1
Тут в TV содержится инфа о наличии. 1 — да, 0 — нет.

<?php
if( $modx->event->name == 'msOnCreateOrder' )
{
    $idsProd = array();
    $order = $modx->getOption('msOrder', $scriptProperties);
    if (!is_object($order)) {
        return;
    }
    foreach ($order->getMany('Products') as $orderProduct) {
        $idsProd[] = $orderProduct->get('product_id');
    }
    
    foreach ($idsProd as $idRes) {
        $res = $modx->getObject('modResource', $idRes);
        $res->setTVValue('ostatok', 0);
        $res->save();
    }
}

После совершения заказа всем товарам, которые были заказаны — выставится в TV «ostatok» 0