some small changes

This commit is contained in:
2018-10-16 22:03:50 +01:00
parent 46fced4196
commit d7df7b58b4
10 changed files with 713 additions and 9 deletions

View File

@@ -0,0 +1,199 @@
package commands
import (
"encoding/xml"
"github.com/cubixle2/go-ebay/config"
"github.com/cubixle2/go-ebay/types"
)
func NewAddFixedPriceItemRequest(cfg *config.Config, item *types.Item) *AddFixedPriceItemRequest {
// condition is always new (for now).
item.ConditionID = 1000
item.Country = "GB"
item.Currency = "GBP"
item.Site = "UK"
item.PaymentMethods = types.BuyerPaymentMethodCodeTypePayPal
item.HitCounter = "NoHitCounter"
item.ListingType = types.ListingTypeCodeTypeFixedPriceItem
return &AddFixedPriceItemRequest{
Item: *item,
RequesterCredentials: RequesterCredentials{
EBayAuthToken: cfg.AuthToken,
},
Xmlns: "urn:ebay:apis:eBLBaseComponents",
DetailLevel: "ItemReturnDescription",
Version: "837",
}
}
type AddFixedPriceItemRequest struct {
Item types.Item `xml:"Item"`
Xmlns string `xml:"xmlns,attr"`
RequesterCredentials RequesterCredentials `xml:"RequesterCredentials"`
DetailLevel string
Version string
}
func (c AddFixedPriceItemRequest) CallName() string {
return "AddFixedPriceItem"
}
// GetRequestBody returns bytes
func (c AddFixedPriceItemRequest) GetRequestBody() []byte {
body, _ := xml.Marshal(c)
return body
}
func (c AddFixedPriceItemRequest) SetToken(token string) {
c.RequesterCredentials.EBayAuthToken = token
}
// AddFixedPriceItemResponse was generated 2018-09-11 14:04:26 by lukerodham on Lukes-MacBook-Pro.local.
type AddFixedPriceItemResponse struct {
XMLName xml.Name `xml:"AddFixedPriceItemResponse"`
Text string `xml:",chardata"`
Xmlns string `xml:"xmlns,attr"`
Category2ID struct {
Text string `xml:",chardata"`
} `xml:"Category2ID"`
CategoryID struct {
Text string `xml:",chardata"`
} `xml:"CategoryID"`
DiscountReason struct {
Text string `xml:",chardata"`
} `xml:"DiscountReason"`
EndTime struct {
Text string `xml:",chardata"`
} `xml:"EndTime"`
Fees struct {
Text string `xml:",chardata"`
Fee struct {
Text string `xml:",chardata"`
Fee struct {
Text string `xml:",chardata"`
CurrencyID string `xml:"currencyID,attr"`
} `xml:"Fee"`
Name struct {
Text string `xml:",chardata"`
} `xml:"Name"`
PromotionalDiscount struct {
Text string `xml:",chardata"`
CurrencyID string `xml:"currencyID,attr"`
} `xml:"PromotionalDiscount"`
} `xml:"Fee"`
} `xml:"Fees"`
ItemID struct {
Text string `xml:",chardata"`
} `xml:"ItemID"`
ListingRecommendations struct {
Text string `xml:",chardata"`
Recommendation struct {
Text string `xml:",chardata"`
Code struct {
Text string `xml:",chardata"`
} `xml:"Code"`
FieldName struct {
Text string `xml:",chardata"`
} `xml:"FieldName"`
Group struct {
Text string `xml:",chardata"`
} `xml:"Group"`
Message struct {
Text string `xml:",chardata"`
} `xml:"Message"`
Metadata struct {
Text string `xml:",chardata"`
Name struct {
Text string `xml:",chardata"`
} `xml:"Name"`
Value struct {
Text string `xml:",chardata"`
} `xml:"Value"`
} `xml:"Metadata"`
Type struct {
Text string `xml:",chardata"`
} `xml:"Type"`
Value struct {
Text string `xml:",chardata"`
} `xml:"Value"`
} `xml:"Recommendation"`
} `xml:"ListingRecommendations"`
ProductSuggestions struct {
Text string `xml:",chardata"`
ProductSuggestion struct {
Text string `xml:",chardata"`
EPID struct {
Text string `xml:",chardata"`
} `xml:"EPID"`
Recommended struct {
Text bool `xml:",chardata"`
} `xml:"Recommended"`
StockPhoto struct {
Text string `xml:",chardata"`
} `xml:"StockPhoto"`
Title struct {
Text string `xml:",chardata"`
} `xml:"Title"`
} `xml:"ProductSuggestion"`
} `xml:"ProductSuggestions"`
SKU struct {
Text string `xml:",chardata"`
} `xml:"SKU"`
StartTime struct {
Text string `xml:",chardata"`
} `xml:"StartTime"`
Ack struct {
Text string `xml:",chardata"`
} `xml:"Ack"`
Build struct {
Text string `xml:",chardata"`
} `xml:"Build"`
CorrelationID struct {
Text string `xml:",chardata"`
} `xml:"CorrelationID"`
DuplicateInvocationDetails struct {
Text string `xml:",chardata"`
Status struct {
Text string `xml:",chardata"`
} `xml:"Status"`
} `xml:"DuplicateInvocationDetails"`
Errors struct {
Text string `xml:",chardata"`
ErrorClassification struct {
Text string `xml:",chardata"`
} `xml:"ErrorClassification"`
ErrorCode struct {
Text string `xml:",chardata"`
} `xml:"ErrorCode"`
ErrorParameters struct {
Text string `xml:",chardata"`
ParamID string `xml:"ParamID,attr"`
Value struct {
Text string `xml:",chardata"`
} `xml:"Value"`
} `xml:"ErrorParameters"`
LongMessage struct {
Text string `xml:",chardata"`
} `xml:"LongMessage"`
SeverityCode struct {
Text string `xml:",chardata"`
} `xml:"SeverityCode"`
ShortMessage struct {
Text string `xml:",chardata"`
} `xml:"ShortMessage"`
} `xml:"Errors"`
HardExpirationWarning struct {
Text string `xml:",chardata"`
} `xml:"HardExpirationWarning"`
Message struct {
Text string `xml:",chardata"`
} `xml:"Message"`
Timestamp struct {
Text string `xml:",chardata"`
} `xml:"Timestamp"`
Version struct {
Text string `xml:",chardata"`
} `xml:"Version"`
}

