Последние купленные товары

#
Последние купленные товары
Здравствуйте. Подскажите, пожалуйста, как вывести последние купленные товары?
В 5 версии было так:
<?php
        $shop = & singleton('shop');
        $param = array();
        // Заполняем первое условие
        $element['type'] = 0;
        $element['prefix'] = ' and ';
        $element['name'] = 'shop_items_catalog_date_time';
        $element['if'] = '>';
        $DateClass = new DateClass();
        // Вместо 30 подставить нужное число дней
        $time = time() - 60 * 60 * 24 * 30;
        $element['value'] = $DateClass->DateUnixToSQL($time);
        $element['sufix'] = '';
        $param['select'][] = $element;
        $param['current_group_id'] = false;
        $param['items_begin'] = 0;
        $param['items_on_page'] = 4;
        $param['items_order'] = 'rand';
        $param['xml_show_group_type'] = 'all';
        $shop->ShowShop(3, 'XSLШАБЛОН', $param);
        ?>


И еще хотел узнать, как в коде вывода Новинок задать временной промежуток, за который отбирать Новинки?
<?php
        // НОВИНКИ
      if (Core::moduleIsActive('shop'))
      {
         $Shop_Controller_Show = new Shop_Controller_Show(
            Core_Entity::factory('Shop', 1)
         );
         $Shop_Controller_Show
            ->xsl(
               Core_Entity::factory('Xsl')->getByName('Новинки')
            )
            ->groupsMode('none')
           //->itemsForbiddenTags(array('text'))
            ->group(FALSE)
            ->limit(1);
         $Shop_Controller_Show
            ->shopItems()
            ->queryBuilder()
            ->join('shop_item_discounts', 'shop_item_discounts.shop_item_id', '=', 'shop_items.id')
            ->join('shop_discounts', 'shop_discounts.id', '=', 'shop_item_discounts.shop_discount_id')
            ->where('shop_discounts.active', '=', 1)
            ->where('shop_discounts.start_datetime', '<', Core_Date::timestamp2sql(time()))
            ->where('shop_discounts.end_datetime', '>', Core_Date::timestamp2sql(time()))
            ->where('shop_discounts.deleted', '=', 0)
            ->clearOrderBy()
            ->orderBy('RAND()');
         $Shop_Controller_Show->show();
              }
              ?>
Bigon
Модератор
#
Re: Последние купленные товары
Bigon,
Ваш первый пример орт пятой версии выводит вовсе не последние купленные товары, а товары, добавленные за последние N дней. Примеры ограничений через QueryBuilder очень много на http://www.hostcms.ru/forums/2/7122/
#
Re: Последние купленные товары
HostCMS писал(а):
Ваш первый пример орт пятой версии выводит вовсе не последние купленные товары, а товары, добавленные за последние N дней. Примеры ограничений через QueryBuilder очень много на http://www.hostcms.ru/forums/2/7122/


Ошибся. Вот этот код  
<?php
$param = array();
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_items_catalog_table.shop_shops_id';
$element['prefix'] = " AND
shop_items_catalog_table.shop_items_catalog_item_id =
shop_order_items_table.shop_items_catalog_item_id
AND
shop_order_items_table.shop_order_id=
shop_order_table.shop_order_id
AND
shop_order_table.shop_order_status_of_pay = 1 AND ";
$element['if'] = '='; // Условие
$element['value'] = '3';  
$param['sql_group_by'] = ' GROUP BY shop_order_items_table.shop_items_catalog_item_id';
$element['sufix'] = '';
$param['select'][] = $element;
$param['items_field_order'] = 'COUNT(shop_order_items_table.shop_items_catalog_item_id )';
$param['items_order'] = 'RAND';
$param['current_group_id'] = false;
$param['items_begin'] = 0;
$param['items_on_page'] = 4;
$param['sql_from'] = " ,shop_order_items_table, shop_order_table";
$shop = new shop();
$shop->ShowShop(3, 'Шаблон', $param);
?>
Bigon
Модератор
#
Re: Последние купленные товары
Bigon,
Просто по аналогии переписать на API-6
#
Re: Последние купленные товары
Спасибо. Попробую разобраться с API 6
Bigon
Модератор
#
Re: Последние купленные товары
Bigon,
Пожалуйста. Если напишите пример и он не заработает, покажите здесь код и текст ошибки.
Авторизация