/** * insert delivery */ function insertDelivery($order_data) { require_once 'models/ecommerce/ecommerce_basket.php'; $Basket = new ecommerce_basket(); $Basket->setCacheable(false); $basket = $Basket->getFullDetail($order_data['basket_id']); $include_vat = $this->isVatEligible($order_data['delivery_address_id'], $basket['customer_id']); $Basket->calculateBasketSubTotals($basket, $include_vat); $code = $order_data['other_data']['promotion_code']; $verify_code = false; $promotion_detail = $Basket->calculateBasketDiscount($basket, $code, $verify_code); require_once 'models/ecommerce/ecommerce_delivery.php'; $Delivery = new ecommerce_delivery(); $delivery = $Delivery->calculateDelivery($basket, $order_data['other_data']['delivery_options']['carrier_id'], $order_data['delivery_address_id'], $promotion_detail); //prepare object require_once 'models/ecommerce/ecommerce_delivery.php'; $Ecommerce_Delivery = new ecommerce_delivery(); //format data $delivery_data['order_id'] = $order_data['id']; $delivery_data['carrier_id'] = $order_data['other_data']['delivery_options']['carrier_id']; $delivery_data['value_net'] = $delivery['value_net']; $delivery_data['vat'] = $delivery['vat']; $delivery_data['vat_rate'] = $delivery['vat_rate']; $delivery_data['required_datetime'] = $order_data['other_data']['delivery_options']['required_datetime']; $delivery_data['note_customer'] = ''; $delivery_data['note_backoffice'] = ''; $delivery_data['other_data'] = $order_data['other_data']['delivery_options']['other_data']; $delivery_data['weight'] = $delivery['weight']; //insert if ($id = $Ecommerce_Delivery->insertDelivery($delivery_data)) { return $id; } else { return false; } }
/** * main action */ public function mainAction() { /** * find code */ if ($_SESSION['promotion_code']) { $code = $_SESSION['promotion_code']; } else { if (trim($_POST['promotion_code']) != '') { $code = trim($_POST['promotion_code']); } else { $code = false; } } /** * Check Actions */ if ($_POST['promotion_code_add'] && $code) { $_SESSION['promotion_code'] = $code; onxshopGoTo("/page/{$_SESSION['active_pages'][0]}"); } else { if ($_POST['promotion_code_remove']) { $_SESSION['promotion_code'] = false; onxshopGoTo("/page/{$_SESSION['active_pages'][0]}"); } } /** * initialize */ require_once 'models/ecommerce/ecommerce_promotion.php'; $Promotion = new ecommerce_promotion(); $Promotion->setCacheable(false); require_once 'models/ecommerce/ecommerce_basket.php'; $Basket = new ecommerce_basket(); $Basket->setCacheable(false); /** * basket detail */ if (is_numeric($_SESSION['basket']['id'])) { $basket = $Basket->getFullDetail($_SESSION['basket']['id']); $Basket->calculateBasketSubTotals($basket, $this->isVatEligible($basket['customer_id'])); $Basket->calculateBasketDiscount($basket, $_SESSION['promotion_code']); $Basket->saveDiscount($basket); } else { $basket = false; } /** * Allow Guest Checkout */ if ($basket['customer_id'] == 0 && $_SESSION['client']['customer']['guest'] == 1) { $customer_email = $_SESSION['client']['customer']['email']; } else { $customer_email = ''; } /** * Display */ if ($basket && ($promotion_code = $Promotion->checkCodeBeforeApply($code, $basket['customer_id'], $basket, $customer_email))) { $promotion_code['value'] = $code; $this->tpl->assign('PROMOTION_CODE', $promotion_code); if ($promotion_code['discount_percentage_value'] > 0) { $this->tpl->parse('content.applied.discount_percentage_value'); } if ($promotion_code['discount_fixed_value'] > 0) { $this->tpl->parse('content.applied.discount_fixed_value'); } if ($promotion_code['discount_free_delivery'] == 1) { $this->tpl->parse('content.applied.discount_free_delivery'); } if ($promotion_code['free_promo_product']) { $this->tpl->parse('content.applied.free_item_info'); } $this->tpl->parse('content.applied'); } else { //remove code $code = false; $promotion_code = array(); $promotion_code['value'] = $code; $this->tpl->assign('PROMOTION_CODE', $promotion_code); $this->tpl->parse('content.enter'); } /** * Save to session */ $_SESSION['promotion_code'] = $code; return true; }