/**
  * @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];
 }