/** * Service for product details * @param Request $request * @author Vini Dubey * @since 31-03-2016 */ public function productDetails(Request $request) { $objProductModel = Products::getInstance(); $objProductmetaModel = Productmeta::getInstance(); $objProductImagesModel = ProductImages::getInstance(); $objUserModel = User::getInstance(); $objCampaignModel = Campaigns::getInstance(); $objProductTag = ProductTags::getInstance(); $postData = $request->all(); $response = new stdClass(); if ($postData) { $userId = ''; if (isset($postData['id'])) { $userId = $postData['id']; } $productId = ''; if (isset($postData['product_id'])) { $productId = $postData['product_id']; } $mytoken = 0; $authflag = false; if (isset($postData['api_token'])) { $mytoken = $postData['api_token']; if ($mytoken == env("API_TOKEN")) { $authflag = true; } else { if ($userId != '') { $whereForloginToken = $userId; $Userscredentials = $objUserModel->getUsercredsWhere($whereForloginToken); if ($mytoken == $Userscredentials['login_token']) { $authflag = true; } } } } if ($authflag) { if ($productId != '') { $whereProductName = $productId; $productDetails = $objProductModel->getProductDetailsWhere($whereProductName); // $productDetails = (array)$productDetails; // $productmaterial = array($productDetails[0]['material_ids']); // $productpatternId = array($productDetails[0]['pattern_ids']); // $producttagsId = array($productDetails[0]['tag_ids']); // $materialId = explode(",", $productmaterial[0]); // $patternId = explode(",", $productpatternId[0]); // $tagId = explode(",", $producttagsId[0]); //// $productmaterial = $objProductMaterial->getProductMaterialWhere($materialId); //// $productpattern = $objProductPattern->getProductPatternWhere($patternId); // $producttags = $objProductTag->getProductTagWhere($tagId); // // $campaigns = $objCampaignModel->getCampaignProduct($whereProductName); // if ($productDetails[0]) { // if ($productDetails[0]['product_id'] != '') { // $productsizeDetails = $objProductmetaModel->getProductsizeDetails($productDetails[0]['product_id']); //// echo"<pre>";print_r($productsizeDetails);die("zxdsg"); // $whereProductId = $productDetails[0]['product_id']; // $productimages = $objProductImagesModel->getProductimagesWhere($whereProductId); // // $data['productDetails'] = $productDetails[0]; // // $data['productsizes'] = $productsizeDetails; // $data['productimages'] = $productimages; // $data['productmaterials'] = $productmaterial; // $data['productpatterns'] = $productpattern; // $data['producttags'] = $producttags; // $data['productUrl'] = env('WEB_URL') . "/product-details/" . $productId; // $presentTime = time(); // $productDetails[0]['discountFlag'] = 0; // if ($productDetails[0]['discount_value'] > 0) { // // $disountFlag = TRUE; // if ($productDetails[0]['available_from'] != '' || $productDetails[0]['available_upto'] != '') { // if ($productDetails[0]['available_from'] != '' && $productDetails[0]['available_from'] > $presentTime) { // // $disountFlag = FALSE; // } // if ($productDetails[0]['available_upto'] != '' && $productDetails[0]['available_upto'] < $presentTime) { // // $disountFlag = FALSE; // } // } // if ($disountFlag) { // $discountedValue = 0; // $productPrice = (int)$productDetails[0]['price']; // if ($productDetails[0]['discount_type'] == 1) { // $discountedValue = $productPrice - (int)$productDetails[0]['discount_value']; // } // if ($productDetails[0]['discount_type'] == 2) { // $discountedValue = $productPrice - (int)($productPrice * ((int)$productDetails[0]['discount_value'] / 100)); // } // // $data['productDetails']['discountedprice'] = $discountedValue; // $data['productDetails']['discountFlag'] = 1; // } // } // $response->code = 200; // $response->message = "Success"; // $response->data = $data; // } else { // $response->code = 100; // $response->message = "Something went Wrong. No Product Details found."; // $response->data = null; // } // } else { // $response->code = 100; // $response->message = "No such Product Available."; // $response->data = null; // } // } else { // $response->code = 100; // $response->message = "You missed Something."; // $response->data = null; } } else { $response->code = 401; $response->message = "Access Denied"; $response->data = null; } } else { $response->code = 401; $response->message = "Invalid request"; $response->data = null; } echo json_encode($response, true); }
/** * Flashsale Ajax Handler * @param Request $request * @author: Vini Dubey<*****@*****.**> */ public function flashsaleAjaxHandler(Request $request) { $method = $request->input('method'); $objUserModel = new User(); $objCategoryModel = ProductCategories::getInstance(); $objProductModel = Products::getInstance(); $objOptionVariant = ProductOptionVariants::getInstance(); $objCampaigns = Campaigns::getInstance(); if ($method != "") { switch ($method) { case 'optionVariantDetails': $postData = $request->all(); $response = new stdClass(); if ($postData) { $userId = ''; if (isset($postData['id'])) { $userId = $postData['id']; } $productId = ''; if (isset($postData['variant_id'])) { $variantId = $postData['variant_id']; } if (isset($postData['product_id'])) { $productId = $postData['product_id']; } if (isset($postData['selectedCombination'])) { $selectedCombination = $postData['selectedCombination']; } $mytoken = ''; $authflag = false; if (isset($postData['api_token'])) { $mytoken = $postData['api_token']; if ($mytoken == env("API_TOKEN")) { $authflag = true; } else { if ($userId != '') { $whereForloginToken = $userId; $Userscredentials = $objUserModel->getUsercredsWhere($whereForloginToken); if ($mytoken == $Userscredentials['login_token']) { $authflag = true; } } } } $variantDetails = ''; if ($authflag) { $where = ['rawQuery' => 'product_option_variants_combination.product_id = ? AND product_option_variants_combination.variant_ids IN("' . $selectedCombination . '","' . strrev($selectedCombination) . '")', 'bindParams' => [$productId]]; $selectedColumn = ['product_option_variants.*', 'product_images.*', 'product_option_variants_combination.*', 'product_option_variant_relation.*', DB::raw('GROUP_CONCAT( CASE WHEN ((SELECT COUNT(pi_id) FROM product_images WHERE product_images.for_combination_id !="0")!=0) THEN CASE WHEN (product_images.image_type =1 AND (product_images.for_combination_id!=0 OR product_images.for_combination_id!="")) THEN product_images.image_type END ELSE product_images.image_type END) AS image_types'), DB::raw('GROUP_CONCAT(DISTINCT CASE WHEN ((SELECT COUNT(pi_id) FROM product_images WHERE product_images.for_combination_id !="0")!=0) THEN CASE WHEN (product_images.image_type =1 AND (product_images.for_combination_id!=0 OR product_images.for_combination_id!="")) THEN product_images.image_url END ELSE product_images.image_url END) AS image_urls'), DB::raw('GROUP_CONCAT(DISTINCT product_option_variants_combination.variant_ids) AS variant_ids_combination'), DB::raw('GROUP_CONCAT(DISTINCT product_option_variant_relation.variant_ids) AS variant_id')]; $optionVariantDetailsForPopUp = $objOptionVariant->getOptionVariantDetailsForPopup($where, $selectedColumn); // echo'<pre>';print_r($optionVariantDetailsForPopUp);die("fchb"); if ($optionVariantDetailsForPopUp[0]) { $response->code = 200; $response->message = "Success"; $response->data = $optionVariantDetailsForPopUp[0]; } else { $response->code = 100; $response->message = "Something went Wrong. No Product Details found."; $response->data = null; } } else { $response->code = 401; $response->message = "Access Denied"; $response->data = null; } } else { $response->code = 401; $response->message = "Invalid request"; $response->data = null; } echo json_encode($response, true); case 'getCampaignsForMenu': $postData = $request->all(); $response = new stdClass(); if ($postData) { $userId = ''; if (isset($postData['id'])) { $userId = $postData['id']; } $mytoken = ''; $authflag = false; if (isset($postData['api_token'])) { $mytoken = $postData['api_token']; if ($mytoken == env("API_TOKEN")) { $authflag = true; } else { if ($userId != '') { $whereForloginToken = $userId; $Userscredentials = $objUserModel->getUsercredsWhere($whereForloginToken); if ($mytoken == $Userscredentials['login_token']) { $authflag = true; } } } } $variantDetails = ''; if ($authflag) { $where = ['rawQuery' => 'available_from < ? AND available_upto > ? AND campaign_status = ?', 'bindParams' => [time(), time(), 1]]; $selectedColumns = ['Campaigns.*']; $campaignDetails = $objCampaigns->getFlashsaleDetail($where, $selectedColumns); $campData = []; foreach ([1 => 'DS', 2 => 'FS'] as $index => $item) { $campData[$item] = implode(",", array_unique(array_flatten(array_filter(array_map(function ($camp) use($index) { if ($camp->campaign_type == $index) { return array_unique(array_merge(array_keys(json_decode($camp->for_category_ids, true)), array_flatten(json_decode($camp->for_category_ids, true)))); } else { return null; } }, $campaignDetails))))); } foreach ([1 => 'DS', 2 => 'FS'] as $index => $item) { $campDatasForCampaignName[$item] = implode(",", array_unique(array_flatten(array_filter(array_map(function ($campDatasForCampaignName) use($index) { if ($campDatasForCampaignName->campaign_type == $index) { // return array_unique(array_merge(array_keys(json_decode($camp->for_category_ids, true)), array_flatten(json_decode($camp->for_category_ids, true)))); return $campDatasForCampaignName->campaign_banner; } else { return null; } }, $campaignDetails))))); } $where = ['rawQuery' => 'category_status = ? AND category_id IN(' . implode(',', array_unique(explode(',', implode(',', $campData)))) . ')', 'bindParams' => [1]]; $selectColumn = ['product_categories.*']; $categoryInfo = $objCategoryModel->getCategoryWhere($where, $selectColumn); $final['categoryInfo'] = $categoryInfo; $final['campaignCatId'] = $campData; $final['campName'] = $campDatasForCampaignName; // echo'<pre>';print_r($final);die("fgvj"); if ($final) { $response->code = 200; $response->message = "Success"; $response->data = $final; } else { $response->code = 100; $response->message = "Something went Wrong. No Product Details found."; $response->data = null; } } else { $response->code = 401; $response->message = "Access Denied"; $response->data = null; } } else { $response->code = 401; $response->message = "Invalid request"; $response->data = null; } echo json_encode($response, true); } } }
/** * Get all the products based on filtering and category selection. * Gets product listing * Category,Subcategory,Filters & Feature Variant name,Sort By. * @param Request $request * @author: Vini Dubey<*****@*****.**> * @since: 05/05/2016 */ public function productList(Request $request) { $postData = $request->all(); $response = new stdClass(); $objUserModel = new User(); if ($postData) { $userId = ''; if (isset($postData['id'])) { $userId = $postData['id']; } $mytoken = ''; $authflag = false; if (isset($postData['api_token'])) { $mytoken = $postData['api_token']; if ($mytoken == env("API_TOKEN")) { $authflag = true; } else { if ($userId != '') { $whereForloginToken = $userId; $Userscredentials = $objUserModel->getUsercredsWhere($whereForloginToken); if ($mytoken == $Userscredentials['login_token']) { $authflag = true; } } } } if ($authflag) { //LOGIN TOKEN // if (isset($postData['option']) && isset($postData['limit']) && isset($postData['page_number'])) { if (isset($postData['option']) && isset($postData['limit']) && isset($postData['page_number'])) { $objProductModel = Products::getInstance(); $objProductCategoryModel = ProductCategories::getInstance(); $wherePriceRange = ['rawQuery' => 1]; if (isset($postData['price_range_from']) && !empty($postData['price_range_from']) && isset($postData['price_range_upto']) && !empty($postData['price_range_upto'])) { $priceFrom = $postData['price_range_from']; $priceTo = $postData['price_range_upto']; $wherePriceRange = ['rawQuery' => 'price_total >= ' . $priceFrom . ' AND price_total <= ' . $priceTo . '']; } // $sortClause = "products.product_id DESC"; // $sortClause = ('products.product_id desc'); $sortClause = ['products.product_id' => 'desc']; if (isset($postData['sort_by']) && !empty($postData['sort_by'])) { $sortBy = $postData['sort_by']; switch ($sortBy) { case "null-asc": // $sortClause = ('products.product_id desc'); $sortClause = ['products.product_id' => 'asc']; break; case "timestamp-asc": // $sortClause = ('products.product_id desc'); $sortClause = ['products.product_id' => 'asc']; break; case "position-asc": // $sortClause = ('products.product_id desc'); $sortClause = ['products.product_id' => 'asc']; break; case "position-desc": // $sortClause = ('products.product_id desc'); $sortClause = ['products.product_id' => 'asc']; break; case "price-asc": // $sortClause = ('products.product_id desc'); $sortClause = ['products.price_total' => 'asc']; break; case "price-desc": // $sortClause = ('products.product_id desc'); $sortClause = ['products.price_total' => 'desc']; break; case "popularity-asc": // $sortClause = ('products.product_id desc'); $sortClause = ['products.price_total' => 'asc']; break; case "bestsellers-asc": // $sortClause = ('products.product_id desc'); $sortClause = ['products.product_id' => 'asc']; break; case "bestsellers-desc": // $sortClause = ('products.product_id desc'); $sortClause = ['products.product_id' => 'desc']; break; case "on_sale-asc": // $sortClause = ('products.product_id desc'); $sortClause = ['products.product_id' => 'asc']; break; case "on_sale-desc": // $sortClause = ('products.product_id desc'); $sortClause = ['products.product_id' => 'desc']; break; case "pricelowtohigh": // $sortClause = ('products.price_total asc'); $sortClause = ['products.price_total' => 'asc']; break; case "pricehightolow": // $sortClause = ('products.price_total desc'); $sortClause = ['products.price_total' => 'desc']; break; default: break; } } $limit = $postData['limit']; $pagenumber = $postData['page_number']; if (empty($postData['page_number'])) { $pagenumber = 1; } $categoryName = ''; $subcategoryName = ''; $whereForCategoryFilter = ['rawQuery' => 1]; $objProductModel = Products::getInstance(); if (isset($postData['category_name']) && !empty($postData['category_name'])) { $categoryName = $postData['category_name']; if (isset($postData['subcategory_name']) && !empty($postData['subcategory_name'])) { $subcategoryName = $postData['subcategory_name']; } $objCategoryModel = ProductCategories::getInstance(); $whereCategoryName = ['rawQuery' => 'category_name = ? AND parent_category_id = ? AND category_status = ?', 'bindParams' => [$categoryName, 0, 1]]; $selectedColumn = ['product_categories.*']; $categoryDetails = $objCategoryModel->getCategoryWhere($whereCategoryName, $selectedColumn); if ($categoryDetails) { $categoryTreeIds = $categoryDetails[0]->category_id; $whereForCategoryFilter = ['rawQuery' => 'category_id IN(' . $categoryTreeIds . ')']; $whereForSubcat = ['rawQuery' => 'parent_category_id = ? AND category_status = ?', 'bindParams' => [$categoryDetails[0]->category_id, 1]]; $selectedColumn = ['product_categories.*', DB::raw('GROUP_CONCAT(DISTINCT category_id)AS subcatIds')]; $allSubcatsInCat = $objCategoryModel->getAllCategoryWhereByGrouping($whereForSubcat, $selectedColumn); if (!empty($allSubcatsInCat)) { $allSubcatsInCatIds = ''; $count = 1; foreach ($allSubcatsInCat as $valueAllSubcatsInCat) { if ($count == 1) { $allSubcatsInCatIds = $valueAllSubcatsInCat->subcatIds; } else { $allSubcatsInCatIds .= "," . $valueAllSubcatsInCat->subcatIds; } $count++; } $categoryTreeIds .= "," . $allSubcatsInCatIds; if ($subcategoryName != '') { $whereForSelectedSubcat = ['rawQuery' => 'category_name = ? AND parent_category_id = ?', 'bindParams' => [$subcategoryName, $categoryDetails[0]->category_id]]; $selectedColumn = ['product_categories.*']; $selectedSubcatDetails = $objCategoryModel->getCategoryWhere($whereForSelectedSubcat, $selectedColumn); if ($selectedSubcatDetails) { $allSubcatsInCatIds = $selectedSubcatDetails[0]->category_id; $categoryTreeIds = $allSubcatsInCatIds; } } $whereForCategoryFilter = ['rawQuery' => 'category_id IN(' . $categoryTreeIds . ')']; $selectedColumn = ['product_categories.*', DB::raw('GROUP_CONCAT(DISTINCT category_id)AS subcatIds')]; $allSubsubcatsInCat = $objCategoryModel->getAllCategoryWhereByGrouping($whereForCategoryFilter, $selectedColumn); if (!empty($allSubsubcatsInCat)) { foreach ($allSubsubcatsInCat as $valueAllSubsubcatsInCat) { $categoryTreeIds .= "," . $valueAllSubsubcatsInCat->subcatIds; } } } } // For Filter Option and features // $ObjProductFilterOptionModel = ProductFilterOption::getInstance(); // $where = ['rawQuery' => 'product_filter_option_status = ? AND product_filter_categories REGEXP "^[[:<:]]' . implode("|", array_unique(explode(",", $categoryTreeIds))) . '[[:<:]]"', 'bindParams' => [1]]; $where = ['rawQuery' => 'product_filter_option.product_filter_option_status = ? AND product_filter_option.product_filter_category_id REGEXP "^' . implode("|", array_unique(explode(",", $categoryTreeIds))) . '"', 'bindParams' => [1]]; $selectColumn = ['product_filter_option.*', DB::raw('GROUP_CONCAT(DISTINCT pg.product_filter_option_name)AS variant_name'), DB::raw('GROUP_CONCAT(DISTINCT pg.product_filter_option_id)AS variant_ids')]; $filterOptionInfo = $ObjProductFilterOptionModel->getAllFilterOption($where, $selectColumn); // End for filter option and feature// } $offset = ((int) $pagenumber - 1) * (int) $limit; $whereOption = ['rawQuery' => 1]; if ($postData['option'] != '') { $whereOption = ['rawQuery' => 'product_option_variants.variant_id IN (' . $postData["option"] . ')']; // $whereForFilter.= " and pcr.color_id in (" . $postData['selectedcolors'] . ")"; } $whereForFilter = $whereOption; $where = ['rawQuery' => 'product_status = ?', 'bindParams' => [1]]; $selectedColumn = ['products.*', 'product_images.image_url', 'productmeta.*', DB::raw('GROUP_CONCAT(DISTINCT product_option_variant_relation.option_id)AS option_ids'), DB::raw('GROUP_CONCAT(DISTINCT product_options.option_name)AS option_names'), DB::raw('GROUP_CONCAT(DISTINCT product_option_variant_relation.variant_data SEPARATOR "____")AS variant_datas'), DB::raw('GROUP_CONCAT(DISTINCT product_option_variants_combination.variant_ids) AS variant_ids_combination')]; $productsFiltered = $objProductModel->getProducts($where, $whereForCategoryFilter, $whereForFilter, $limit, $offset, $sortClause, $wherePriceRange, $selectedColumn); $FilterDatas['filterDetails'] = $filterOptionInfo; $FilterDatas['productList'] = $productsFiltered; // echo'<pre>';print_r($FilterDatas);die("dv"); if ($FilterDatas) { $data = $filterOptionInfo; $response->code = 200; $response->message = "Success"; $response->data = $data; } else { $response->code = 100; $response->message = "Something went Wrong. No Product Details found."; $response->data = null; } } else { $errorMsg = "No parameters were found."; $response->code = 100; $response->message = $errorMsg; $response->data = null; } } else { $response->code = 401; $response->message = "Access Denied"; $response->data = null; } } else { $response->code = 401; $response->message = "Invalid request"; $response->data = null; } echo json_encode($response, true); }