File: //home/temp/yarusvl.ru/ajax/cart_ajax.php
<?php
if(!empty($_SERVER['HTTP_USER_AGENT'])){
session_name(md5($_SERVER['HTTP_USER_AGENT']));
}
session_start();
require_once('../api/Mgc.php');
define('IS_CLIENT', true);
$mgc = new Mgc();
/*Определяем пользователя*/
if(isset($_SESSION['user_id']) && $user = $mgc->users->get_user(intval($_SESSION['user_id']))) {
$mgc->design->assign('user', $user);
}
$action = $mgc->request->get('action');
$variant_id = $mgc->request->get('variant_id', 'integer');
$amount = $mgc->request->get('amount', 'integer');
/*Действия над товарами в корзине*/
switch($action) {
case 'update_citem':
$mgc->cart->update_item($variant_id, $amount);
break;
case 'remove_citem':
$mgc->cart->delete_item($variant_id);
break;
case 'add_citem':
$mgc->cart->add_item($variant_id, $amount);
break;
default:
break;
}
/*Определяем язык*/
$language = $mgc->languages->get_language($mgc->languages->lang_id());
$mgc->design->assign('language', $language);
$mgc->design->assign('lang_link', $mgc->languages->get_lang_link());
$mgc->design->assign('lang', $mgc->translations->get_translations(array('lang'=>$language->label)));
$cart = $mgc->cart->get_cart();
$mgc->design->assign('cart', $cart);
/*Определяем валюту*/
$currencies = $mgc->money->get_currencies(array('enabled'=>1));
if(isset($_SESSION['currency_id'])) {
$currency = $mgc->money->get_currency($_SESSION['currency_id']);
} else {
$currency = reset($currencies);
}
$mgc->design->assign('currency', $currency);
/*Выбираем доступные способы доставки и оплаты*/
$deliveries = $mgc->delivery->get_deliveries(array('enabled'=>1));
$mgc->design->assign('deliveries', $deliveries);
foreach($deliveries as $delivery) {
$delivery->payment_methods = $mgc->payment->get_payment_methods(array('delivery_id'=>$delivery->id, 'enabled'=>1));
}
$mgc->design->assign('all_currencies', $mgc->money->get_currencies());
/*Рабтаем с товарами в корзине*/
if (count($cart->purchases) > 0) {
$coupon_code = trim($mgc->request->get('coupon_code', 'string'));
if(empty($coupon_code)) {
$mgc->cart->apply_coupon('');
} else {
$coupon = $mgc->coupons->get_coupon((string)$coupon_code);
if(empty($coupon) || !$coupon->valid) {
$mgc->cart->apply_coupon($coupon_code);
$mgc->design->assign('coupon_error', 'invalid');
} else {
$mgc->cart->apply_coupon($coupon_code);
}
}
if($mgc->coupons->count_coupons(array('valid'=>1))>0) {
$mgc->design->assign('coupon_request', true);
}
$cart = $mgc->cart->get_cart();
$mgc->design->assign('cart', $cart);
$result = array('result'=>1);
$result['cart_informer'] = $mgc->design->fetch('cart_informer.tpl');
$result['cart_purchases'] = $mgc->design->fetch('cart_purchases.tpl');
$result['cart_deliveries'] = $mgc->design->fetch('cart_deliveries.tpl');
$result['currency_sign'] = $currency->sign;
$result['total_price'] = $mgc->money->convert($cart->total_price, $currency->id);
$result['total_products'] = $cart->total_products;
} else {
$result = array('result'=>0);
$result['cart_informer'] = $mgc->design->fetch('cart_informer.tpl');
$result['content'] = $mgc->design->fetch('cart.tpl');
}
header("Content-type: application/json; charset=UTF-8");
header("Cache-Control: must-revalidate");
header("Pragma: no-cache");
// header("Expires: -1");
header("Expires: ". 60*60*24);
print json_encode($result);