static function onGetRateTypes()
{
$scale = array(0.5, 1, 1.5, 2, 5);
$format = array(
'SUM' => function ($value, $format = null)
{
return Utils::formatToBaseCurrency($value, $format);
},
);
$units = array('SUM' => Utils::getBaseCurrencyUnit()); // TODO deprecated
return array(
'sale_payment' => array(
'NAME' => Loc::getMessage('SALE_CONVERSION_RATE_PAYMENT_NAME'),
'SCALE' => $scale,
'FORMAT' => $format,
'UNITS' => $units,
'MODULE' => 'sale',
'SORT' => 1100,
'COUNTERS' => array('conversion_visit_day', 'sale_payment_add_day', 'sale_payment_add', 'sale_payment_add_cmpfb', 'sale_payment_sum_add'),
'CALCULATE' => function (array $counters)
{
$denominator = $counters['conversion_visit_day'] ?: 0;
$numerator = $counters['sale_payment_add_day'] ?: 0;
$quantity = $counters['sale_payment_add']+$counters['sale_payment_add_cmpfb'] ?: 0;
$sum = $counters['sale_payment_sum_add'] ?: 0;
return array(
'DENOMINATOR' => $denominator,
'NUMERATOR' => $numerator,
'QUANTITY' => $quantity,
'RATE' => $denominator ? $numerator / $denominator : 0,
'SUM' => $sum,
);
},
),
'sale_order' => array(
'NAME' => Loc::getMessage('SALE_CONVERSION_RATE_ORDER_NAME'),
'SCALE' => $scale,
'FORMAT' => $format,
'UNITS' => $units,
'MODULE' => 'sale',
'SORT' => 1200,
'COUNTERS' => array('conversion_visit_day', 'sale_order_add_day', 'sale_order_add', 'sale_order_add_cmpfb', 'sale_order_sum_add'),
'CALCULATE' => function (array $counters)
{
$denominator = $counters['conversion_visit_day'] ?: 0;
$numerator = $counters['sale_order_add_day'] ?: 0;
$quantity = $counters['sale_order_add']+$counters['sale_order_add_cmpfb'] ?: 0;
$sum = $counters['sale_order_sum_add'] ?: 0;
return array(
'DENOMINATOR' => $denominator,
'NUMERATOR' => $numerator,
'QUANTITY' => $quantity,
'RATE' => $denominator ? $numerator / $denominator : 0,
'SUM' => $sum,
);
},
),
'sale_cart' => array(
'NAME' => Loc::getMessage('SALE_CONVERSION_RATE_CART_NAME'),
'SCALE' => $scale,
'FORMAT' => $format,
'UNITS' => $units,
'MODULE' => 'sale',
'SORT' => 1300,
'COUNTERS' => array('conversion_visit_day', 'sale_cart_add_day', 'sale_cart_add', 'sale_cart_add_cmpfb', 'sale_cart_sum_add'),
'CALCULATE' => function (array $counters)
{
$denominator = $counters['conversion_visit_day'] ?: 0;
$numerator = $counters['sale_cart_add_day'] ?: 0;
$quantity = $counters['sale_cart_add']+$counters['sale_cart_add_cmpfb'] ?: 0;
$sum = $counters['sale_cart_sum_add'] ?: 0;
return array(
'DENOMINATOR' => $denominator,
'NUMERATOR' => $numerator,
'QUANTITY' => $quantity,
'RATE' => $denominator ? $numerator / $denominator : 0,
'SUM' => $sum,
);
},
),
);
}