Example #1
0
 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);
             }
         }
     }
 }