purchases = array(); $cart->total_price = 0; $cart->total_weight = 0; $cart->total_products = 0; $cart->coupon = null; $cart->discount = 0; $cart->coupon_discount = 0; // Берем из сессии список variant_id=>amount if(!empty($_SESSION['shopping_cart'])) { $session_items = $_SESSION['shopping_cart']; $variants = $this->variants->get_variants(array('id'=>array_keys($session_items))); if(!empty($variants)) { foreach($variants as $variant) { $items[$variant->id] = new stdClass(); $items[$variant->id]->variant = $variant; $items[$variant->id]->amount = $session_items[$variant->id]['amount']; $items[$variant->id]->options = $session_items[$variant->id]['options']; $products_ids[] = $variant->product_id; } $products = array(); foreach($this->products->get_products(array('id'=>$products_ids)) as $p) $products[$p->id]=$p; $images = $this->products->get_images(array('product_id'=>$products_ids)); foreach($images as $image) $products[$image->product_id]->images[$image->id] = $image; foreach($items as $variant_id=>$item) { $purchase = null; if(!empty($products[$item->variant->product_id])) { $purchase = new stdClass(); $purchase->product = $products[$item->variant->product_id]; $purchase->variant = $item->variant; $purchase->amount = $item->amount; $purchase->options = unserialize($item->options); //$feat = $this->features->get_product_options($item->variant->product_id); $feat = $this->features->get_features(array('category_id'=>$cat->id,'in_variant'=>1)); foreach($feat AS $fe){ $purchase->features[$fe->id] = $fe; } $cart->purchases[] = $purchase; $cart->total_price += $item->variant->price*$item->amount; $cart->total_weight += $item->variant->weight*$item->amount; $cart->total_products += $item->amount; } } // Пользовательская скидка $cart->discount = 0; if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id']))) $cart->discount = $user->discount; $cart->total_price *= (100-$cart->discount)/100; // Скидка по купону if(isset($_SESSION['coupon_code'])) { $cart->coupon = $this->coupons->get_coupon($_SESSION['coupon_code']); if($cart->coupon && $cart->coupon->valid && $cart->total_price>=$cart->coupon->min_order_price) { if($cart->coupon->type=='absolute') { // Абсолютная скидка не более суммы заказа $cart->coupon_discount = $cart->total_price>$cart->coupon->value?$cart->coupon->value:$cart->total_price; $cart->total_price = max(0, $cart->total_price-$cart->coupon->value); } else { $cart->coupon_discount = $cart->total_price * ($cart->coupon->value)/100; $cart->total_price = $cart->total_price-$cart->coupon_discount; } } else { unset($_SESSION['coupon_code']); } } } } return $cart; } /* * * Добавление варианта товара в корзину * */ public function add_item($variant_id, $amount = 1,$options = array()) { $amount = max(1, $amount); if(isset($_SESSION['shopping_cart'][$variant_id]['amount'])) $amount = max(1, $amount+$_SESSION['shopping_cart'][$variant_id]['amount']); // Выберем товар из базы, заодно убедившись в его существовании $variant = $this->variants->get_variant($variant_id); // Если товар существует, добавим его в корзину if(!empty($variant) && ($variant->stock>0) ) { // Не дадим больше чем на складе $amount = min($amount, $variant->stock); $options = serialize($options); $_SESSION['shopping_cart'][$variant_id] = intval($amount); $_SESSION['shopping_cart'][$variant_id] = array('amount'=>intval($amount),'options'=>$options); } } /* * * Обновление количества товара * */ public function update_item($variant_id, $amount = 1,$options = array()) { $amount = max(1, $amount); // Выберем товар из базы, заодно убедившись в его существовании $variant = $this->variants->get_variant($variant_id); // Если товар существует, добавим его в корзину if(!empty($variant) && $variant->stock>0) { // Не дадим больше чем на складе $amount = min($amount, $variant->stock); $options = serialize($options); $_SESSION['shopping_cart'][$variant_id] = array('amount'=>intval($amount),'options'=>$options); //$_SESSION['shopping_cart'][$variant_id] = intval($amount); } } /* * * Удаление товара из корзины * */ public function delete_item($variant_id) { unset($_SESSION['shopping_cart'][$variant_id]); } /* * * Очистка корзины * */ public function empty_cart() { unset($_SESSION['shopping_cart']); unset($_SESSION['coupon_code']); } /* * * Применить купон * */ public function apply_coupon($coupon_code) { $coupon = $this->coupons->get_coupon((string)$coupon_code); if($coupon && $coupon->valid) { $_SESSION['coupon_code'] = $coupon->code; } else { unset($_SESSION['coupon_code']); } } public function getCity2(){ $city = array( "city--moskva"=>"Москва", "city--sankt-peterburg"=>"Санкт-Петербург", "city--abakan"=>"Абакан", "city--anadyr"=>"Анадырь", "city--anapa"=>"Анапа", "city--arhangelsk"=>"Архангельск", "city--astrahan"=>"Астрахань", "city--barnaul"=>"Барнаул", "city--belgorod"=>"Белгород", "city--birobidzhan"=>"Биробиджан", "city--blagoveshhensk"=>"Благовещенск", "city--brjansk"=>"Брянск", "city--velikij-novgorod"=>"Великий Новгород ", "city--vladivostok"=>"Владивосток", "city--vladikavkaz"=>"Владикавказ", "city--vladimir"=>"Владимир", "city--volgograd"=>"Волгоград", "city--vologda"=>"Вологда", "city--vorkuta"=>"Воркута", "city--voronezh"=>"Воронеж", "city--gorno-altajsk"=>"Горно-Алтайск", "city--groznyj"=>"Грозный", "city--dudinka"=>"Дудинка", "city--ekaterinburg"=>"Екатеринбург", "city--elizovo"=>"Елизово", "city--ivanovo"=>"Иваново", "city--izhevsk"=>"Ижевск", "city--irkutsk"=>"Иркутск", "city--ioshkar-ola"=>"Йошкар-Ола", "city--kazan"=>"Казань", "city--kaliningrad"=>"Калининград", "city--kaluga"=>"Калуга", "city--kemerovo"=>"Кемерово", "city--kirov"=>"Киров", "city--kostomuksha"=>"Костомукша", "city--kostroma"=>"Кострома", "city--krasnodar"=>"Краснодар", "city--krasnojarsk"=>"Красноярск", "city--kurgan"=>"Курган", "city--kursk"=>"Курск", "city--kyzyl"=>"Кызыл", "city--lipeck"=>"Липецк", "city--magadan"=>"Магадан", "city--magnitogorsk"=>"Магнитогорск", "city--majkop"=>"Майкоп", "city--mahachkala"=>"Махачкала", "city--mirnyj"=>"Мирный", "city--murmansk"=>"Мурманск", "city--mytishhi"=>"Мытищи", "city--naberezhnye-chelny"=>"Набережные Челны", "city--nadym"=>"Надым", "city--nazran"=>"Назрань", "city--nalchik"=>"Нальчик", "city--narjan-mar"=>"Нарьян-Мар", "city--nerjungri"=>"Нерюнгри", "city--neftejugansk"=>"Нефтеюганск", "city--nizhnevartovsk"=>"Нижневартовск", "city--nizhnij-novgorod"=>"Нижний Новгород", "city--novokuzneck"=>"Новокузнецк", "city--novorossijsk"=>"Новороссийск", "city--novosibirsk"=>"Новосибирск", "city--novyj-urengoj"=>"Новый Уренгой", "city--norilsk"=>"Норильск", "city--nojabrsk"=>"Ноябрьск", "city--omsk"=>"Омск", "city--orel"=>"Орел", "city--orenburg"=>"Оренбург", "city--penza"=>"Пенза", "city--perm"=>"Пермь", "city--petrozavodsk"=>"Петрозаводск", "city--petropavlovsk-kamchatskij"=>"Петропавловск-Камчатский", "city--pskov"=>"Псков", "city--rostov-na-donu"=>"Ростов-на-Дону", "city--rjazan"=>"Рязань", "city--salehard"=>"Салехард", "city--samara"=>"Самара", "city--saransk"=>"Саранск", "city--saratov"=>"Саратов", "city--smolensk"=>"Смоленск", "city--sochi"=>"Сочи", "city--stavropol"=>"Ставрополь", "city--strezhevoj"=>"Стрежевой", "city--surgut"=>"Сургут", "city--syktyvkar"=>"Сыктывкар", "city--tambov"=>"Тамбов", "city--tver"=>"Тверь", "city--toljatti"=>"Тольятти", "city--tomsk"=>"Томск", "city--tula"=>"Тула", "city--tynda"=>"Тында", "city--tjumen"=>"Тюмень", "city--ulan-udje"=>"Улан-Удэ", "city--uljanovsk"=>"Ульяновск", "city--usinsk"=>"Усинск", "city--ufa"=>"Уфа", "city--khabarovsk"=>"Хабаровск", "city--khanty-mansijsk"=>"Ханты-Мансийск", "city--kholmsk"=>"Холмск", "city--cheboksary"=>"Чебоксары", "city--cheljabinsk"=>"Челябинск", "city--cherepovec"=>"Череповец", "city--cherkessk"=>"Черкесск", "city--chita"=>"Чита", "city--elista"=>"Элиста", "city--yuzhno-sahalinsk"=>"Южно-Сахалинск", "city--yakutsk"=>"Якутск", "city--yaroslavl"=>"Ярославль", "region--respublika-adygeja"=>"Адыгея респ.", "region--respublika-altaj"=>"Алтай респ.", "region--altajskij-kraj"=>"Алтайский край", "region--amurskaja-oblast"=>"Амурская обл.", "region--arhangelskaja-oblast"=>"Архангельская обл.", "region--astrahanskaja-oblast"=>"Астраханская обл.", "region--respublika-bashkortostan"=>"Башкортостан респ.", "region--belgorodskaja-oblast"=>"Белгородская обл.", "region--brjanskaja-oblast"=>"Брянская обл.", "region--respublika-burjatija"=>"Бурятия респ.", "region--vladimirskaja-oblast"=>"Владимирская обл.", "region--volgogradskaja-oblast"=>"Волгоградская обл.", "region--vologodskaja-oblast"=>"Вологодская обл.", "region--voronezhskaja-oblast"=>"Воронежская обл.", "region--respublika-dagestan"=>"Дагестан респ.", "region--evrejskaja-ao"=>"Еврейская авт.обл.", "region--zabajkalskij-kraj"=>"Забайкальский край", "region--ivanovskaja-oblast"=>"Ивановская обл.", "region--respublika-ingushetija"=>"Ингушетия респ.", "region--irkutskaja-oblast"=>"Иркутская обл.", "region--kabardino-balkarskaja-respublika"=>"Кабардино-Балкарская респ.", "region--kaliningradskaja-oblast"=>"Калининградская обл.", "region--respublika-kalmykija"=>"Калмыкия респ.", "region--kaluzhskaja-oblast"=>"Калужская обл.", "region--kamchatskij-kraj"=>"Камчатский край", "region--karachaevo-cherkesskaja-respublika"=>"Карачаево-Черкесская респ.", "region--respublika-karelija"=>"Карелия респ.", "region--kemerovskaja-oblast"=>"Кемеровская обл.", "region--kirovskaja-oblast"=>"Кировская обл.", "region--respublika-komi"=>"Коми респ.", "region--kostromskaja-oblast"=>"Костромская обл.", "region--krasnodarskij-kraj"=>"Краснодарский край", "region--krasnojarskij-kraj"=>"Красноярский край", "region--kurganskaja-oblast"=>"Курганская обл.", "region--kurskaja-oblast"=>"Курская обл.", "region--leningradskaja-oblast"=>"Ленинградская обл.", "region--lipeckaja-oblast"=>"Липецкая обл.", "region--magadanskaja-oblast"=>"Магаданская обл.", "region--respublika-marij-el"=>"Марий Эл респ.", "region--respublika-mordovija"=>"Мордовия респ.", "region--moskovskaja-oblast"=>"Московская обл.", "region--murmanskaja-oblast"=>"Мурманская обл.", "region--neneckij-ao"=>"Ненецкий АО", "region--nizhegorodskaja-oblast"=>"Нижегородская обл.", "region--novgorodskaja-oblast"=>"Новгородская обл.", "region--novosibirskaja-oblast"=>"Новосибирская обл.", "region--omskaja-oblast"=>"Омская обл.", "region--orenburgskaja-oblast"=>"Оренбургская обл.", "region--orlovskaja-oblast"=>"Орловская обл.", "region--penzenskaja-oblast"=>"Пензенская обл.", "region--permskij-kraj"=>"Пермский край", "region--primorskij-kraj"=>"Приморский край", "region--pskovskaja-oblast"=>"Псковская обл.", "region--rostovskaja-oblast"=>"Ростовская обл.", "region--rjazanskaja-oblast"=>"Рязанская обл.", "region--samarskaja-oblast"=>"Самарская обл.", "region--saratovskaja-oblast"=>"Саратовская обл.", "region--respublika-saha-yakutija"=>"Саха (Якутия) респ.", "region--sahalinskaja-oblast"=>"Сахалинская обл.", "region--sverdlovskaja-oblast"=>"Свердловская обл.", "region--respublika-sev.osetija-alanija"=>"Северная Осетия - Алания респ.", "region--smolenskaja-oblast"=>"Смоленская обл.", "region--stavropolskij-kraj"=>"Ставропольский край", "region--tambovskaja-oblast"=>"Тамбовская обл.", "region--respublika-tatarstan"=>"Татарстан респ.", "region--tverskaja-oblast"=>"Тверская обл.", "region--tomskaja-oblast"=>"Томская обл.", "region--tulskaja-oblast"=>"Тульская обл.", "region--respublika-tyva"=>"Тыва респ.", "region--tjumenskaja-oblast"=>"Тюменская обл.", "region--udmurtskaja-respublika"=>"Удмуртская респ.", "region--uljanovskaja-oblast"=>"Ульяновская обл.", "region--khabarovskij-kraj"=>"Хабаровский край", "region--respublika-khakasija"=>"Хакасия респ.", "region--khanty-mansijskij-ao"=>"Ханты-Мансийский АО - Югра", "region--cheljabinskaja-oblast"=>"Челябинская обл.", "region--chechenskaja-respublika"=>"Чеченская респ.", "region--chuvashskaja-respublika"=>"Чувашия респ.", "region--chukotskij-ao"=>"Чукотский АО", "region--yamalo-neneckij-ao"=>"Ямало-Ненецкий АО", "region--yaroslavskaja-oblast"=>"Ярославская обл." ); return $city; } }