'Get product detail', 'message' => 'You have successfully get 1688 product detail' ]; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { $result = Open1688Helper::productDetail($request->route('offer_id')); $productAttribute = []; $variants = []; $uniqueVariants = []; $variantInfo = []; $priceList = []; $variantKeyCombinationOrder = []; foreach ($result['productAttribute'] as $attr) { $productAttribute[$attr['attributeName']] = array_key_exists($attr['attributeName'], $productAttribute) ? $productAttribute[$attr['attributeName']] . ", " . $attr['value'] : $attr['value']; } $result['productAttribute'] = $productAttribute; foreach ($result['productSkuInfos'] as $sku) { $uniqueVariantKey = ''; foreach ($sku['skuAttributes'] as $skuAttr) { if (count($variantKeyCombinationOrder) < count($sku['skuAttributes'])) { array_push($variantKeyCombinationOrder, $skuAttr['attributeName']); } if (!in_array($skuAttr['value'], $uniqueVariants)) { $variants[$skuAttr['attributeName']][] = [ 'image' => isset($skuAttr['skuImageUrl']) ? $skuAttr['skuImageUrl'] : null, 'value' => $skuAttr['value'] ]; } array_push($uniqueVariants, $skuAttr['value']); $uniqueVariantKey .= $skuAttr['value']; } $price = isset($sku['price']) ? $sku['price'] : $sku['consignPrice']; $variantInfo[$uniqueVariantKey] = [ 'skuId' => $sku['skuId'], 'amountOnSale' => $sku['amountOnSale'], 'price' => $price, ]; array_push($priceList, $price); } $result['variants'] = $variants; $result['variantInfo'] = $variantInfo; $minPrice = min($priceList); $maxPrice = max($priceList); $result['priceRange'] = $minPrice === $maxPrice ? $minPrice : "CNY ¥$minPrice - CNY ¥$maxPrice"; $result['variantKeyCombinationOrder'] = $variantKeyCombinationOrder; return $this->response(['data' => $result]); } }