public static function run() { $productList = self::getActiveVisibleProducts(); foreach ($productList as $product) { $productData = self::getProductInfo($product->product_id); $productEssence = Product::withData($productData); $currentProduct = self::getProductByRef($productEssence->RefId); if ($currentProduct->ProductGetByRefIdResult) { $productEssence->Id = $currentProduct->ProductGetByRefIdResult->Id; $productEssence->DepartmentId = $currentProduct->ProductGetByRefIdResult->DepartmentId; $productEssence->CategoryId = $currentProduct->ProductGetByRefIdResult->CategoryId; $productEssence->BrandId = $currentProduct->ProductGetByRefIdResult->BrandId; } self::createProductOnVtex($productEssence); if ($productEssence->isOrfan()) { $productEssence->Id = null; $currentSku = self::getSkuByRefId($productEssence->RefId); if ($currentSku->StockKeepingUnitGetByRefIdResult) { $productEssence->Id = $currentSku->StockKeepingUnitGetByRefIdResult->Id; } $sku = self::createSKUforOrfanProduct($productEssence); $skuStockQty = self::getProductStock($productEssence->essence->product_id); self::createStockForSku($sku->StockKeepingUnitInsertUpdateResult->Id, $skuStockQty); self::removeImagesForSku($sku); $skuImages = MagentoConnector::getImages($productEssence->essence->product_id); self::createImageforSku($sku, $skuImages); self::activateSku($sku->StockKeepingUnitInsertUpdateResult->Id); } else { $skuList = MagentoConnector::getSKUsForProduct($product->product_id); foreach ($skuList as $skuId) { $skuData = null; $skuEssence = null; $currentSku = null; $sku = null; $skuImages = null; $skuData = self::getProductInfo($skuId); $skuEssence = Product::withSku($skuData); $currentSku = self::getSkuByRefId($skuEssence->RefId); if ($currentSku->StockKeepingUnitGetByRefIdResult) { $skuEssence->Id = $currentSku->StockKeepingUnitGetByRefIdResult->Id; } $sku = self::createSKUforProduct($skuEssence, $currentProduct->ProductGetByRefIdResult->Id); if ($product->type == 'configurable') { $skuStockQty = self::getProductStock($skuData->product_id); } else { $skuStockQty = self::getProductStock($productEssence->essence->product_id); } self::createStockForSku($sku->StockKeepingUnitInsertUpdateResult->Id, $skuStockQty); //TODO subir especificacoes self::removeImagesForSku($sku); $skuImages = self::getImagesForSku($productEssence->essence->product_id); self::createImageforSku($sku, $skuImages); self::activateSku($sku->StockKeepingUnitInsertUpdateResult->Id); } } } }