/** * @param Product $product * @param bool $priceIncludesTax * @param int $quantity * @param int $shippingTaxRate * @return CartItem */ public function make(Product $product, $priceIncludesTax, $quantity = 1, $shippingTaxRate = 0) { $variations = $product->getVariations(); $productVariation = $variations[0]; /* @var $productVariation ProductVariation */ $params = ['productVariationId' => $productVariation->getId(), 'quantity' => $quantity, 'product' => $product, 'basePrice' => $productVariation->getPrice(), 'priceIncludesTax' => $priceIncludesTax, 'shippingType' => $this->shippingType, 'countryId' => $this->countryId, 'shippingTaxRate' => $shippingTaxRate]; return new CartItem($params); }
/** * @return ProductVariation */ private function getThisVariation() { $variations = $this->product->getVariations(); return $variations[0]; }
/** * @param Product $product * @param bool $recommend * @param string $pageTitle * @return array */ private function productBreadcrumbs(Product $product, $recommend = false, $pageTitle = '') { $breadcrumbs = $this->homeCrumb(); $breadcrumbs[] = ['title' => trans('vendirun::product.shop'), 'slug' => 'shop']; $parent_id = null; foreach ($product->getCategories() as $cat) { if ($parent_id == null || $cat->parent_id == $parent_id) { $breadcrumbs[] = ['title' => $cat->category_name, 'slug' => 'shop' . $cat->slug]; $parent_id = $cat->category_id; } if ($parent_id == null) { $parent_id = $cat->category_id; } } $slug = $recommend ? $product->makeSlug() : ''; $breadcrumbs[] = ['title' => $product->getProductName(), 'slug' => $slug]; if ($recommend) { $breadcrumbs[] = ['title' => $pageTitle, 'slug' => $slug]; } return $breadcrumbs; }