View File

@@ -3,7 +3,7 @@ package commands
import (
"encoding/xml"
"github.com/cubixle/go-ebay/config"
"github.com/cubixle2/go-ebay/config"
)
func NewGetItemRequest(cfg *config.Config, itemID string) *GetItemRequest {
@@ -53,6 +53,9 @@ type ItemResponse struct {
Quantity int `xml:"Quantity"`
SellingStatus SellingStatus `xml:"SellingStatus"`
ProductListingDetails ProductListingDetails `xml:"ProductListingDetails"`
ConditionID int `xml:"ConditionID"`
Country string `xml:"country"`
Currency string `xml:"Currency"`
}
type PictureDetails struct {

View File

@@ -3,7 +3,7 @@ package commands
import (
"encoding/xml"
"github.com/cubixle/go-ebay/config"
"github.com/cubixle2/go-ebay/config"
)
func NewGetMyEbaySelling(cfg *config.Config, version string, pageNumber string, perPage string) *GetMyeBaySellingRequest {

View File

@@ -3,7 +3,7 @@ package commands
import (
"encoding/xml"
"github.com/cubixle/go-ebay/config"
"github.com/cubixle2/go-ebay/config"
)
// NewGetOrdersRequest returns struct

View File

@@ -3,10 +3,11 @@ package commands
import (
"encoding/xml"
"github.com/cubixle/go-ebay/config"
"github.com/cubixle2/go-ebay/config"
"github.com/cubixle2/go-ebay/types"
)
func NewReviseItemRequest(cfg *config.Config, item ItemResponse) *ReviseItemRequest {
func NewReviseItemRequest(cfg *config.Config, item *types.Item) *ReviseItemRequest {
return &ReviseItemRequest{
Item: item,
RequesterCredentials: RequesterCredentials{
@@ -17,7 +18,7 @@ func NewReviseItemRequest(cfg *config.Config, item ItemResponse) *ReviseItemRequ
}
type ReviseItemRequest struct {
Item ItemResponse
Item *types.Item `xml:"Item"`
Xmlns string `xml:"xmlns,attr"`
RequesterCredentials RequesterCredentials `xml:"RequesterCredentials"`
}

View File

@@ -21,7 +21,7 @@ func execute(request *Request) ([]byte, error) {
xmlBody := []byte("<?xml version=\"1.0\" encoding=\"utf-8\"?>")
xmlBody = append(xmlBody, request.Command.GetRequestBody()...)
body := bytes.NewReader(xmlBody)
// panic(string(xmlBody))
req, _ := http.NewRequest(
"POST",
fmt.Sprintf("%s/ws/api.dll", config.BaseUrl),
@@ -50,6 +50,10 @@ func execute(request *Request) ([]byte, error) {
return []byte{}, fmt.Errorf("<%d> - %s", resp.StatusCode, rspBody)
}
reqBody, _ := ioutil.ReadAll(resp.Request.Body)
log.Println(string(reqBody))
rspBody, _ := ioutil.ReadAll(resp.Body)
return rspBody, nil

View File

@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<AddFixedPriceItemResponse xmlns="urn:ebay:apis:eBLBaseComponents">
<!-- Call-specific Output Fields -->
<Category2ID> string </Category2ID>
<CategoryID> string </CategoryID>
<DiscountReason> DiscountReasonCodeType </DiscountReason>
<!-- ... more DiscountReason values allowed here ... -->
<EndTime> dateTime </EndTime>
<Fees> FeesType
<Fee> FeeType
<Fee currencyID="CurrencyCodeType"> AmountType (double) </Fee>
<Name> string </Name>
<PromotionalDiscount currencyID="CurrencyCodeType"> AmountType (double) </PromotionalDiscount>
</Fee>
<!-- ... more Fee nodes allowed here ... -->
</Fees>
<ItemID> ItemIDType (string) </ItemID>
<ListingRecommendations> ListingRecommendationsType
<Recommendation> ListingRecommendationType
<Code> string </Code>
<FieldName> string </FieldName>
<Group> string </Group>
<Message> string </Message>
<Metadata> MetadataType
<Name> string </Name>
<Value> string </Value>
<!-- ... more Value values allowed here ... -->
</Metadata>
<!-- ... more Metadata nodes allowed here ... -->
<Type> string </Type>
<Value> string </Value>
<!-- ... more Value values allowed here ... -->
</Recommendation>
<!-- ... more Recommendation nodes allowed here ... -->
</ListingRecommendations>
<ProductSuggestions> ProductSuggestionsType
<ProductSuggestion> ProductSuggestionType
<EPID> string </EPID>
<Recommended> boolean </Recommended>
<StockPhoto> string </StockPhoto>
<Title> string </Title>
</ProductSuggestion>
<!-- ... more ProductSuggestion nodes allowed here ... -->
</ProductSuggestions>
<SKU> SKUType (string) </SKU>
<StartTime> dateTime </StartTime>
<!-- Standard Output Fields -->
<Ack> AckCodeType </Ack>
<Build> string </Build>
<CorrelationID> string </CorrelationID>
<DuplicateInvocationDetails> DuplicateInvocationDetailsType
<Status> InvocationStatusType </Status>
</DuplicateInvocationDetails>
<Errors> ErrorType
<ErrorClassification> ErrorClassificationCodeType </ErrorClassification>
<ErrorCode> token </ErrorCode>
<ErrorParameters ParamID="string"> ErrorParameterType
<Value> string </Value>
</ErrorParameters>
<!-- ... more ErrorParameters nodes allowed here ... -->
<LongMessage> string </LongMessage>
<SeverityCode> SeverityCodeType </SeverityCode>
<ShortMessage> string </ShortMessage>
</Errors>
<!-- ... more Errors nodes allowed here ... -->
<HardExpirationWarning> string </HardExpirationWarning>
<Message> string </Message>
<Timestamp> dateTime </Timestamp>
<Version> string </Version>
</AddFixedPriceItemResponse>

View File

@@ -1,8 +1,8 @@
package ebay
import (
"github.com/cubixle/go-ebay/commands"
"github.com/cubixle/go-ebay/config"
"github.com/cubixle2/go-ebay/commands"
"github.com/cubixle2/go-ebay/config"
)
const xmlns = "urn:ebay:apis:eBLBaseComponents"

61
types/enums.go Normal file
View File

@@ -0,0 +1,61 @@
package types
const (
PeriodCodeCustom string = "CustomCode"
PeriodCodeDays1 string = "Days_1"
PeriodCodeDays180 string = "Days_180"
PeriodCodeDays30 string = "Days_30"
PeriodCodeDays360 string = "Days_360"
PeriodCodeDays540 string = "Days_540"
)
const (
HitCountCodeTypeBasicStyle string = "BasicStyle"
HitCountCodeTypeCustomCode string = "CustomCode"
HitCountCodeTypeGreenLED string = "GreenLED"
HitCountCodeTypeHidden string = "Hidden"
HitCountCodeTypeHiddenStyle string = "HiddenStyle"
HitCountCodeTypeHonestyStyle string = "HonestyStyle"
HitCountCodeTypeNoHitCounter string = "NoHitCounter"
HitCountCodeTypeRetroStyle string = "RetroStyle"
)
const (
InventoryTrackingMethodCodeTypeCustomCode string = "CustomCode"
InventoryTrackingMethodCodeTypeItemID string = "ItemID"
InventoryTrackingMethodCodeTypeSKU string = "SKU"
)
const (
ListingEnhancementsCodeTypeBoldTitle string = "BoldTitle"
ListingEnhancementsCodeTypeCustomCode string = "CustomCode"
ListingEnhancementsCodeTypeHomePageFeatured string = "HomePageFeatured"
ListingEnhancementsCodeTypeValuePackBundle string = "ValuePackBundle"
)
const (
ListingTypeCodeTypeAdType string = "AdType"
ListingTypeCodeTypeAuction string = "Auction"
ListingTypeCodeTypeChinese string = "Chinese"
ListingTypeCodeTypeCustomCode string = "CustomCode"
ListingTypeCodeTypeFixedPriceItem string = "FixedPriceItem"
ListingTypeCodeTypeLeadGeneration string = "LeadGeneration"
ListingTypeCodeTypePersonalOffer string = "PersonalOffer"
ListingTypeCodeTypeUnkown string = "Unkown"
)
const (
BuyerPaymentMethodCodeTypePayPal string = "PayPal"
)
const (
ShippingTypeCodeTypeCalculated string = "Calculated"
ShippingTypeCodeTypeCalculatedDomesticFlatInternational string = "CalculatedDomesticFlatInternational"
ShippingTypeCodeTypeCustomCode string = "CustomCode"
ShippingTypeCodeTypeFlat string = "Flat"
ShippingTypeCodeTypeFlatDomesticCalculatedInternational string = "FlatDomesticCalculatedInternational"
ShippingTypeCodeTypeFree string = "Free"
ShippingTypeCodeTypeFreight string = "Freight"
ShippingTypeCodeTypeFreightFlat string = "FreightFlat"
ShippingTypeCodeTypeNotSpecified string = "NotSpecified"
)

366
types/types.go Normal file
View File

@@ -0,0 +1,366 @@
package types
import "time"
type Item struct {
AutoPay bool
BestOfferDetails BestOfferDetails `xml:"BestOfferDetails"`
BuyerRequirementDetails *BuyerRequirementDetails `xml:"BuyerRequirementDetails,omitempty"`
CategoryBasedAttributesPrefill bool `xml:"CategoryBasedAttributesPrefill"`
CategoryMappingAllowed bool `xml:"CategoryMappingAllowed"`
Charity *Charity `xml:"Charity,omitempty"`
ConditionDescription string `xml:"ConditionDescription,omitempty"`
ConditionID int `xml:"ConditionID,omitempty"`
Country string `xml:"Country,omitempty"`
CrossBorderTrade string `xml:"CrossBorderTrade,omitempty"`
Currency string `xml:"Currency,omitempty"`
Description string `xml:"Description,omitempty"`
DigitalGoodInfo struct {
DigitalDelivery bool `xml:"DigitalDelivery"`
} `xml:"DigitalGoodInfo"`
DisableBuyerRequirements bool `xml:"DisableBuyerRequirements"`
DiscountPriceInfo *DiscountPriceInfo `xml:"DiscountPriceInfo"`
DispatchTimeMax int `xml:"DispatchTimeMax"`
EBayNowEligible bool `xml:"eBayNowEligible"`
EBayPlus bool `xml:"eBayPlus"`
HitCounter string `xml:"HitCounter,omitempty"`
IncludeRecommendations bool `xml:"IncludeRecommendations"`
InventoryTrackingMethod string `xml:"InventoryTrackingMethod,omitempty"`
ItemCompatibilityList *struct {
Compatibility struct {
CompatibilityNotes string `xml:"CompatibilityNotes"`
NameValueList []struct {
Name string `xml:"Name"`
Value string `xml:"Value"`
} `xml:"NameValueList"`
} `xml:"Compatibility"`
} `xml:"ItemCompatibilityList,omitempty"`
ItemSpecifics ItemSpecifics `xml:"ItemSpecifics"`
ListingDesigner *struct {
LayoutID int `xml:"LayoutID"`
OptimalPictureSize bool `xml:"OptimalPictureSize"`
ThemeID int `xml:"ThemeID"`
} `xml:"ListingDesigner,omitempty"`
ListingDetails *struct {
BestOfferAutoAcceptPrice float32 `xml:"BestOfferAutoAcceptPrice"`
LocalListingDistance string `xml:"LocalListingDistance"`
MinimumBestOfferPrice float32 `xml:"MinimumBestOfferPrice"`
} `xml:"ListingDetails,omitempty"`
ListingDuration string `xml:"ListingDuration,omitempty"`
ListingEnhancement string `xml:"ListingEnhancement,omitempty"`
ListingType string `xml:"ListingType,omitempty"`
Location string `xml:"Location,omitempty"`
PaymentMethods string `xml:"PaymentMethods,omitempty"`
PayPalEmailAddress string `xml:"PayPalEmailAddress"`
PickupInStoreDetails struct {
EligibleForPickupInStore bool `xml:"EligibleForPickupInStore"`
} `xml:"PickupInStoreDetails"`
PictureDetails PictureDetails `xml:"PictureDetails"`
PostalCode string `xml:"PostalCode"`
PrimaryCategory CategoryID `xml:"PrimaryCategory"`
PrivateNotes string `xml:"PrivateNotes,omitempty"`
ProductListingDetails ProductListingDetails `xml:"ProductListingDetails"`
Quantity int `xml:"Quantity"`
QuantityInfo *struct {
MinimumRemnantSet int `xml:"MinimumRemnantSet"`
} `xml:"QuantityInfo,omitempty"`
QuantityRestrictionPerBuyer *struct {
MaximumQuantity int `xml:"MaximumQuantity"`
} `xml:"QuantityRestrictionPerBuyer,omitempty"`
ReturnPolicy *ReturnPolicy `xml:"ReturnPolicy,omitempty"`
ScheduleTime *time.Time `xml:"ScheduleTime,omitempty"`
SecondaryCategory *CategoryID `xml:"SecondaryCategory,omitempty"`
SellerProfiles *struct {
SellerPaymentProfile struct {
PaymentProfileID int64 `xml:"PaymentProfileID"`
PaymentProfileName string `xml:"PaymentProfileName"`
} `xml:"SellerPaymentProfile"`
SellerReturnProfile struct {
ReturnProfileID int64 `xml:"ReturnProfileID"`
ReturnProfileName string `xml:"ReturnProfileName"`
} `xml:"SellerReturnProfile"`
SellerShippingProfile struct {
ShippingProfileID int64 `xml:"ShippingProfileID"`
ShippingProfileName string `xml:"ShippingProfileName"`
} `xml:"SellerShippingProfile"`
} `xml:"SellerProfiles,omitempty"`
SellerProvidedTitle string `xml:"SellerProvidedTitle,omitempty"`
ShippingDetails *ShippingDetails `xml:"ShippingDetails"`
ShippingPackageDetails *ShippingPackageDetails `xml:"ShippingPackageDetails,omitempty"`
ShippingServiceCostOverrideList *ShippingServiceCostOverrideList `xml:"ShippingServiceCostOverrideList,omitempty"`
ShippingTermsInDescription bool `xml:"ShippingTermsInDescription"`
ShipToLocations string `xml:"ShipToLocations"`
Site string `xml:"Site"` // https://developer.ebay.com/devzone/xml/docs/reference/ebay/types/SiteCodeType.html
SKU string `xml:"SKU"`
StartPrice float32 `xml:"StartPrice,omitempty"`
Storefront *StoreFront `xml:"Storefront,omitempty"`
SubTitle string `xml:"SubTitle,omitempty"`
TaxCategory string `xml:"TaxCategory,omitempty"`
Title string `xml:"Title"`
UseTaxTable bool `xml:"UseTaxTable,omitempty"`
UUID string `xml:"UUID,omitempty"`
Variations *Variations `xml:"Variations,omitempty"`
VATDetails *VATDetails `xml:"VATDetails,omitempty"`
VIN string `xml:"VIN,omitempty"`
VRM string `xml:"VRM,omitempty"`
}
type ShippingDetails struct {
CalculatedShippingRate *struct {
InternationalPackagingHandlingCosts float32 `xml:"InternationalPackagingHandlingCosts,omitempty"`
MeasurementUnit string `xml:"MeasurementUnit,omitempty"` // English/Metric MeasurementSystemCodeType
OriginatingPostalCode string `xml:"OriginatingPostalCode"`
PackagingHandlingCosts float32 `xml:"PackagingHandlingCosts"`
ShippingIrregular bool `xml:"ShippingIrregular"`
} `xml:"CalculatedShippingRate,omitempty"`
CODCost float32 `xml:"CODCost"`
ExcludeShipToLocation string `xml:"ExcludeShipToLocation,omitempty"`
GlobalShipping bool `xml:"GlobalShipping"`
InternationalPromotionalShippingDiscount bool `xml:"InternationalPromotionalShippingDiscount,omitempty"`
InternationalShippingDiscountProfileID string `xml:"InternationalShippingDiscountProfileID,omitempty"`
InternationalShippingServiceOption *struct {
ShippingService string `xml:"ShippingService"`
ShippingServiceAdditionalCost float32 `xml:"ShippingServiceAdditionalCost"`
ShippingServiceCost float32 `xml:"ShippingServiceCost"`
ShippingServicePriority int `xml:"ShippingServicePriority"`
ShipToLocation string `xml:"ShipToLocation"`
} `xml:"InternationalShippingServiceOption,omitempty"`
PaymentInstructions string `xml:"PaymentInstructions"`
PromotionalShippingDiscount bool `xml:"PromotionalShippingDiscount"`
RateTableDetails *struct {
DomesticRateTable string `xml:"DomesticRateTable"`
DomesticRateTableID string `xml:"DomesticRateTableId"`
InternationalRateTable string `xml:"InternationalRateTable"`
InternationalRateTableID string `xml:"InternationalRateTableId"`
} `xml:"RateTableDetails,omitempty"`
SalesTax *struct {
SalesTaxPercent float32 `xml:"SalesTaxPercent"`
SalesTaxState string `xml:"SalesTaxState"`
ShippingIncludedInTax bool `xml:"ShippingIncludedInTax"`
} `xml:"SalesTax,omitempty"`
ShippingDiscountProfileID string `xml:"ShippingDiscountProfileID,omitempty"`
ShippingServiceOptions []ShippingServiceOptions `xml:"ShippingServiceOptions,omitempty"`
ShippingType string `xml:"ShippingType"`
}
type CategoryID struct {
CategoryID string `xml:"CategoryID"`
}
type ProductListingDetails struct {
BrandMPN BrandMPN `xml:"BrandMPN"`
EAN string `xml:"EAN,omitempty"`
IncludeeBayProductDetails bool `xml:"IncludeeBayProductDetails"`
IncludeStockPhotoURL bool `xml:"IncludeStockPhotoURL"`
ISBN string `xml:"ISBN,omitempty"`
ProductReferenceID string `xml:"ProductReferenceID,omitempty"`
ReturnSearchResultOnDuplicates bool `xml:"ReturnSearchResultOnDuplicates"`
TicketListingDetails *struct {
EventTitle string `xml:"EventTitle"`
PrintedDate string `xml:"PrintedDate"`
PrintedTime string `xml:"PrintedTime"`
Venue string `xml:"Venue"`
} `xml:"TicketListingDetails,omitempty"`
UPC string `xml:"UPC,omitempty"`
UseFirstProduct bool `xml:"UseFirstProduct"`
UseStockPhotoURLAsGallery bool `xml:"UseStockPhotoURLAsGallery"`
}
type BrandMPN struct {
Brand string `xml:"Brand"`
MPN string `xml:"MPN"`
}
type BuyerRequirementDetails struct {
MaximumItemRequirements MaximumItemRequirements `xml:"MaximumItemRequirements"`
MaximumUnpaidItemStrikesInfo MaximumUnpaidItemStrikesInfo `xml:"MaximumUnpaidItemStrikesInfo"`
ShipToRegistrationCountry bool `xml:"ShipToRegistrationCountry"`
ZeroFeedbackScore bool `xml:"ZeroFeedbackScore"`
}
type MaximumItemRequirements struct {
MaximumItemCount int `xml:"MaximumItemCount"`
MinimumFeedbackScore int `xml:"MinimumFeedbackScore"`
}
type MaximumUnpaidItemStrikesInfo struct {
Count int `xml:"Count"`
Period string `xml:"Period"`
}
type DiscountPriceInfo struct {
MadeForOutletComparisonPrice float32 `xml:"MadeForOutletComparisonPrice"`
MinimumAdvertisedPrice float32 `xml:"MinimumAdvertisedPrice"`
MinimumAdvertisedPriceExposure string `xml:"MinimumAdvertisedPriceExposure"`
OriginalRetailPrice float32 `xml:"OriginalRetailPrice"`
SoldOffeBay bool `xml:"SoldOffeBay"`
SoldOneBay bool `xml:"SoldOneBay"`
}
type ShippingServiceOptions struct {
FreeShipping bool `xml:"FreeShipping"`
ShippingService string `xml:"ShippingService,omitempty"`
ShippingServiceAdditionalCost float32 `xml:"ShippingServiceAdditionalCost,omitempty"`
ShippingServiceCost float32 `xml:"ShippingServiceCost,omitempty"`
ShippingServicePriority int `xml:"ShippingServicePriority,omitempty"`
ShippingSurcharge float32 `xml:"ShippingSurcharge,omitempty"`
}
type ShippingPackageDetails struct {
MeasurementUnit string `xml:"MeasurementUnit"` // English/Metric MeasurementSystemCodeType
PackageDepth float32 `xml:"PackageDepth"`
PackageLength float32 `xml:"PackageLength"`
PackageWidth float32 `xml:"PackageWidth"`
ShippingIrregular bool `xml:"ShippingIrregular"`
ShippingPackage string `xml:"ShippingPackage"` // https://developer.ebay.com/devzone/xml/docs/reference/ebay/types/ShippingPackageCodeType.html
WeightMajor float32 `xml:"WeightMajor"`
WeightMinor float32 `xml:"WeightMinor"`
}
type ShippingServiceCostOverrideList struct {
ShippingServiceCostOverride struct {
ShippingServiceAdditionalCost struct {
} `xml:"ShippingServiceAdditionalCost"`
ShippingServiceCost struct {
} `xml:"ShippingServiceCost"`
ShippingServicePriority struct {
} `xml:"ShippingServicePriority"`
ShippingServiceType struct {
} `xml:"ShippingServiceType"`
ShippingSurcharge struct {
} `xml:"ShippingSurcharge"`
} `xml:"ShippingServiceCostOverride"`
}
type StoreFront struct {
StoreCategory2ID int64 `xml:"StoreCategory2ID"`
StoreCategory2Name string `xml:"StoreCategory2Name"`
StoreCategoryID int64 `xml:"StoreCategoryID"`
StoreCategoryName string `xml:"StoreCategoryName"`
}
type Variations struct {
Pictures struct {
VariationSpecificName struct {
} `xml:"VariationSpecificName"`
VariationSpecificPictureSet struct {
PictureURL struct {
} `xml:"PictureURL"`
VariationSpecificValue struct {
} `xml:"VariationSpecificValue"`
} `xml:"VariationSpecificPictureSet"`
} `xml:"Pictures"`
Variation struct {
DiscountPriceInfo struct {
MadeForOutletComparisonPrice struct {
} `xml:"MadeForOutletComparisonPrice"`
MinimumAdvertisedPrice struct {
} `xml:"MinimumAdvertisedPrice"`
MinimumAdvertisedPriceExposure struct {
} `xml:"MinimumAdvertisedPriceExposure"`
OriginalRetailPrice struct {
} `xml:"OriginalRetailPrice"`
SoldOffeBay struct {
} `xml:"SoldOffeBay"`
SoldOneBay struct {
} `xml:"SoldOneBay"`
} `xml:"DiscountPriceInfo"`
Quantity struct {
} `xml:"Quantity"`
SKU struct {
} `xml:"SKU"`
StartPrice struct {
} `xml:"StartPrice"`
VariationProductListingDetails struct {
EAN struct {
} `xml:"EAN"`
ISBN struct {
} `xml:"ISBN"`
ProductReferenceID struct {
} `xml:"ProductReferenceID"`
UPC struct {
} `xml:"UPC"`
} `xml:"VariationProductListingDetails"`
VariationSpecifics struct {
NameValueList struct {
Name struct {
} `xml:"Name"`
Value struct {
} `xml:"Value"`
} `xml:"NameValueList"`
} `xml:"VariationSpecifics"`
} `xml:"Variation"`
VariationSpecificsSet struct {
NameValueList struct {
Name struct {
} `xml:"Name"`
Value struct {
} `xml:"Value"`
} `xml:"NameValueList"`
} `xml:"VariationSpecificsSet"`
}
type VATDetails struct {
BusinessSeller bool `xml:"BusinessSeller"`
RestrictedToBusiness bool `xml:"RestrictedToBusiness"`
VATPercent float32 `xml:"VATPercent"`
}
type Charity struct {
CharityID string `xml:"CharityID"`
CharityNumber int `xml:"CharityNumber"`
DonationPercent float32 `xml:"DonationPercent"`
}
type ReturnPolicy struct {
Description string `xml:"Description"`
InternationalRefundOption string `xml:"InternationalRefundOption"`
InternationalReturnsAcceptedOption string `xml:"InternationalReturnsAcceptedOption"`
InternationalReturnsWithinOption string `xml:"InternationalReturnsWithinOption"`
InternationalShippingCostPaidByOption string `xml:"InternationalShippingCostPaidByOption"`
RefundOption string `xml:"RefundOption"`
ReturnsAcceptedOption string `xml:"ReturnsAcceptedOption"`
ReturnsWithinOption string `xml:"ReturnsWithinOption"`
ShippingCostPaidByOption string `xml:"ShippingCostPaidByOption"`
}
type PictureDetails struct {
GalleryDuration string `xml:"GalleryDuration,omitempty"`
GalleryType string `xml:"GalleryType,omitempty"`
PhotoDisplay string `xml:"PhotoDisplay,omitempty"`
PictureSource string `xml:"PictureSource,omitempty"`
PictureURL []string `xml:"PictureURL"`
}
type NameValueList struct {
Name string `xml:"Name"`
Value string `xml:"Value"`
}
type ItemSpecifics struct {
NameValueList []NameValueList `xml:"NameValueList"`
}
type BestOfferDetails struct {
BestOfferEnabled bool `xml:"BestOfferEnabled"`
}