<?php
class ModelShopBasket {
// Получить список товаров в корзине
function getList(){
session_start();
// unset($GLOBALS['_SESSION']['basket']);
// Собираем Id-товаров в корзине
$recordsIds = array();
foreach($GLOBALS['_SESSION']['basket'] as $k => $v){
$recordsIds[] = $k;
}
// Получаем информацию о товарах
# $rows = ModelShopProduct::getByIds($recordsIds);
# $rowsWithKeyId = array();
# foreach($rows as $k => $v){
# $rowsWithKeyId[ $v['uid'] ] = $v;
# }
// Отправляем итоговый массив
# $listRows = array();
# foreach($GLOBALS['_SESSION']['basket'] as $k => $v){
#
# }
$rows = ModelShopProduct::getByIds($recordsIds);
$rowsMerge = array();
foreach($rows as $k => $v){
$v['CUSTOM_count'] = $GLOBALS['_SESSION']['basket'][$v['uid']]['count'];
$rowsMerge[] = $v;
}
return $rowsMerge;
# return $GLOBALS['_SESSION']['basket'];
}
// Получить кол-во товаров в корзине
function getCount(){
session_start();
$c = count($GLOBALS['_SESSION']['basket']);
return $c;
}
// Добавить 1 товар в корзину
// @ recordId
function add($recordId){
// Получаем информацию о товаре
$row = ModelShopProduct::getById($recordId);
$row = $row[0];
// Заносим в сессию и после данная информация пойдет в serialize-заказа (order)
session_start();
$GLOBALS['_SESSION']['basket'][$recordId]['count'] = 1;
// Всю данную информацию выбираем по Id-записи из БД
// $GLOBALS['_SESSION']['basket'][$recordId]['price'] = $row['price'];
// $GLOBALS['_SESSION']['basket'][$recordId]['uid'] = $recordId;
// $GLOBALS['_SESSION']['basket'][$recordId]['info']['title'] = $row['title'];
// $GLOBALS['_SESSION']['basket'][$recordId]['info']['article'] = $row['article'];
// $GLOBALS['_SESSION']['basket'][$recordId]['info']['pic'] = $row['pic'];
}
// Обновляем кол-во 1-ого товар в корзине
// @ recordId
function updateCountById($recordId, $count = 1){
session_start();
$GLOBALS['_SESSION']['basket'][$recordId]['count'] = $count;
}
// Удалить товар из корзины
// @ recordId
function delete($recordId){
session_start();
unset($GLOBALS['_SESSION']['basket'][$recordId]);
}
// Очистить всю корзину
// @ recordId
function clearAll($recordId){
session_start();
unset($GLOBALS['_SESSION']['basket']);
}
// Получить итоговую стоимость товаров в корзине
function getTotal(){
$row = self::getList(); // получаем содержимое корзины
$costSum = 0; // Итого
foreach($row as $k => $v){
$cost = $v['CUSTOM_count']*$v['price'];
$costSum += $cost;
}
return $costSum;
}
// Проверить наличие товара(товаров в корзине)
// @ recordId
function exists($recordId){
session_start();
if($GLOBALS['_SESSION']['basket'][$recordId]['count'] > 0){
return true;
} else {
return false;
}
}
}
?>