Топ на commerce

Главные вкладки

Аватар пользователя DDDDD099 DDDDD099 7 сентября 2011 в 10:30

Ребята как можно реализовать топ самых продаваемых товаров на коммерсе. Вьюс кручу - не получается - может кто делал.

Комментарии

Аватар пользователя falc0shka falc0shka 21 сентября 2012 в 12:51

В типе товара нужно добавить поле "счетчик продаж" (обычное число) по умолчанию 0
В рулсах изменить правило "после добавления товара в корзину" - добавить увеличение этого счетчика на 1
Выводить вьюсами с сортировкой по этому полю

Аватар пользователя inokoi inokoi 16 октября 2012 в 6:12

Есть решение ещё проще, при установке добавляется блок Shopping cart block, можно его клонировать и делать всё что вам нужно. сделать сортировку по Quantity к примеру.=)

Аватар пользователя inokoi inokoi 26 октября 2012 в 6:32

или сделать модуль
запрос:

<?php
function mymodule_db_select() {

  

$query db_select('commerce_line_item''cli');
  
$query->Join('commerce_order''co');
  
$query->Join('commerce_product''cp''cli.line_item_label = cp.product_id AND cli.order_id = co.order_id');
  
$query->addExpression('SUM(cli.quantity)''quantity');
  
$query->fields('cp', array('title'));
  
$query->groupBy('cp.title');
  
$query->condition('co.status', array('completed'), '=');
  
$query->orderBy('cli.quantity''DESC');
  
$query->range('0''8');

  return 

$query;
}
?>

вывод блоком:

<?php
function mymodule_block_info() {
  
$blocks['product'] = array('info' => t('Last'));
  return 
$blocks;
}

function 

mymodule_block_view($delta '') {
  
$block = array();

  if (

$delta == 'product') {
    
$block['subject'] = t('Popular sale product');
    
$block['content'] = mymodule_block_contents($delta);
  }

  return 

$block;
}

function 

mymodule_block_contents($which_block) {
  switch (
$which_block) {
  case 
'product':

    

$result mymodule_db_select();

    

$rows = array();
    foreach (
$result->execute()->fetchAllKeyed() as $key => $value) {
      
$rows[] = array($keynumber_format($value'0'',''0'));
    }
    
$header = array('Product''Quantity');

    

$output theme('table', array('header' => $header'rows' => $rows));
    return 
$output;
  }
}
?>