private static Map<String, String> loadSeedProducts(String seedFileName) throws Exception {
		int totalRows = 0, badUPCCount = 0, badProductIdCount = 0;
		Map<String, String> products = new LinkedHashMap<String, String>();

		XSSFWorkbook wb = readFile(seedFileName);

		for (int k = 0; k < 1; k++) {

			XSSFSheet sheet = wb.getSheetAt(k);
			int rows = sheet.getPhysicalNumberOfRows();
			totalRows = rows - 1;

			for (int r = 1; r < rows; r++) {
				try {
					XSSFRow row = sheet.getRow(r);
					if (row == null) {
						System.out.println("Ignoring Empty Row: " + r);
						continue;
					}

					XSSFCell cell0 = row.getCell(0);// SKU
					XSSFCell cell1 = row.getCell(1);// Viking URL
					if (cell0 != null) {
						String sku = getCellData(cell0);
						if (cell1 != null) {
							String url = cell1.getStringCellValue();
							products.put(sku, url);
						}
					}
				} catch (Exception ex) {
					ex.printStackTrace();
					System.out.println("row = " + r + " has invalid data.");
					badUPCCount++;
					throw ex;
				}
			}
		}

		System.out.println("Valid Seed Products = " + products.size());
		System.out.println("Bad UPCs =            " + badUPCCount);
		System.out.println("No RSProduct Ids =      " + badProductIdCount);
		System.out.println("                     -----");
		System.out.println("Total Seed Products   = " + totalRows);

		return products;
	}