/**
  * sample_VerifyAddItem::dispatchCall()
  * 
  * Dispatch the call
  *
  * @param array $params array of parameters for the eBay API call
  * 
  * @return boolean success
  */
 public function dispatchCall($params)
 {
     $req = new VerifyAddItemRequestType();
     $item = new ItemType();
     $item->setTitle($params['Title']);
     $item->setQuantity($params['Quantity']);
     $item->setCurrency($params['Currency']);
     $item->setCountry($params['Country']);
     $item->setStartPrice($params['StartPrice']);
     $item->setListingDuration($params['ListingDuration']);
     $item->setLocation($params['Location']);
     $item->setPaymentMethods($params['PaymentMethods']);
     $item->setListingType($params['ListingType']);
     $item->setDescription($params['Description']);
     $primaryCategory = new CategoryType();
     $primaryCategory->setCategoryID($params['CategoryID']);
     $item->setPrimaryCategory($primaryCategory);
     $req->setItem($item);
     $res = $this->proxy->VerifyAddItem($req);
     if ($this->testValid($res)) {
         $this->dumpObject($res);
         return true;
     } else {
         return false;
     }
 }
 /**
  * sample_AddItem::dispatchCall()
  * 
  * Dispatch the call
  *
  * @param array $params array of parameters for the eBay API call
  * 
  * @return boolean success
  */
 public function dispatchCall($params)
 {
     $a = new ShippingServiceOptionsType();
     $a->setShippingService('UPS2ndDay');
     $a->setShippingServicePriority('1');
     $a->setShippingServiceCost('5');
     $b = new ShippingDetailsType();
     //print '<pre>'.print_r(get_class_methods($b),true).'</pre><br>';
     $b->setShippingServiceOptions($a);
     //$b->setDefaultShippingCost(5);
     $b->setShippingType('Flat');
     $req = new AddItemRequestType();
     $item = new ItemType();
     $item->setTitle($params['Title']);
     $item->setQuantity($params['Quantity']);
     $item->setCurrency($params['Currency']);
     $item->setCountry($params['Country']);
     $item->setStartPrice($params['StartPrice']);
     $item->setListingDuration($params['ListingDuration']);
     $item->setLocation($params['Location']);
     $item->setPaymentMethods($params['PaymentMethods']);
     $item->setListingType($params['ListingType']);
     $item->setDescription($params['Description']);
     $item->ShippingService = 'UPS Ground';
     $item->setShippingDetails($b);
     //print '<pre>'.print_r(get_class_methods($a),true).'</pre><br>';
     //$this->dumpObject($a);
     //$this->dumpObject($item);
     $primaryCategory = new CategoryType();
     $primaryCategory->setCategoryID($params['CategoryID']);
     $item->setPrimaryCategory($primaryCategory);
     $req->setItem($item);
     $res = $this->proxy->AddItem($req);
     $this->dumpObject($res);
     if ($this->testValid($res)) {
         $this->dumpObject($res);
         return true;
     } else {
         return false;
     }
 }
 /**
  * sample_AddItem::dispatchCall()
  * 
  * Dispatch the call
  *
  * @param array $params array of parameters for the eBay API call
  * 
  * @return boolean success
  */
 public function dispatchCall($params)
 {
     $req = new AddItemRequestType();
     $item = new ItemType();
     $item->setTitle($params['Title']);
     $item->setQuantity($params['Quantity']);
     $item->setCurrency($params['Currency']);
     $item->setCountry($params['Country']);
     $item->setStartPrice($params['StartPrice']);
     $item->setListingDuration($params['ListingDuration']);
     $item->setLocation($params['Location']);
     $item->setPaymentMethods($params['PaymentMethods']);
     $item->setListingType($params['ListingType']);
     $item->setDescription($params['Description']);
     $item->setSubTitle($params['SubTitle']);
     $item->setHitCounter($params['HitCounter']);
     $item->setListingEnhancement($params['ListingEnhancement']);
     $listingDesigner = new ListingDesignerType();
     $listingDesigner->setLayoutID($params['LayoutID']);
     $listingDesigner->setThemeID($params['ThemeID']);
     $item->setListingDesigner($listingDesigner);
     $primaryCategory = new CategoryType();
     $primaryCategory->setCategoryID($params['CategoryID']);
     $item->setPrimaryCategory($primaryCategory);
     $secondaryCategory = new CategoryType();
     $secondaryCategory->setCategoryID($params['secondaryCategoryID']);
     $item->setSecondaryCategory($secondaryCategory);
     $picture = new PictureDetailsType();
     $picture->setPictureURL($params['PictureURL']);
     $item->setPictureDetails($picture);
     $req->setItem($item);
     $res = $this->proxy->AddItem($req);
     if ($this->testValid($res)) {
         $this->dumpObject($res);
         return true;
     } else {
         return false;
     }
 }
 /**
  * sample_AddItem::dispatchCall()
  * 
  * Dispatch the call
  * 
  * @param array $params array of parameters for the eBay API call
  * 
  * @return boolean success
  */
 public function dispatchCall($params)
 {
     $reqPic = new UploadSiteHostedPicturesRequestType();
     $reqPic->setPictureData(file_get_contents("/var/www/apache2-default/playground/johann/php5/Fotolia.jpg"));
     $reqPic->setPictureSet(PictureSetCodeType::CodeType_Supersize);
     $resPic = $this->proxy->UploadSiteHostedPictures($reqPic);
     if ($this->testValid($resPic)) {
         $pictureUrl = $resPic->getSiteHostedPictureDetails()->getFullURL();
         $reqItem = new AddItemRequestType();
         $item = new ItemType();
         $item->setTitle('ipod');
         $item->setQuantity(1);
         $item->setCurrency('EUR');
         $item->setCountry('DE');
         $item->setStartPrice('5.00');
         $item->setListingDuration('Days_7');
         $item->setLocation('Cologne');
         $item->setPaymentMethods('CashOnPickup');
         $item->setListingType('Chinese');
         $item->setDescription('Neuer iPod mit Kopfhörer Ladekabel und Pc-Anschlusskabel.');
         $item->setSubTitle('Brandneuer iPod Mini!');
         $item->setHitCounter('BasicStyle');
         $item->setListingEnhancement('Highlight');
         $listingDesigner = new ListingDesignerType();
         $listingDesigner->setLayoutID('7710001');
         $listingDesigner->setThemeID('7730714');
         $item->setListingDesigner($listingDesigner);
         $primaryCategory = new CategoryType();
         $primaryCategory->setCategoryID(10610);
         $item->setPrimaryCategory($primaryCategory);
         $secondaryCategory = new CategoryType();
         $secondaryCategory->setCategoryID(8267);
         $item->setSecondaryCategory($secondaryCategory);
         $picture = new PictureDetailsType();
         $picture->setPictureURL($pictureUrl);
         $item->setPictureDetails($picture);
         $attSet = new AttributeSetType();
         $attSet->setTypeAttribute('attributeSetID', 1950);
         $att = new AttributeType();
         $att->setTypeAttribute('attributeID', 10244);
         $attValue = new ValType();
         $attValue->setValueID(10426);
         $att->setValue($attValue, 0);
         $attSet->setAttribute($att, 0);
         $atts = new AttributeSetArrayType();
         $atts->setAttributeSet($attSet, 0);
         $attSet2 = new AttributeSetType();
         $attSet2->setTypeAttribute('attributeSetID', 2136);
         $att2 = new AttributeType();
         $att2->setTypeAttribute('attributeID', 3803);
         $attValue2 = new ValType();
         $attValue2->setValueID(32040);
         $att2->setValue($attValue2, 0);
         $att3 = new AttributeType();
         $att3->setTypeAttribute('attributeID', 3806);
         $attValue3 = new ValType();
         $attValue3->setValueID(-3);
         $attValue3->setValueLiteral('siehe Artikelbeschreibung');
         $att3->setValue($attValue3, 0);
         $attSet2->setAttribute($att3, 1);
         $atts->setAttributeSet($attSet2, 1);
         $item->setAttributeSetArray($atts);
         $reqItem->setItem($item);
         $resItem = $this->proxy->AddItem($reqItem);
         if ($this->testValid($resItem)) {
             $this->dumpObject($resItem);
             return true;
         } else {
             return false;
         }
     } else {
         return false;
     }
 }
