public function getOrCreateParentVariation($result, $listing, $account) { $lm = new WPLA_ListingsModel(); $parent_asin = $result->product->ASIN; WPLA()->logger->info("processing parent variation {$parent_asin}"); // find existing parent variation listing if ($parent_listing = $lm->getItemByASIN($parent_asin)) { WPLA()->logger->info("Found existing parent for ASIN {$parent_asin}"); $this->message = "Found existing variable parent listing for ASIN {$parent_asin}"; $parent_id = $parent_listing->id; } else { // create parent listing $data = array('asin' => $parent_asin, 'sku' => $parent_asin, 'product_type' => 'variable', 'source' => $listing['source'], 'status' => 'matched', 'account_id' => $account->id); $parent_id = $lm->insertListingData($data); // update listing attributes $lm->updateItemAttributes($result->product->AttributeSets->ItemAttributes, $parent_id); $parent_listing = $lm->getItem($parent_id, OBJECT); // load listing object WPLA()->logger->info("Created new parent for ASIN {$parent_asin} with ID {$parent_id}"); $this->message = "Created new variable product for ASIN {$parent_asin} with ID {$parent_id}"; } return $parent_listing; }