/**
  * Парсинг 1 товара
  * @param CMSPluginUrl $itemUrl
  * @param CMSTableBrand $brand
  * @return bool|void
  */
 private function parseItem(CMSPluginUrl $itemUrl, CMSTableBrand $brand)
 {
     $http = $this->getHttp();
     $itemExternalId = $itemUrl->getParamValue('productId');
     echo "-----Parse item by:\n -------{$itemUrl} \n";
     if (!$http->doGet($itemUrl)) {
         echo "GET URL Item FAIL!\n";
         return;
     }
     $content = $http->getContents();
     // пока есть два варианта ошибок на этом этапе
     // 1 - в ответ приходит пустая строка
     // 2 - страница с текстом ошибки (предположительно закончилась сессия)
     if (!$content) {
         echo "Error. Content is empty.\n";
         $this->doReLogin();
         $this->parseItem($itemUrl, $brand);
         return;
     }
     if ($this->isError($content)) {
         echo "Error. May be session end.\n";
         $this->doReLogin();
         $this->parseItem($itemUrl, $brand);
         return;
     }
     echo "\n-------Clear cart.\n";
     $this->clearCart();
     echo "\n-------Get item main params.\n";
     $itemParams = $this->getItemTitleAndCategoryParams($content);
     $variations = $this->getVariations($content);
     // определяем тип очков
     $typeItem = $this->getItemType($itemParams['categoryType']);
     foreach ($variations as $key => $variation) {
         $upcCode = $this->getUpcCode($itemParams['title'], $variation['colorCode'], $variation['sizes']['one']);
         echo "\n";
         echo "----------brand         - {$brand->getTitle()}\n";
         echo "----------model_name    - {$itemParams['title']}\n";
         echo "----------external_id   - {$itemExternalId}\n";
         echo "----------color_title   - {$variation['color']}\n";
         echo "----------color_code    - {$variation['colorCode']}\n";
         echo "----------size 1        - {$variation['sizes']['one']}\n";
         echo "----------size 2        - {$variation['sizes']['two']}\n";
         echo "----------size 3        - {$variation['sizes']['three']}\n";
         echo "----------image         - {$variation['img']}\n";
         echo "----------price         - {$variation['price']}\n";
         echo "----------type          - {$itemParams['categoryType']}\n";
         echo "----------upc           - {$upcCode}\n";
         echo "----------stock         - {$variation['stock']}\n\n";
         echo "----------country       - {$variation['country']}\n";
         echo "----------cartStock     - {$variation['cartStock']}\n";
         echo "--------------------------------------------\n";
         $imgFile = $this->getImgFile($variation['img']);
         // continue;
         // создаем обьект модели и синхронизируем
         $item = new CMSClassGlassesParserItem();
         $item->setBrand($brand);
         $item->setTitle($itemParams['title']);
         $item->setExternalId($itemExternalId);
         $item->setColor($variation['color']);
         $item->setColorCode($variation['colorCode']);
         $item->setSize($variation['sizes']['one']);
         $item->setSize2($variation['sizes']['two']);
         $item->setSize3($variation['sizes']['three']);
         $item->setPrice($variation['price']);
         $item->setType($typeItem);
         $item->setStockCount($variation['cartStock']);
         $item->setIsValid(1);
         if ($variation['country'] == self::COUNTRY_ITALY) {
             $item->setSellFrom(1);
         }
         if ($imgFile) {
             $item->setImgFile($imgFile->getFile());
         }
         if ($upcCode && $upcCode != '') {
             $item->setUpc($upcCode);
         }
         $result[] = $item;
     }
     echo "\n=============================================================================================\n";
     $this->syncingResult($result);
     echo "\n=============================================================================================\n";
 }