/** * Exports the product to eBay and updates the ebay_product table * **/ private static function _exportProductToEbay($product, $data, $id_ebay_profile, $ebay_category, $ebay, $date, $context, $id_lang) { $ebay_profile = new EbayProfile($id_ebay_profile); $id_currency = (int) $ebay_profile->getConfiguration('EBAY_CURRENCY'); if (count($data['variations'])) { // the product is multivariation if (EbaySynchronizer::_isProductMultiSku($ebay_category, $product->id, $id_lang, $ebay_profile->ebay_site_id)) { // the category accepts multisku products and there is variables matching $data['item_specifics'] = EbaySynchronizer::_getProductItemSpecifics($ebay_category, $product, $id_lang); $data['description'] = EbaySynchronizer::_getMultiSkuItemDescription($data, $id_currency); if ($item_id = EbayProduct::getIdProductRef($product->id, $ebay_profile->ebay_user_identifier, $ebay_profile->ebay_site_id)) { $data['itemID'] = $item_id; if (!EbaySynchronizer::_hasVariationProducts($data['variations'])) { EbaySynchronizer::endProductOnEbay($ebay, $ebay_profile, $context, $id_lang, $item_id); } else { $ebay = EbaySynchronizer::_updateMultiSkuItem($product->id, $data, $id_ebay_profile, $ebay, $date); } } else { EbaySynchronizer::_addMultiSkuItem($product->id, $data, $id_ebay_profile, $ebay, $date); } } else { // No Multi Sku case so we do multiple products from a multivariation product $data['item_specifics'] = EbaySynchronizer::_getProductItemSpecifics($ebay_category, $product, $id_lang, true); foreach ($data['variations'] as $variation) { $data_variation = EbaySynchronizer::_getVariationData($data, $variation, $id_currency); // Check if product exists on eBay if ($itemID = EbayProduct::getIdProductRef($product->id, $ebay_profile->ebay_user_identifier, $ebay_profile->ebay_site_id, $data_variation['id_attribute'])) { $data_variation['itemID'] = $itemID; if ($data_variation['quantity'] < 1) { // no more products EbaySynchronizer::endProductOnEbay($ebay, $ebay_profile, $context, $id_lang, $itemID); } else { EbaySynchronizer::_updateItem($product->id, $data_variation, $id_ebay_profile, $ebay, $date, $data_variation['id_attribute']); } } else { EbaySynchronizer::_addItem($product->id, $data_variation, $id_ebay_profile, $ebay, $date, $data_variation['id_attribute']); } } } } else { // the product is not a multivariation product $data['item_specifics'] = EbaySynchronizer::_getProductItemSpecifics($ebay_category, $product, $id_lang); $data['description'] = EbaySynchronizer::_getItemDescription($data, $id_currency); // Check if product exists on eBay if ($itemID = EbayProduct::getIdProductRef($product->id, $ebay_profile->ebay_user_identifier, $ebay_profile->ebay_site_id)) { $data['itemID'] = $itemID; // Delete or Update if ($data['quantity'] < 1) { EbaySynchronizer::endProductOnEbay($ebay, $ebay_profile, $context, $id_lang, $itemID); } else { EbaySynchronizer::_updateItem($product->id, $data, $id_ebay_profile, $ebay, $date); } } else { EbaySynchronizer::_addItem($product->id, $data, $id_ebay_profile, $ebay, $date); } } return $ebay; }