コード例 #1
0
ファイル: EbaySynchronizer.php プロジェクト: poonc/ebay
 /**
  * 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;
 }
コード例 #2
0
ファイル: ebay.php プロジェクト: anantha89/gpprestashop
 public function hookDeleteProduct($params)
 {
     if (!isset($params['product']->id)) {
         return false;
     }
     $ebay_profile = EbayProfile::getCurrent();
     EbaySynchronizer::endProductOnEbay(new EbayRequest(), $ebay_profile, $this->context, $this->ebay_country->getIdLang(), null, $params['product']->id);
 }