예제 #5
0
 require_once $ebatns_dir . 'EbatNs_Logger.php';
 require_once $ebatns_dir . 'VerifyAddItemRequestType.php';
 require_once $ebatns_dir . 'AddItemRequestType.php';
 require_once $ebatns_dir . 'ItemType.php';
 require_once $ebatns_dir . 'ListingEnhancementsCodeType.php';
 require_once $ebatns_dir . 'BuyerPaymentMethodCodeType.php';
 require_once $ebatns_dir . 'CountryCodeType.php';
 $session = create_ebay_session();
 if ($session) {
     $ListingEnhancementsCodeType = new BuyerPaymentMethodCodeType();
     $PaymentMethodCode = new BuyerPaymentMethodCodeType();
     $CountryCodeType = new CountryCodeType();
     $cs = new EbatNs_ServiceProxy($session);
     $item = new ItemType();
     //auction type
     $item->setListingType($auction_type_name);
     $item->Currency = DEFAULT_CURRENCY;
     //currency
     $item->Site = 'Germany';
     //site (ebay.de)
     //use sheduling if there is one
     if (isset($future_auction)) {
         $item->setScheduleTime($mynewstarttime);
     }
     //set title
     $product_title = stripcslashes($product_title);
     $product_title = striptags($product_title);
     $item->Title = $product_title;
     //set subtitle
     $product_title = stripcslashes($product_subtitle);
     $product_title = striptags($product_subtitle);
예제 #6
0
 function buildItem($id, $session, $reviseItem = false, $preview = false)
 {
     // fetch record from db
     $listing = ListingsModel::getItem($id);
     $post_id = $listing['post_id'];
     $profile_details = $listing['profile_data']['details'];
     $hasVariations = ProductWrapper::hasVariations($post_id);
     $isVariation = ProductWrapper::isSingleVariation($post_id);
     // remember listing id and account id for checkItem() and buildPayment()
     $this->listing_id = $id;
     $this->account_id = $listing['account_id'];
     // adjust profile details from product level options
     $profile_details = $this->adjustProfileDetails($id, $post_id, $profile_details);
     // create Item
     $item = new ItemType();
     // set quantity
     // $item->Quantity = $listing['quantity'];
     // get current quantity from WooCommerce
     $woocom_stock = ProductWrapper::getStock($post_id);
     // get max_quantity from profile
     $max_quantity = isset($profile_details['max_quantity']) && intval($profile_details['max_quantity']) > 0 ? $profile_details['max_quantity'] : PHP_INT_MAX;
     $item->Quantity = min($max_quantity, intval($woocom_stock));
     // handle fixed quantity
     if (intval($profile_details['quantity']) > 0) {
         $item->Quantity = $profile_details['quantity'];
     }
     if ($item->Quantity < 0) {
         $item->Quantity = 0;
     }
     // prevent error for negative qty
     // set listing title
     $item->Title = $this->prepareTitle($listing['auction_title']);
     // set listing duration
     $product_listing_duration = get_post_meta($post_id, '_ebay_listing_duration', true);
     $item->ListingDuration = $product_listing_duration ? $product_listing_duration : $listing['listing_duration'];
     // omit ListingType when revising item
     if (!$reviseItem) {
         $product_listing_type = get_post_meta($post_id, '_ebay_auction_type', true);
         $ListingType = $product_listing_type ? $product_listing_type : $listing['auction_type'];
         // handle classified ads
         if ($ListingType == 'ClassifiedAd') {
             $ListingType = 'LeadGeneration';
             $item->setListingSubtype2('ClassifiedAd');
         }
         $item->setListingType($ListingType);
     }
     // set eBay Site
     $item = $this->setEbaySite($item, $session);
     // add prices
     $item = $this->buildPrices($id, $item, $post_id, $profile_details, $listing);
     // add images
     $item = $this->buildImages($id, $item, $post_id, $profile_details, $session);
     // if this is a split variation, use parent post_id for all further processing
     if ($isVariation) {
         // prepare item specifics / variation attributes
         $this->prepareSplitVariation($id, $post_id, $listing);
         // use parent post_id for all further processing
         $post_id = ProductWrapper::getVariationParent($post_id);
     }
     // add various options from $profile_details
     $item = $this->buildProfileOptions($item, $profile_details);
     // add various options that depend on $profile_details and $post_id
     $item = $this->buildProductOptions($id, $item, $post_id, $profile_details, $listing, $hasVariations, $isVariation);
     // add payment and return options
     $item = $this->buildPayment($item, $profile_details);
     // add shipping services and options
     $item = $this->buildShipping($id, $item, $post_id, $profile_details, $listing, $isVariation);
     // add seller profiles
     $item = $this->buildSellerProfiles($id, $item, $post_id, $profile_details);
     // add ebay categories and store categories
     $item = $this->buildCategories($id, $item, $post_id, $profile_details);
     // add variations
     if ($hasVariations) {
         if (@$profile_details['variations_mode'] == 'flat') {
             // don't build variations - list as flat item
             $item = $this->flattenVariations($id, $item, $post_id, $profile_details);
         } else {
             // default: list as variations
             $item = $this->buildVariations($id, $item, $profile_details, $listing, $session);
         }
     }
     // add item specifics (attributes) - after variations
     $item = $this->buildItemSpecifics($id, $item, $listing, $post_id);
     // add part compatibility list
     $item = $this->buildCompatibilityList($id, $item, $listing, $post_id);
     // set listing description - after $item has been built
     $item->Description = $this->getFinalHTML($id, $item, $preview);
     // adjust item if this is a ReviseItem request
     if ($reviseItem) {
         $item = $this->adjustItemForRevision($id, $item, $profile_details, $listing);
     } else {
         $item = $this->buildSchedule($item, $profile_details);
     }
     // add UUID to prevent duplicate AddItem or RelistItem calls
     if (!$reviseItem) {
         // build UUID from listing Title, product_id, previous ItemID and today's date and hour
         $uuid_src = $item->Title . $post_id . $listing['ebay_id'] . date('Y-m-d h');
         $item->setUUID(md5($uuid_src));
         WPLE()->logger->info('UUID src: ' . $uuid_src);
     }
     // filter final item object before it's sent to eBay
     $item = apply_filters('wplister_filter_listing_item', $item, $listing, $profile_details, $post_id);
     $item = apply_filters('wple_filter_listing_item', $item, $listing, $profile_details, $post_id, $reviseItem);
     return $item;
 }