/**
  * @param $eBayProduct
  * @param $item
  * @param $product
  */
 private function updateVariationsData($eBayProduct, $item, Product $product)
 {
     if (!$eBayProduct->Variations) {
         return;
     }
     if (!$eBayProduct->Variations->Variation) {
         return;
     }
     $item->Variations = new VariationsType();
     $variationSet = new NameValueListArrayType();
     foreach ($product->getVariationTypes() as $type) {
         $nameValue = new NameValueListType();
         $nameValue->Name = $type['name'];
         $nameValue->Value = $type['values'];
         $variationSet->NameValueList[] = $nameValue;
     }
     $item->Variations->VariationSpecificsSet = $variationSet;
     $forUpdate = [];
     $separated = $this->separateVariations($eBayProduct, $product);
     $foundVariations = $separated['found'];
     $newVariations = $separated['new'];
     // Attach the updated variations
     foreach ($foundVariations as $variation) {
         $item->Variations->Variation[] = $variation;
     }
     // Attach the new variations
     foreach ($newVariations as $option) {
         $variation = new VariationType();
         $variation->SKU = $option['sku'];
         $variation->Quantity = $option['quantity'];
         if (array_key_exists('price', $option)) {
             $variation->StartPrice = new AmountType(array('value' => doubleval($option['price'])));
         }
         $variationSpecifics = new NameValueListArrayType();
         foreach ($option['properties'] as $property) {
             $nameValue = new NameValueListType();
             $nameValue->Name = $property['name'];
             $nameValue->Value = [$property['value']];
             $variationSpecifics->NameValueList[] = $nameValue;
         }
         $variation->VariationSpecifics[] = $variationSpecifics;
         $item->Variations->Variation[] = $variation;
     }
     // remove missing variations
     foreach ($eBayProduct->Variations->Variation as $ebayVariation) {
         if (!in_array($ebayVariation, $foundVariations)) {
             if ($ebayVariation->SellingStatus->QuantitySold > 0) {
                 $ebayVariation->Quantity = 0;
             } else {
                 $ebayVariation->Delete = true;
             }
             $item->Variations->Variation[] = $ebayVariation;
         }
     }
 }