/** * activate shipping method * @return Object */ public function procShopServiceActivateShippingMethod() { $name = Context::get('name'); $status = Context::get('status'); if(!isset($name) || !isset($status)) { return new Object(-1, 'msg_invalid_request'); } $shipping_repository = new ShippingMethodRepository(); $shipping_method = $shipping_repository->getShippingMethod($name, $this->module_srl); $shipping_method->status = $status; try { $shipping_repository->updateShippingMethod($shipping_method); } catch(Exception $e) { return new Object(-1, 'msg_invalid_request'); } $this->setMessage('Shipping method successfully updated!'); }
public function getShippingMethodVariant() { if (!$this->getShippingMethod()->hasVariants()) { return null; } $shipping_variant = $this->getExtra('shipping_variant'); if (!$shipping_variant) { // If a variant hasn't been selected yet, we just return the first one $shippingRepo = new ShippingMethodRepository(); $shipping_methods = $shippingRepo->getAvailableShippingMethodsAndTheirPrices($this->module_srl, $this); $available_keys = array_keys($shipping_methods); $selected_shipping_method = $this->getShippingMethodName(); foreach ($available_keys as $key) { if (strpos($key, $selected_shipping_method) !== false) { $this->setExtra('shipping_variant', $key); return $key; } } } return $shipping_variant; }
/** * display shop place order * @return Object * @throws ShopException */ public function dispShopPlaceOrder() { /** @var $cart Cart */ try { if ((!$cart = Context::get('cart')) || !$cart->items) { throw new ShopException("Cart doesn't exist anymore."); } } catch (Exception $e) { $this->setRedirectUrl(getNotEncodedUrl('', 'act', 'dispShopHome')); return new Object(-1, $e->getMessage()); } // 1. Setup payment info /** * @var shopModel $shopModel */ $shopModel = getModel('shop'); // Get selected payment method name $payment_method_name = $cart->getPaymentMethodName(); // Get payment class $payment_repository = new PaymentMethodRepository(); $payment_method = $payment_repository->getPaymentMethod($payment_method_name, $this->module_srl); $payment_method->onPlaceOrderFormLoad(); Context::set('payment_method', $payment_method); Context::set('payment_method_name', $payment_method_name); // 2. Setup all other order info Context::set('billing_address', $cart->getBillingAddress()); Context::set('shipping_address', $cart->getShippingAddress()); $shipping_method_name = $cart->getShippingMethodName(); $shipping_repository = new ShippingMethodRepository(); $shipping_method = $shipping_repository->getShippingMethod($shipping_method_name, $this->module_srl); Context::set('shipping_method_name', $shipping_method->getDisplayName()); $shipping_variants = $shipping_method->getVariants(); Context::set('shipping_method_variant', $shipping_variants[$cart->getShippingMethodVariant()]); Context::set('extra', $cart->getExtraArray()); Context::set('cart_products', $cart->getProducts()); if ($discount = $cart->getDiscount()) { Context::set('discount', $discount); Context::set('discount_value', $discount->getReductionValue()); Context::set('discounted_value', $discount->getValueDiscounted()); } if ($coupon = $cart->getCoupon()) { Context::set('coupon', $coupon); } $this->setTemplateFile('place_order.html'); }
/** * insert shop * @param $domain * @param $user_id_list * @param null $settings * @return object */ public function insertShop($domain, $user_id_list, $settings = null) { if(!is_array($user_id_list)) $user_id_list = array($user_id_list); $oAddonAdminController = getAdminController('addon'); $oMemberModel = getModel('member'); $oMemberAdminController = getAdminController('member'); $oModuleModel = getModel('module'); $oModuleController = getController('module'); $oShopModel = getModel('shop'); $oShopController = getController('shop'); $oDocumentController = getController('document'); $memberConfig = $oMemberModel->getMemberConfig(); foreach($memberConfig->signupForm as $item){ if($item->isIdentifier) $identifierName = $item->name; } if($identifierName == "user_id") { $member_srl = $oMemberModel->getMemberSrlByUserID($user_id_list[0]); } else { $member_srl = $oMemberModel->getMemberSrlByEmailAddress($user_id_list[0]); } if(!$member_srl) return new Object(-1,'msg_not_user'); $member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl); if(strpos($domain, '.') !== false) $domain = strtolower($domain); $output = $oModuleController->insertSite($domain, 0); if(!$output->toBool()) return $output; $site_srl = $output->get('site_srl'); $shop = new stdClass(); $shop->site_srl = $site_srl; $shop->mid = $this->shop_mid; $shop->module = 'shop'; $shop->module_srl = getNextSequence(); $shop->skin = ($settings->skin) ? $settings->skin : $this->skin; $shop->browser_title = ($settings->title) ? $settings->title : sprintf("%s's Shop", $member_info->nick_name); $output = $oModuleController->insertModule($shop); if(!$output->toBool()) return $output; //$module_srl = $output->get('module_srl'); $module_srl = $shop->module_srl; $site = new stdClass(); $site->site_srl = $site_srl; $site->index_module_srl = $module_srl; $site->domain = $domain; $output = $oModuleController->updateSite($site); $output = $oModuleController->insertSiteAdmin($site_srl, $user_id_list); //argx for default member group insertion $argx = new stdClass(); $argx->site_srl = $site_srl; $argx->title = $domain; $argx->is_default = 'Y'; //$argx->list_order = $output = $oMemberAdminController->insertGroup($argx); $args = new stdClass(); $args->shop_title = $shop->browser_title; $args->module_srl = $module_srl; $args->member_srl = $member_srl; $args->timezone = $GLOBALS['_time_zone']; $output = executeQuery('shop.insertShop', $args); if(!$output->toBool()) return $output; $args->comment_editor_skin = 'xpresseditor'; $args->comment_editor_colorset = 'white'; $oShopController->updateShopCommentEditor($module_srl, $args->comment_editor_skin, $args->comment_editor_colorset); $oAddonAdminController->doInsert('autolink', $site_srl); $oAddonAdminController->doInsert('counter', $site_srl); $oAddonAdminController->doInsert('member_communication', $site_srl); $oAddonAdminController->doInsert('member_extra_info', $site_srl); $oAddonAdminController->doInsert('mobile', $site_srl); $oAddonAdminController->doInsert('smartphone', $site_srl); $oAddonAdminController->doInsert('referer', $site_srl); $oAddonAdminController->doInsert('resize_image', $site_srl); $oAddonAdminController->doActivate('autolink', $site_srl); $oAddonAdminController->doActivate('counter', $site_srl); $oAddonAdminController->doActivate('member_communication', $site_srl); $oAddonAdminController->doActivate('member_extra_info', $site_srl); $oAddonAdminController->doActivate('mobile', $site_srl); $oAddonAdminController->doActivate('smartphone', $site_srl); $oAddonAdminController->doActivate('referer', $site_srl); $oAddonAdminController->doActivate('resize_image', $site_srl); $oAddonAdminController->makeCacheFile($site_srl); FileHandler::copyDir($this->module_path.'skins/'.$shop->skin, $oShopModel->getShopPath($module_srl)); foreach($user_id_list as $k => $v){ $output = $oModuleController->insertAdminId($module_srl, $v); if(!$output->toBool()) return $output; } $langType = Context::getLangType(); $file = sprintf('%ssample/%s.html',$this->module_path,$langType); if(!file_exists(FileHandler::getRealPath($file))){ $file = sprintf('%ssample/ko.html',$this->module_path); } $oMemberModel = getModel('member'); $member_info = $oMemberModel->getMemberInfoByEmailAddress($user_id_list[0]); /** * Insert default payment method and activate it */ $payment_repository = new PaymentMethodRepository(); $payment_method = $payment_repository->installPaymentMethod('cash_on_delivery', $module_srl); $payment_method->status = 1; $payment_method->is_default = 1; $payment_repository->updatePaymentMethod($payment_method); /** * Setup default shipping method */ $shipping_repository = new ShippingMethodRepository(); $shipping_method = $shipping_repository->installPlugin('flat_rate_shipping', $module_srl); $shipping_method->type = 'per_order'; $shipping_method->price = '10'; $shipping_method->status = 1; $shipping_method->is_default = 1; $shipping_repository->updatePlugin($shipping_method); /** * Set default currency and unit of measure */ $args = new stdClass(); $args->currency = 'USD'; $args->currency_symbol = '$'; $args->unit_of_measure = ShopInfo::UNIT_OF_MEASURE_KGS; $args->module_srl = $module_srl; $output = executeQuery('shop.updateShopInfo',$args); if(!$output->toBool()) return $output; /** * Create shop menus: header and footer */ // 1. Create menus include(_XE_PATH_ . '/modules/shop/libs/model/ShopMenu.php'); $header_menu_srl = $oShopModel->makeMenu($site_srl, 'Header menu'); $footer_menu_srl = $oShopModel->makeMenu($site_srl, 'Footer menu'); $menus = array(); $menus[ShopMenu::MENU_TYPE_HEADER] = $header_menu_srl; $menus[ShopMenu::MENU_TYPE_FOOTER] = $footer_menu_srl; $args = new stdClass(); $args->menus = serialize($menus); $args->module_srl = $module_srl; $output = executeQuery('shop.updateShopInfo',$args); if(!$output->toBool()) return $output; // 2. Create pages // Header menu $oShopModel->insertPage($site_srl, 'about_us', 'About us', array('content' => 'Write a bit about yourself here - let the customers get to know you and your shop')); // Footer menu $oShopModel->insertPage($site_srl, 'privacy_policy', 'Privacy policy', array('content' => 'Please enter your Privacy policy here')); $oShopModel->insertPage($site_srl, 'terms_and_conditions', 'Terms and conditions', array('content' => 'Please enter your Terms and conditions here')); $oShopModel->insertPage($site_srl, 'contact_us', 'Contact us', array('content' => 'Write your contact information here')); // 3. Add pages to menus $oShopModel->insertMenuItem($header_menu_srl, 0, 'about_us', 'About us'); $oShopModel->insertMenuItem($footer_menu_srl, 0, 'privacy_policy', 'Privacy policy'); $oShopModel->insertMenuItem($footer_menu_srl, 0, 'terms_and_conditions', 'Terms and conditions'); $oShopModel->insertMenuItem($footer_menu_srl, 0, 'contact_us', 'Contact us'); $output = new Object(); $output->add('module_srl',$module_srl); return $output; }