Каждый отдельный ТВ-параметр нужно приджойнить отдельно: Выборка ресурсов с TV-параметрами

Всем привет. Ситуация такая, есть несколько ресурсов, пытаюсь сделать выборку по ТВ-параметрам, нужно выбирать так что бы по заданным ТВ было точное совпадение SQL запрос SELECT * FROM modx_site_content AS modResource JOIN modx_site_tmplvar_contentvalues TemplateVarResources ON modResource.id = TemplateVarResources.contentid JOIN modx_site_tmplvars tv ON tv.id=TemplateVarResources.tmplvarid WHERE ( ( modResource.deleted = 0 AND modResource.hidemenu = 0 AND modResource.published = 1 ) AND ( ( tv.name = 'item_country' AND TemplateVarResources.value = '1' ) AND ( tv.name = 'item_color' AND TemplateVarResources.value = '2' ) ) ) xPDO function prepareQueryBeforeCount(xPDOQuery $c){ $c = parent::prepareQueryBeforeCount($c);

    //$filter = $this->prepareFilterCriteria($this->getProperty('filter'));

    $filter = array(
        array(
            'tv.name'   => 'item_country',
            "TemplateVarResources.value"    => 1
        ),
        array(
            'tv.name'   => 'item_color',
            "TemplateVarResources.value"    => 2
        )
    );

    if ($filter){

        $c->innerJoin('modTemplateVarResource', 'TemplateVarResources');
        $c->innerJoin('modTemplateVar', 'tv', "tv.id=TemplateVarResources.tmplvarid");

        $c->where($filter);
    }

    return $c;
} подскажите пожалуйста где я ошибаюсь

Здравствуйте! Николай, возможность добавить товар и удалить заказ в данный момент есть в сборке?

Добрый день! Появилась необходимость добавить еще 1 поле в заказ. Поле называется OPLATA. Поле будет служить для определения способа оплаты (наличными, платежной картой visa/mastercard) При оформлении заказа клиент будет выбирать способ оплаты и после принятия заказа менеджером в управлении заказами будет кнопка «оплатить» (если выбрана он-лайн оплата). Что я сделал: Добавил в таблицу modx_shopmodx_orders поле oplata varchar(4). Файл shopmodxorder.map.inc.php: 'oplata' => 'opl',

'oplata' => array ( 'dbtype' => 'text', 'precision' => '100', 'phptype' => 'string', 'null' => false, 'default' => 'opl' ), Файл object.class.php protected function prepareObject(& $object){ $oplata = $OrderProduct->oplata;

    $object->fromArray(array(
        "positions" => $positions,
        "total" => $quantity,
        "quantity" => $quantity,
        "sum" => $sum,
"oplata" =>$oplata,
    "paysystem_name" => $oplata,
        "discount" => $object->discount,
        "original_sum" => $original_sum,
        "products_ids" => $products_ids,
    )); Как бы все работает.

Данные в таблицу пишутся, данные получить могу. Но в логах появляются не красивые записи: [2016-08-14 20:46:16] (ERROR @ /index.php) ShopmodxOrder: Attempt to set NOT NULL field oplata to NULL Такая запись появляется при обновлении главной страницы с пустой корзиной… Никак не могу понять где формируется запрос который потом так ругается. Подскажите какой файл посмотреть?

Спасибо! То что надо!

Все, сделал. В common.js дописал if(action == 'order/submit'){ setTimeout(function(){ window.location.replace('/'); }, 1000 // Интервал в милисекундах ) }

Денис, добрый день! Да, есть у нас ошибка во фронте, не туда запрос идет. Лечение: немного подправить файл core/components/shopmodx/processors/shopmodx/public/action.class.php, вот ревизия (у вас на сайте поправил).

Добрый день! Столкнулся с проблемой — новый пользователь не может залогинится. При попытке сделать вход — получается сообщение Действие не существует или не может быть выполнено Как лечить?

Добрый день! Выслал данные в личку.