Descargate aquí la guía API para integrar tu

Anuncio
 MANUAL V.2.1
Guía eBay API
2
TABLA DE CONTENIDOS
Introducción
3
Creación de cuenta de desarrollador
4
Identificación de categorías de eBay API
9
Publicación de anuncios via trading API
12
Publicación de anuncios LMS-API
21
Descarga de pedidos vía API
31
Confirmación de envíos vía API
41
Problemas comunes
43
Guía de integración vía API 3
1. Introducción
eBay ofrece una serie de herramientas para interactuar con diferentes funcionalidades sin tener que acceder directamente a su interfaz web, permitiendo el desarrollo de aplicaciones específicas para clientes con necesidades concretas. Estas herramientas son accesibles mediante llamadas a servicios web y están limitadas por defecto a 5000 peticiones diarias pero este límite se puede incrementar hasta millón y medio solicitándolo a través de un ​formulario​. 1.1. Escenarios de uso. Principalmente este tipo de integración está orientada a tiendas que cuenten con un servicio informático propio. Estas tiendas son aquellas que se plantean realizar integraciones muy específicas con sus plataformas ya sea por necesidad o por facilidad de uso. 1.2. Ventajas e inconvenientes. 1.2.1. Ventajas ●
●
●
●
Permite desarrollos personalizados. Se tiene un control sobre todos los pasos que realice la herramienta. Tiene un gran número de funciones de las que podemos hacer uso. (​https://go.developer.ebay.com/api­documentation/#Trading​) Operaciones sobre productos y otras funciones muy específicas. 1.2.2. Inconvenientes ●
●
●
Es necesario un nivel técnico de informática profesional. El número de llamadas para inventarios grandes es relativamente pequeño, aunque se puede aumentar, este proceso no es automático y puede tardar. Para inventarios excesivamente grandes no es una opción de uso por los tiempos totales que tarda en hacer operaciones sobre los productos. Guía de integración vía API 4
2. Creación de cuenta de desarrollador
Para hacer uso de las funcionalidades de la Api de eBay es necesario estar dado de alta en el programa de desarrolladores de eBay, este servicio puede ser accedido desde https://go.developer.ebay.com/​ y permite darse de alta desde la misma página. Guía de integración vía API 5
Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno para el entorno sandbox y otro para el entorno de producción. Estos datos son necesarios para realizar las peticiones a la API de eBay en ambos entornos, todas las peticiones realizadas mediante estas claves aunque sean a varias cuentas de eBay están englobadas en lo que eBay llama aplicación. 2.1. Uso del entorno de sandbox El entorno de sandbox de eBay permite realizar operaciones con la API de eBay en un entorno de pruebas, es ideal para el desarrollo de aplicaciones y soluciones propias ya que las operaciones no se realizan sobre productos o cuentas reales. Los cambios entre sandbox y producción a la hora de realizar las llamadas, únicamente están en los endpoint de la API. Guía de integración vía API 6
Arriba un ejemplo de llamada a API desde entorno sandbox, como podemos observar tendremos que añadir los datos que hemos obtenido en el keyset de sandbox y cambiar la url del endpoint. 2.1.1. Datos de uso de Sandbox Los datos necesarios para trabajar con el entorno de sandbox serían: ● url endpoint: ​https://sandbox.ebay.com/ws/api.dll ● Keyset de sandbox: ​Generada desde el área de desarrolladores 2.1.2. Limitaciones del entorno de sandbox El sandbox es un entorno de pruebas y está pensado para comprobar el funcionamiento de las aplicaciones, aún así tiene ciertas limitaciones que no existen en el entorno de producción. Guía de integración vía API 7
Limitaciones: ● Las llamadas a la API no devuelven todos los resultados de todas las operaciones para evitar sobrecargas en los servidores de eBay. ● La plataforma no es estable teniendo en muchos momentos caídas en los servidores y ralentizaciones en las operaciones. ● En ciertos momentos enlaces u opciones de la plataforma no funcionan de forma adecuada. 2.2. Uso del entorno de producción Una vez creado el keyset de eBay para producción podremos realizar 5000 peticiones diarias pero este límite puede ser aumentado desde el área de desarrolladores de eBay explicando el motivo de la solicitud del incremento.. Para realizar esta operación deberemos realizar los siguientes pasos: 1)Seleccionamos Premium support. 2) La sección App Check. Guía de integración vía API 8
3) Rellenamos los datos que nos piden, el equipo de eBay se pondrá en contacto con nosotros con la resolución de la solicitud. Guía de integración vía API 9
3. Identificación de categorías de eBay vía API
eBay permite realizar un “mapeo” inicial de categorías de productos a través de la llamada “GetSuggestedCategories” de la Trading API (​http://developer.ebay.com/devzone/xml/docs/reference/ebay/index.html​). Para ello es necesario enviar un xml mediante una llamada HTTP a la url ​https://api.ebay.com/ws/api.dll con método POST indicando en las cabeceras los identificadores de la aplicación creada en el área de desarrolladores de eBay. A continuación se muestra un ejemplo de dicha llamada: Entrada Cabecera X­EBAY­API­COMPATIBILITY­LEVEL : 793 X­EBAY­API­APP­NAME : APP_NAME X­EBAY­API­CERT­NAME : CERT_NAME X­EBAY­API­DEV­NAME : DEV_NAME X­EBAY­API­SITEID : 0 X­EBAY­API­CALL­NAME : GetSuggestedCategories Cuerpo XML <?​xml​ ​version​=​"1.0"​ ​encoding​=​"utf­8"​?> <GetSuggestedCategoriesRequest​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> <RequesterCredentials> <eBayAuthToken>​Aqui tu Token!​</eBayAuthToken> </RequesterCredentials> <Query>​camera​</Query> </GetSuggestedCategoriesRequest> Salida <GetSuggestedCategoriesResponse​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> ​<Timestamp>​2015­04­13T13:56:38.178Z​</Timestamp> ​<Ack>​Success​</Ack> ​<Version>​917​</Version> ​<Build>​E917_UNI_API5_17456394_R1​</Build> ​<SuggestedCategoryArray> <SuggestedCategory> <Category> <CategoryID>​31388​</CategoryID> <CategoryName>​Digital Cameras​</CategoryName> <CategoryParentID>​625​</CategoryParentID> <CategoryParentName>​Cameras ​&​ Photo​</CategoryParentName> </Category> Guía de integración vía API 10
<PercentItemFound>​91​</PercentItemFound> </SuggestedCategory> <SuggestedCategory> <Category> <CategoryID>​15230​</CategoryID> <CategoryName>​Film Cameras​</CategoryName> <CategoryParentID>​625​</CategoryParentID> <CategoryParentID>​69323​</CategoryParentID> <CategoryParentName>​Cameras ​&​ Photo​</CategoryParentName> <CategoryParentName>​Film Photography​</CategoryParentName> </Category> <PercentItemFound>​4​</PercentItemFound> </SuggestedCategory> <SuggestedCategory> <Category> <CategoryID>​88433​</CategoryID> <CategoryName>​Other​</CategoryName> <CategoryParentID>​99​</CategoryParentID> <CategoryParentName>​Everything Else​</CategoryParentName> </Category> <PercentItemFound>​2​</PercentItemFound> </SuggestedCategory> <SuggestedCategory> <Category> <CategoryID>​48638​</CategoryID> <CategoryName>​Security Cameras​</CategoryName> <CategoryParentID>​293​</CategoryParentID> <CategoryParentID>​48633​</CategoryParentID> <CategoryParentName>​Consumer Electronics​</CategoryParentName> <CategoryParentName>​Home Surveillance​</CategoryParentName> </Category> <PercentItemFound>​1​</PercentItemFound> </SuggestedCategory> <SuggestedCategory> <Category> <CategoryID>​11724​</CategoryID> <CategoryName>​Camcorders​</CategoryName> <CategoryParentID>​625​</CategoryParentID> <CategoryParentName>​Cameras ​&​ Photo​</CategoryParentName> </Category> <PercentItemFound>​1​</PercentItemFound> </SuggestedCategory> <SuggestedCategory> <Category> <CategoryID>​162480​</CategoryID> <CategoryName>​Other​</CategoryName> <CategoryParentID>​625​</CategoryParentID> <CategoryParentID>​15200​</CategoryParentID> <CategoryParentName>​Cameras ​&​ Photo​</CategoryParentName> <CategoryParentName>​Camera ​&​ Photo Accessories​</CategoryParentName> </Category> <PercentItemFound>​0​</PercentItemFound> </SuggestedCategory> <SuggestedCategory> <Category> <CategoryID>​88754​</CategoryID> <CategoryName>​Digital Video Recorders, Cards​</CategoryName> <CategoryParentID>​293​</CategoryParentID> <CategoryParentID>​48633​</CategoryParentID> <CategoryParentName>​Consumer Electronics​</CategoryParentName> <CategoryParentName>​Home Surveillance​</CategoryParentName> </Category> Guía de integración vía API 11
<PercentItemFound>​0​</PercentItemFound> </SuggestedCategory> <SuggestedCategory> <Category> <CategoryID>​107894​</CategoryID> <CategoryName>​Cases, Bags ​&​ Covers​</CategoryName> <CategoryParentID>​625​</CategoryParentID> <CategoryParentID>​15200​</CategoryParentID> <CategoryParentName>​Cameras ​&​ Photo​</CategoryParentName> <CategoryParentName>​Camera ​&​ Photo Accessories​</CategoryParentName> </Category> <PercentItemFound>​0​</PercentItemFound> </SuggestedCategory> <SuggestedCategory> <Category> <CategoryID>​98923​</CategoryID> <CategoryName>​35mm Cameras​</CategoryName> <CategoryParentID>​625​</CategoryParentID> <CategoryParentID>​3326​</CategoryParentID> <CategoryParentID>​101643​</CategoryParentID> <CategoryParentName>​Cameras ​&​ Photo​</CategoryParentName> <CategoryParentName>​Vintage Movie ​&​ Photography​</CategoryParentName> <CategoryParentName>​Vintage Cameras​</CategoryParentName> </Category> <PercentItemFound>​0​</PercentItemFound> </SuggestedCategory> <SuggestedCategory> <Category> <CategoryID>​52505​</CategoryID> <CategoryName>​Game ​&​ Trail Cameras​</CategoryName> <CategoryParentID>​888​</CategoryParentID> <CategoryParentID>​7301​</CategoryParentID> <CategoryParentName>​Sporting Goods​</CategoryParentName> <CategoryParentName>​Hunting​</CategoryParentName> </Category> <PercentItemFound>​0​</PercentItemFound> </SuggestedCategory> ​</SuggestedCategoryArray> ​<CategoryCount>​10​</CategoryCount> </GetSuggestedCategoriesResponse> Guía de integración vía API 12
4. Publicación de anuncios vía trading API La publicación de anuncios vía API se realiza mediante ​llamadas HTTP que soporta tanto el uso de formato XML como a través del protocolo SOAP. El siguiente enlace muestra la lista completa de ​funciones de la API​. De todas ellas las más importantes y utilizadas para la publicación y actualización de anuncios son: ● AddFixedPriceItem​: publica un nuevo producto ● EndFixedPriceItem​: finaliza un producto ● RelistFixedPriceItem​: vuelve a publicar un anuncio previamente finalizado ● ReviseFixedPriceItem​: actualiza la información de un producto ● ReviseInventoryStatus​: actualiza el stock y el precio de un conjunto de productos 4.1. AddFixedPriceItem Descripción Esta llamada se utiliza para publicar nuevos productos a un precio fijo. Posee las siguientes particularidades: ● Posibilidad de realizar el seguimiento mediante ​SKU ​en lugar de ​itemID​, para realizar esta operación debemos fijar el valor de ​Item.InventoryTrackingMethod ​a SKU​. Si es necesario realizar un gran volumen de operaciones es recomendable utilizar ​LMS​. Entrada Cabecera X­EBAY­API­COMPATIBILITY­LEVEL : 793 X­EBAY­API­APP­NAME : APP_NAME X­EBAY­API­CERT­NAME : CERT_NAME X­EBAY­API­DEV­NAME : DEV_NAME X­EBAY­API­SITEID : 0 X­EBAY­API­CALL­NAME : AddFixedPriceItem Cuerpo XML <?​xml​ ​version​=​"1.0"​ ​encoding​=​"utf­8"​?> <AddFixedPriceItemRequest​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> <RequesterCredentials> <eBayAuthToken>​AQUÏ TU TOKEN!​</eBayAuthToken> Guía de integración vía API 13
</RequesterCredentials> <Item> <Title>​THIS IS A TEST, DO NOT BUY ­ ESTO ES UNA PRUEBA, NO COMPRAR ­ MULTISITESKU​</Title> <Description>​THIS IS A TEST, DO NOT BUY ­ ESTO ES UNA PRUEBA, NO COMPRAR ­ MULTISITESKU​</Description> <PrimaryCategory> <CategoryID>​11848​</CategoryID> </PrimaryCategory> <Quantity>​6​</Quantity> <StartPrice>​50.00​</StartPrice> <CategoryMappingAllowed>​true​</CategoryMappingAllowed> <ConditionID>​1000​</ConditionID> <Country>​ES​</Country> <Currency>​EUR​</Currency> <DispatchTimeMax>​3​</DispatchTimeMax> <ListingDuration>​Days_30​</ListingDuration> <ListingType>​FixedPriceItem​</ListingType> <PaymentMethods>​PayPal​</PaymentMethods> <PayPalEmailAddress>​[email protected]​</PayPalEmailAddress>
<PictureDetails> <PictureURL>​http://www.perfumesclub.com/anuncios/ebay/images/banner1.jpg​</PictureURL> </PictureDetails>
<InventoryTrackingMethod>​SKU​</InventoryTrackingMethod>
<Location>​Avilés​</Location>
<ShippingDetails> <ShippingType>​Flat​</ShippingType> <ShippingServiceOptions> <ShippingServicePriority>​1​</ShippingServicePriority> <ShippingService>​ES_CorreosCartasCertificadas​</ShippingService> <ShippingServiceCost​ ​currencyID​=​"EUR"​>​0.0​</ShippingServiceCost> <ShippingServiceAdditionalCost>​0.00​</ShippingServiceAdditionalCost> <FreeShipping>​true​</FreeShipping> </ShippingServiceOptions> </ShippingDetails> <Site>​Spain​</Site> <SKU>​SKUMULTISITESKU​</SKU>
</Item> </AddFixedPriceItemRequest> Salida <AddFixedPriceItemResponse​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> ​<Timestamp>​2015­05­18T09:38:16.024Z​</Timestamp> ​<Ack>​Warning​</Ack> ​<Errors> <ShortMessage>​PayPal puede retrasar la transferencia de fondos para garantizar que la transacción no causa problemas.​</ShortMessage> <LongMessage>​PayPal puede retrasar la transferencia de fondos para garantizar que la transacción no causa problemas.​</LongMessage> <ErrorCode>​21915465​</ErrorCode> <SeverityCode>​Warning​</SeverityCode> <ErrorParameters​ ​ParamID​=​"0"​>​ ​<Value>​21​</Value></ErrorParameters> <ErrorClassification>​RequestError​</ErrorClassification> ​</Errors> ​<Version>​923​</Version> ​<Build>​E923_UNI_API5_17505402_R1​</Build> ​<ItemID>​111673986844​</ItemID> ​<SKU>​SKUMULTISITESKA​</SKU> Guía de integración vía API 14
​<StartTime>​2015­05­18T09:38:14.493Z​</StartTime> ​<EndTime>​2015­06­17T09:38:14.493Z​</EndTime> ​<Fees> <Fee><Name>​AuctionLengthFee​</Name>​ ​<Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee>​ ​</Fee> <Fee><Name>​BoldFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​BuyItNowFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​CategoryFeaturedFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee>​ ​</Fee> <Fee><Name>​FeaturedFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​GalleryPlusFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​FeaturedGalleryFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​FixedPriceDurationFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​GalleryFee​</Name>​ ​<Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​GiftIconFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​HighLightFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​InsertionFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​InternationalInsertionFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ListingDesignerFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ListingFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​PhotoDisplayFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​PhotoFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee>​ ​</Fee> <Fee><Name>​ReserveFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​SchedulingFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee>​ ​</Fee> <Fee><Name>​SubtitleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee> <Fee><Name>​BorderFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ProPackBundleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​BasicUpgradePackBundleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ValuePackBundleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​PrivateListingFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ProPackPlusBundleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​MotorsGermanySearchFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> ​</Fees> </AddFixedPriceItemResponse> 4.2. EndFixedPriceItem Descripción Esta llamada se utiliza para poner fin a un producto de precio fijo antes de la fecha y la hora en que normalmente debería terminar. TIene las siguientes particularidades: ● Si se ha listado mediante ​SKU​, se puede utilizar el campo ​SKU ​en vez del ​ItemID para identificar el producto.​. ● Esta llamada solo permite finalizar anuncios de precio fijo, no de subastas. ● Permite finalizar tanto productos con variantes como sin ellas​. Entrada Cabecera X­EBAY­API­COMPATIBILITY­LEVEL : 793 X­EBAY­API­APP­NAME : APP_NAME X­EBAY­API­CERT­NAME : CERT_NAME X­EBAY­API­DEV­NAME : DEV_NAME X­EBAY­API­SITEID : 0 X­EBAY­API­CALL­NAME : EndFixedPriceItem Guía de integración vía API 15
Cuerpo XML <?​xml​ ​version​=​"1.0"​ ​encoding​=​"utf­8"​?> <EndFixedPriceItemRequest​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> ​<SKU>​SKUMULTISITESKA​</SKU> ​<EndingReason>​SellToHighBidder​</EndingReason> ​<RequesterCredentials> ​<eBayAuthToken>​AQUÏ TU TOKE!​</eBayAuthToken> ​</RequesterCredentials> </EndFixedPriceItemRequest> Salida <EndFixedPriceItemResponse​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> ​<Timestamp>​2015­05­18T14:18:54.643Z​</Timestamp> ​<Ack>​Success​</Ack> ​<Version>​923​</Version> ​<Build>​E923_UNI_API5_17505402_R1​</Build> ​<EndTime>​2015­05­18T14:18:54.000Z​</EndTime> ​<SKU>​SKUMULTISITESKA​</SKU> </EndFixedPriceItemResponse> 4.3. RelistFixedPriceItem Descripción Esta llamada se utiliza para volver a publicar productos de precio fijo que han sido previamente finalizados, además también permite modificar ciertas propiedades del artículo. La llamada posee las siguientes particularidades: ● Si se ha listado mediante ​SKU​, se puede utilizar el campo ​SKU ​en vez del ​ItemID para identificar el producto.​. ● Esta llamada solo permite relistar anuncios de precio fijo, no de subastas. ● Permite relistar tanto productos con variantes como sin ellas​. Para relistar grandes volúmenes de productos es mejor usar LMS. Entrada Cabecera X­EBAY­API­COMPATIBILITY­LEVEL : 793 X­EBAY­API­APP­NAME : APP_NAME X­EBAY­API­CERT­NAME : CERT_NAME X­EBAY­API­DEV­NAME : DEV_NAME X­EBAY­API­SITEID : 0 X­EBAY­API­CALL­NAME : EndFixedPriceItem Cuerpo XML Guía de integración vía API 16
<?​xml​ ​version​=​"1.0"​ ​encoding​=​"utf­8"​?> <RelistFixedPriceItemRequest​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> <RequesterCredentials> <eBayAuthToken>​INTRODUCE TU TOKEN​</eBayAuthToken> </RequesterCredentials> ​<Item> ​<SKU>​SKUMULTISITESKA​</SKU> ​<InventoryTrackingMethod>​SKU​</InventoryTrackingMethod> ​</Item> </RelistFixedPriceItemRequest> Salida <RelistFixedPriceItemResponse​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> ​<Timestamp>​2015­05­18T15:11:06.903Z​</Timestamp> ​<Ack>​Warning​</Ack> ​<Errors> <ShortMessage>​PayPal puede retrasar la transferencia de fondos para garantizar que la transacción no causa problemas.​</ShortMessage> <LongMessage>​PayPal puede retrasar la transferencia de fondos para garantizar que la transacción no causa problemas.​</LongMessage> <ErrorCode>​21915465​</ErrorCode> <SeverityCode>​Warning​</SeverityCode> <ErrorParameters​ ​ParamID​=​"0"​> <Value>​21​</Value> </ErrorParameters> <ErrorClassification>​RequestError​</ErrorClassification> ​</Errors> ​<Version>​923​</Version> ​<Build>​E923_UNI_API5_17505402_R1​</Build> ​<ItemID>​111674325655​</ItemID> ​<SKU>​SKUMULTISITESKA​</SKU> ​<Fees> <Fee><Name>​AuctionLengthFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​BoldFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​BuyItNowFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​CategoryFeaturedFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​FeaturedFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​GalleryPlusFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​FeaturedGalleryFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​FixedPriceDurationFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​GalleryFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​GiftIconFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​HighLightFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​InsertionFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee>​ ​</Fee> <Fee><Name>​InternationalInsertionFee​</Name>​ ​<Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ListingDesignerFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ListingFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​PhotoDisplayFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​PhotoFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ReserveFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​SchedulingFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​SubtitleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​BorderFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ProPackBundleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​BasicUpgradePackBundleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ValuePackBundleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​PrivateListingFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> Guía de integración vía API 17
<Fee><Name>​ProPackPlusBundleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​MotorsGermanySearchFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> ​</Fees> ​<StartTime>​2015­05­18T15:11:05.044Z​</StartTime> ​<EndTime>​2015­06­17T15:11:05.044Z​</EndTime> </RelistFixedPriceItemResponse> 4.4. ReviseFixedPriceItem Descripción Esta llamada se usa para actualizar propiedades de productos con precio fijo. Tiene las siguientes particularidades: ● Si se ha listado mediante ​SKU, ​se puede utilizar el campo ​SKU ​en vez del ​ItemID para identificar el producto.​. ● Esta llamada solo permite actualizar anuncios de precio fijo, no de subastas. ● Permite actualizar tanto productos con variantes como sin ellas​. Para volúmenes grandes de operaciones es mejor usar LMS. En el siguiente ejemplo actualizamos el precio del artículo a 52.00. Entrada Cabecera X­EBAY­API­COMPATIBILITY­LEVEL : 793 X­EBAY­API­APP­NAME : APP_NAME X­EBAY­API­CERT­NAME : CERT_NAME X­EBAY­API­DEV­NAME : DEV_NAME X­EBAY­API­SITEID : 0 X­EBAY­API­CALL­NAME : EndFixedPriceItem Cuerpo XML <?​xml​ ​version​=​"1.0"​ ​encoding​=​"utf­8"​?> <ReviseFixedPriceItemRequest​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> ​<RequesterCredentials> <eBayAuthTokenINTRODUCE​ ​TU​ ​TOKEN​</​eBayAuthToken​> ​</RequesterCredentials> ​<Item> <SKU>​SKUMULTISITESKA​</SKU> <StartPrice>​52.00​</StartPrice> ​</Item> </ReviseFixedPriceItemRequest> Salida <ReviseFixedPriceItemResponse​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> ​<Timestamp>​2015­05­18T16:21:12.267Z​</Timestamp> Guía de integración vía API 18
​<Ack>​Warning​</Ack> ​<Errors> <ShortMessage>​PayPal puede retrasar la transferencia de fondos para garantizar que la transacción no causa problemas.​</ShortMessage> <LongMessage>​PayPal puede retrasar la transferencia de fondos para garantizar que la transacción no causa problemas.​</LongMessage> <ErrorCode>​21915465​</ErrorCode> <SeverityCode>​Warning​</SeverityCode> <ErrorParameters​ ​ParamID​=​"0"​> <Value>​21​</Value> </ErrorParameters> <ErrorClassification>​RequestError​</ErrorClassification> ​</Errors> ​<Version>​923​</Version> ​<Build>​E923_UNI_API5_17505402_R1​</Build> ​<ItemID>​111674325655​</ItemID> ​<SKU>​SKUMULTISITESKA​</SKU> ​<StartTime>​2015­05­18T15:11:05.000Z​</StartTime> ​<EndTime>​2015­06­17T15:11:05.000Z​</EndTime> ​<Fees> <Fee><Name>​AuctionLengthFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​BoldFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​BuyItNowFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​CategoryFeaturedFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​FeaturedFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​GalleryPlusFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​FeaturedGalleryFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​FixedPriceDurationFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​GalleryFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​GiftIconFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​HighLightFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​InsertionFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​InternationalInsertionFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ListingDesignerFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ListingFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​PhotoDisplayFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​PhotoFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ReserveFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​SchedulingFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​SubtitleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​BorderFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ProPackBundleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​BasicUpgradePackBundleFee​</Name><Fee currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ValuePackBundleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​PrivateListingFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ProPackPlusBundleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​MotorsGermanySearchFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> ​</Fees> </ReviseFixedPriceItemResponse> 4.5. ReviseInventoryStatus Descripción Esta llamada permite cambiar el precio y el stock de productos con precio fijo. Tiene las siguientes particularidades: Guía de integración vía API 19
●
●
●
Si se ha listado mediante ​SKU, ​se puede utilizar el campo ​SKU ​en vez del ​ItemID para identificar el producto.​. Esta llamada solo permite actualizar anuncios de precio fijo, no de subastas. Permite actualizar tanto productos con variantes como sin ellas​. Para volúmenes grandes de operaciones es más recomendable utilizar LMS. En el siguiente ejemplo actualizamos el precio del artículo a 19,95 y stock 80. Entrada Cabecera X­EBAY­API­COMPATIBILITY­LEVEL : 793 X­EBAY­API­APP­NAME : APP_NAME X­EBAY­API­CERT­NAME : CERT_NAME X­EBAY­API­DEV­NAME : DEV_NAME X­EBAY­API­SITEID : 0 X­EBAY­API­CALL­NAME : ReviseInventoryStatus Cuerpo XML <?​xml​ ​version​=​"1.0"​ ​encoding​=​"utf­8"​?> <ReviseInventoryStatusRequest​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> ​<RequesterCredentials> <eBayAuthToken>​INTRODUCE TU TOKEN​</eBayAuthToken> ​</RequesterCredentials> ​<InventoryStatus> <SKU>​SKUMULTISITESKA​</SKU> <StartPrice>​19.95​</StartPrice> <Quantity>​80​</Quantity> ​</InventoryStatus> </ReviseInventoryStatusRequest> Salida <ReviseInventoryStatusResponse​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> ​<Timestamp>​2015­05­19T08:22:50.062Z​</Timestamp> ​<Ack>​Success​</Ack> ​<Version>​923​</Version> ​<Build>​E923_UNI_API5_17505402_R1​</Build> ​<InventoryStatus> <SKU>​SKUMULTISITESKA​</SKU> <ItemID>​111674325655​</ItemID> <StartPrice>​19.95​</StartPrice> <Quantity>​80​</Quantity> ​</InventoryStatus> ​<Fees> <ItemID>​111674325655​</ItemID> <Fee><Name>​AuctionLengthFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​BoldFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​BuyItNowFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​CategoryFeaturedFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​FeaturedFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​GalleryPlusFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​FeaturedGalleryFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> Guía de integración vía API 20
<Fee><Name>​FixedPriceDurationFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​GalleryFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​GiftIconFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​HighLightFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​InsertionFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​InternationalInsertionFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ListingDesignerFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ListingFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​PhotoDisplayFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​PhotoFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ReserveFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​SchedulingFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​SubtitleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​BorderFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ProPackBundleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​BasicUpgradePackBundleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ValuePackBundleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​PrivateListingFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​ProPackPlusBundleFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> <Fee><Name>​MotorsGermanySearchFee​</Name><Fee​ ​currencyID​=​"EUR"​>​0.0​</Fee></Fee> ​</Fees> </ReviseInventoryStatusResponse> Guía de integración vía API 21
5. Publicación de anuncios LMS ­ API
Large Merchant Services (LMS) permite publicar y actualizar inventarios de manera masiva. A diferencia de la Trading API que hace una llamada por cada elemento, este sistema utiliza un fichero con múltiples operaciones, por lo que los tiempos de publicaciones, actualizaciones de precio y stock se realizan en un tiempo menor. Es aconsejable para inventarios de gran volumen. Puede ​descargarse el esqueleto necesario para utilizar LMS en diferentes lenguajes, siendo el más utilizado el de PHP. 5.1. Proceso de Ejecución de órdenes en LMS En LMS todas las órdenes que se engloban dentro de la API BulkDataExchangeRequests realizan el mismo proceso de llamadas que a continuación explicamos. 5.1.1. CreateUploadJob Creamos una tarea de subida de archivos. Código PHP $headers = array ( 'X­EBAY­SOA­REQUEST­DATA­FORMAT: ' . $this­>dataFormat, 'X­EBAY­SOA­RESPONSE­DATA­FORMAT: ' . $this­>responseDataFormat, 'X­EBAY­SOA­SECURITY­TOKEN: ' . $this­>securityToken, 'X­EBAY­SOA­OPERATION­NAME: ' . $this­>operationName ); array_push($headers, 'X­EBAY­SOA­SERVICE­NAME: BulkDataExchangeService'); $request = '<createUploadJobRequest xmlns:sct="http://www.ebay.com/soaframework/common/types" xmlns="http://www.ebay.com/marketplace/services">'; $request .= '<uploadJobType>' . $jobType . '</uploadJobType>'; $request .= '<UUID>' . $uuid . '</UUID>'; $request .= '</createUploadJobRequest>'; Donde la variable $jobType corresponde al tipo de tarea que se va a subir y $uuid al identificador único de la tarea. Una vez ejecutada esta llamada el sistema nos devuelve dos datos que necesitaremos para la siguiente llamada: ● jobId Guía de integración vía API 22
●
fileRefenceId Con esto terminaría el primer paso. Ejemplo de respuesta: Respuesta <?xml version="1.0" encoding="utf­8"?> <createUploadJobResponse xmlns="http://www.ebay.com/marketplace/services"> <!­­ Call­specific Output Fields ­­> ​<​fileReferenceId​>​ ​string ​</​fileReferenceId​> ​<​jobId​>​ ​string ​</​jobId​> <​maxFileSize​>​ ​string </​maxFileSize​> <!­­ Standard Output Fields ­­> <​ack​>​ ​AckValue </​ack​> <​errorMessage​>​ ​ErrorMessage <​error​>​ ​ErrorData <​category​>​ ​ErrorCategory </​category​> <​domain​>​ ​string </​domain​> <​errorId​>​ ​long </​errorId​> <​exceptionId​>​ ​token </​exceptionId​> <​message​>​ ​string </​message​> <​parameter​ name="​string">​ ​ErrorParameter (​string) </​parameter​> ​<!­­ ... more parameter nodes allowed here ... ­­> <​severity​>​ ​ErrorSeverity </​severity​> <​subdomain​>​ ​string </​subdomain​> </​error​> ​<!­­ ... more error nodes allowed here ... ­­> </​errorMessage​> <​timestamp​>​ ​dateTime </​timestamp​> <​version​>​ ​string </​version​> </createUploadJobResponse> 5.1.2. UploadFile En esta llamada tendremos que asociar un fichero de operaciones en xml que podrán realizar diferentes acciones sobre nuestra cuenta de eBay como pueden ser publicar productos, revisar productos, eliminar productos... Los valores taskReferenceId y fileReferenceId obtenidos en la llamada anterior serán necesarios para realizar esta llamada. Ejemplo de petición de subida de fichero <?xml version="1.0" encoding="utf­8"?> <uploadFileRequest xmlns="http://www.ebay.com/marketplace/services"> <!­­ Call­specific Input Fields ­­> <​fileAttachment​>​ ​FileAttachment <​Data​>​ ​base64Binary </​Data​> <​Size​>​ ​long </​Size​> </​fileAttachment​> <​fileFormat​>​ ​token </​fileFormat​> <​fileReferenceId​>​ ​string </​fileReferenceId​> <​taskReferenceId​>​ ​string </​taskReferenceId​> Guía de integración vía API 23
</uploadFileRequest> Los ficheros pueden contener diferentes operaciones, a continuación explicación y ejemplo de cada una de ellas: 5.1.2.1. AddItem Permite poner a la venta un artículo en eBay, tanto de precio fijo como de subasta, todos los campos que puede tener se pueden ver en el siguiente enlace: ​AddItem​. A continuación un ejemplo del XML que formaría esta llamada. <?​xml​ version=​"1.0"​ encoding=​"UTF­8"​?> <BulkDataExchangeRequests> <Header> <SiteID>​0​</SiteID> <Version>​663​</Version> </Header> <AddItemRequest​ xmlns=​"urn:ebay:apis:eBLBaseComponents"​> ​<ErrorLanguage>​en_US​</ErrorLanguage> ​<WarningLevel>​High​</WarningLevel> ​<Version>​663​</Version> ​<MessageID>​Request 1​</MessageID> ​<Item> <Title>​Apple MacBook Pro MB990LL/A 13.3 in. Notebook NEW­PRUEBA/PROBE NOT BUY​</Title> <Description>​Brand New Apple MacBook Pro MB990LL/A 13.3 in. Notebook!​</Description> <PrimaryCategory> <CategoryID>​12906368018​</CategoryID> </PrimaryCategory> <StartPrice>​500.0​</StartPrice> <CategoryMappingAllowed>​true​</CategoryMappingAllowed> <ConditionID>​1000​</ConditionID> <Country>​ES​</Country> <Currency>​EUR​</Currency> <DispatchTimeMax>​3​</DispatchTimeMax> <ListingDuration>​Days_30​</ListingDuration> <ListingType>​FixedPriceItem​</ListingType> <PaymentMethods>​PayPal​</PaymentMethods> <PayPalEmailAddress></PayPalEmailAddress> <PictureDetails> <GalleryType>​Gallery​</GalleryType> </PictureDetails> <PostalCode>​33401​</PostalCode> <ProductListingDetails> <UPC>​885909298594​</UPC> <IncludeStockPhotoURL>​true​</IncludeStockPhotoURL> <IncludePrefilledItemInformation>​true​</IncludePrefilledItemInformation> <UseFirstProduct>​true​</UseFirstProduct> <UseStockPhotoURLAsGallery>​true​</UseStockPhotoURLAsGallery> <ReturnSearchResultOnDuplicates>​true​</ReturnSearchResultOnDuplicates> </ProductListingDetails> <Quantity>​6​</Quantity> <ReturnPolicy> <ReturnsAcceptedOption>​ReturnsAccepted​</ReturnsAcceptedOption> <RefundOption>​MoneyBack​</RefundOption> <ReturnsWithinOption>​Days_30​</ReturnsWithinOption> Guía de integración vía API 24
<Description>​If you are not satisfied, return the item for refund.​</Description> <ShippingCostPaidByOption>​Buyer​</ShippingCostPaidByOption> </ReturnPolicy> <ShippingDetails> <ShippingType>​Flat​</ShippingType> <ShippingServiceOptions> <ShippingServicePriority>​1​</ShippingServicePriority> <ShippingService>​UPSGround​</ShippingService> <FreeShipping>​true​</FreeShipping> <ShippingServiceAdditionalCost​ currencyID=​"USD"​>​0.00​</ShippingServiceAdditionalCost> </ShippingServiceOptions> </ShippingDetails> <Site>​US​</Site> ​</Item> </AddItemRequest> </BulkDataExchangeRequests> 5.1.2.2. AddFixedPriceItem Permite poner a la venta un artículo en eBay, aunque solo de tipo “Precio Fijo”, todos los campos que puede tener esta llamada están en el siguiente enlace: ​AddFixedPriceItem A continuación un ejemplo XML de llamada para esta acción. <?​xml​ ​version​=​"1.0"​ ​encoding​=​"UTF­8"​?> <BulkDataExchangeRequests> <Header> <SiteID>​0​</SiteID> <Version>​663​</Version> </Header> <AddFixedPriceItemRequest​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> <ErrorLanguage>​en_US​</ErrorLanguage> <WarningLevel>​High​</WarningLevel> <Version>​663​</Version> <MessageID>​Request 1​</MessageID> <Item> <SKU>​49203489082034​</SKU> <Country>​US​</Country> <Currency>​USD​</Currency> <Description>​An interesting item description​</Description> <DispatchTimeMax>​3​</DispatchTimeMax> <InventoryTrackingMethod>​SKU​</InventoryTrackingMethod> <ListingDuration>​Days_7​</ListingDuration> <ListingType>​FixedPriceItem​</ListingType> <PostalCode>​95125​</PostalCode> <PaymentMethods>​PayPal​</PaymentMethods> <PayPalEmailAddress>​[email protected]​</PayPalEmailAddress> <PrimaryCategory> <CategoryID>​1463​</CategoryID> </PrimaryCategory> <Quantity>​10​</Quantity> <StartPrice>​5.0​</StartPrice> <ShippingDetails> <ShippingType>​Flat​</ShippingType> <ShippingServiceOptions> <ShippingServicePriority>​1​</ShippingServicePriority> <ShippingService>​USPSMedia​</ShippingService> Guía de integración vía API 25
<ShippingServiceCost>​2.50​</ShippingServiceCost> <ShippingServiceAdditionalCost>​1.50​</ShippingServiceAdditionalCost> </ShippingServiceOptions> </ShippingDetails> <Title>​Testing LMS with the PHP Sample Code​</Title> <ReturnPolicy> <ReturnsAcceptedOption>​ReturnsAccepted​</ReturnsAcceptedOption> <RefundOption>​MoneyBack​</RefundOption> <ReturnsWithinOption>​Days_30​</ReturnsWithinOption> <Description>​Description of return policy details​</Description> <ShippingCostPaidByOption>​Buyer​</ShippingCostPaidByOption> </ReturnPolicy> </Item> </AddFixedPriceItemRequest> <AddFixedPriceItemRequest​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> <ErrorLanguage>​en_US​</ErrorLanguage> <Version>​663​</Version> <WarningLevel>​High​</WarningLevel> <MessageID>​Request 2​</MessageID> <Item> <SKU>​49203999082034​</SKU> <Country>​US​</Country> <Currency>​USD​</Currency> <Description>​An interesting item description​</Description> <DispatchTimeMax>​3​</DispatchTimeMax> <InventoryTrackingMethod>​SKU​</InventoryTrackingMethod> <ListingDuration>​Days_7​</ListingDuration> <ListingType>​FixedPriceItem​</ListingType> <PostalCode>​95125​</PostalCode> <PaymentMethods>​PayPal​</PaymentMethods> <PayPalEmailAddress>​[email protected]​</PayPalEmailAddress> <PrimaryCategory> <CategoryID>​1463​</CategoryID> </PrimaryCategory> <Quantity>​5​</Quantity> <StartPrice>​7.0​</StartPrice> <ShippingDetails> <ShippingType>​Flat​</ShippingType> <ShippingServiceOptions> <ShippingServicePriority>​1​</ShippingServicePriority> <ShippingService>​USPSMedia​</ShippingService> <ShippingServiceCost>​2.50​</ShippingServiceCost> <ShippingServiceAdditionalCost>​1.50​</ShippingServiceAdditionalCost> </ShippingServiceOptions> </ShippingDetails> <Title>​Testing LMS with the PHP Sample Code​</Title> <ReturnPolicy> <ReturnsAcceptedOption>​ReturnsAccepted​</ReturnsAcceptedOption> <RefundOption>​MoneyBack​</RefundOption> <ReturnsWithinOption>​Days_30​</ReturnsWithinOption> <Description>​Description of return policy details​</Description> <ShippingCostPaidByOption>​Buyer​</ShippingCostPaidByOption> </ReturnPolicy> </Item> </AddFixedPriceItemRequest> </BulkDataExchangeRequests> 5.1.2.3. RelistItem Vuelve a poner en venta el producto indicado, este puede ser tanto de “precio fijo” como de “subasta”. Todos los campos que puede tener esta llamada están en: Guía de integración vía API 26
http://developer.ebay.com/devzone/xml/docs/reference/ebay/RelistItem.html A continuación XML con un ejemplo de la acción efectuada: <?​xml​ ​version​=​"1.0"​ ​encoding​=​"utf­8"​?> <BulkDataExchangeRequests> <Header> <SiteID>​0​</SiteID> <Version>​547​</Version> </Header> <RelistItemRequest​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> <ErrorLanguage>​en_US​</ErrorLanguage> <WarningLevel>​High​</WarningLevel> <Version>​547​</Version> <MessageID>​Request 1​</MessageID> ​<Item> <ItemID>​111789677971​</ItemID> <BuyItNowPrice>​15.00​</BuyItNowPrice> ​</Item> </RelistItemRequest> </BulkDataExchangeRequests> **Debe tenerse en cuenta que al volver a poner en venta se pueden indicar simplemente el “itemID” y los valores de los campos que cambian, como por ejemplo el precio de salida. 5.1.2.4. RelistFixedPriceItem Permite poner en venta un artículo de “precio fijo”. Todos los valores que puede tener esta llamada los encontramos en el siguiente enlace:: ReviseFixedPriceItem A continuación un ejemplo de una llamada XML: <?​xml​ ​version​=​"1.0"​ ​encoding​=​"utf­8"​?> <BulkDataExchangeRequests> <Header> <SiteID>​0​</SiteID> <Version>​663​</Version> </Header> <RelistFixedPriceItemRequest​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> <ErrorLanguage>​en_US​</ErrorLanguage> <WarningLevel>​High​</WarningLevel> <Version>​663​</Version> <MessageID>​Request 1​</MessageID> ​<Item> <ItemID>​111789677971​</ItemID> <Variations> <Variation> <StartPrice>​20.00​</StartPrice> <Quantity>​10​</Quantity> </Variation> </Variations> ​</Item> </RelistFixedPriceItemRequest> Guía de integración vía API 27
</BulkDataExchangeRequests> 5.1.2.5. ReviseItem Permite modificar las características de los productos, tanto los de tipo “subasta” como los de “precio fijo”. Todos los valores que pueden tener los campos se encuentran en el siguiente enlace: ReviseItem A continuación un ejemplo de código XML para la llamada: <?​xml​ ​version​=​"1.0"​ ​encoding​=​"UTF­8"​?> <BulkDataExchangeRequests> <Header> <SiteID>​0​</SiteID> <Version>​663​</Version> </Header> <ReviseItemRequest​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> <ErrorLanguage>​en_US​</ErrorLanguage> <WarningLevel>​High​</WarningLevel> <Version>​663​</Version> <MessageID>​Request 1​</MessageID> <Item> <ItemID>​111789677971​</ItemID> </Item> <DeletedField>​Item.ListingEnhancement[BoldTitle]​</DeletedField> </ReviseItemRequest> </BulkDataExchangeRequests> 5.1.2.6. ReviseFixedPriceItem Permite modificar las características de los productos de tipo “precio fijo”. Todos los valores que puede tomar la llamada se detallan en el siguiente enlace: ReviseFixedPriceItem A continuación se muestra un ejemplo de XML con una llamada de este tipo: <?​xml​ ​version​=​"1.0"​ ​encoding​=​"UTF­8"​?> <BulkDataExchangeRequests> <Header> <SiteID>​0​</SiteID> <Version>​663​</Version> </Header> <ReviseFixedPriceItemRequest​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> <ErrorLanguage>​en_US​</ErrorLanguage> <WarningLevel>​High​</WarningLevel> <Version>​663​</Version> <MessageID>​Request 1​</MessageID> <Item> <Variation> <StartPrice>​20.00​</StartPrice> <Quantity>​10​</Quantity> Guía de integración vía API 28
</Variation> </Item> </ReviseFixedPriceItemRequest> </BulkDataExchangeRequests> 5.1.2.7. EndItem Finaliza un producto tanto de “precio fijo” como de “subasta”. Todos los valores que pueden adquirir los campos de la llamada están en el siguiente enlace: ​EndItem Un ejemplo del XML de llamada asociado a esta acción: <?​xml​ ​version​=​"1.0"​ ​encoding​=​"utf­8"​?> <BulkDataExchangeRequests> <Header> <SiteID>​0​</SiteID> <Version>​663​</Version> </Header> <EndItemRequest​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> <ErrorLanguage>​en_US​</ErrorLanguage> ​<WarningLevel>​High​</WarningLevel> ​<Version>​663​</Version> ​<MessageID>​Request 1​</MessageID> ​<ItemID>​111779584370​</ItemID> ​<EndingReason>​NotAvailable​</EndingReason> </EndItemRequest> </BulkDataExchangeRequests> 5.1.2.8. EndFixedPriceItem Permite finalizar un producto de “Precio fijo”. Todos los valores que puede tomar esta acción se muestran en el siguiente enlace: ​EndFixedPriceItem Un ejemplo del XML de llamada asociado a esta acción: <?​xml​ ​version​=​"1.0"​ ​encoding​=​"utf­8"​?> <BulkDataExchangeRequests> <Header> <SiteID>​0​</SiteID> <Version>​663​</Version> </Header> <EndFixedPriceItemRequest​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> <ErrorLanguage>​en_US​</ErrorLanguage> ​<WarningLevel>​High​</WarningLevel> ​<Version>​663​</Version> ​<MessageID>​Request 1​</MessageID> ​<ItemID>​111779584370​</ItemID> ​<EndingReason>​Incorrect​</EndingReason> </EndFixedPriceItemRequest> </BulkDataExchangeRequests> Guía de integración vía API 29
Respuesta de la llamada. <?xml version="1.0" encoding="utf­8"?> <createUploadJobResponse xmlns="http://www.ebay.com/marketplace/services"> <!­­ Call­specific Output Fields ­­> <​fileReferenceId​>​ ​string </​fileReferenceId​> <​jobId​>​ ​string </​jobId​> <​maxFileSize​>​ ​string </​maxFileSize​> <!­­ Standard Output Fields ­­> <​ack​>​ ​AckValue </​ack​> <​errorMessage​>​ ​ErrorMessage <​error​>​ ​ErrorData <​category​>​ ​ErrorCategory </​category​> <​domain​>​ ​string </​domain​> <​errorId​>​ ​long </​errorId​> <​exceptionId​>​ ​token </​exceptionId​> <​message​>​ ​string </​message​> <​parameter​ name="​string">​ ​ErrorParameter (​string) </​parameter​> ​<!­­ ... more parameter nodes allowed here ... ­­> <​severity​>​ ​ErrorSeverity </​severity​> <​subdomain​>​ ​string </​subdomain​> </​error​> ​<!­­ ... more error nodes allowed here ... ­­> </​errorMessage​> <​timestamp​>​ ​dateTime </​timestamp​> <​version​>​ ​string </​version​> </createUploadJobResponse> Siendo el valor más importante y que tendremos que guardar para futuras llamadas el filereferenceId. 5.1.3. StartUploadJob Una vez tenemos el fichero con las operaciones subido correctamente es necesario comenzar la tarea, para ello usaremos la llamada StartUploadJob. Llamada <?​xml​ ​version​=​"1.0"​ ​encoding​=​"utf­8"​?> <startUploadJobRequest xmlns="http://www.ebay.com/marketplace/services"> <!­­ Call­specific Input Fields ­­> <​jobId​>​ ​string </​jobId​> </startUploadJobRequest> Como podemos observar es necesario que aportemos el JobId que habremos obtenido al al ejecutar la llamada de createUploadJob. <?​xml​ ​version​="​1.0"​ ​encoding​=​"utf­8"​?> <startUploadJobResponse xmlns=​"http://www.ebay.com/marketplace/services"​> ​<!­­ (No call­specific Output fields) ­­> <!­­ Standard Output Fields ­­> <​ack​>​ ​AckValue ​</​ack​> Guía de integración vía API 30
<​errorMessage​>​ ​ErrorMessage ​ <​error​>​ ​ErrorData ​ <​category​>​ ​ErrorCategory ​</​category​> <​domain​>​ ​string ​</​domain​> <​errorId​>​ ​long ​</​errorId​> <​exceptionId​>​ ​token ​</​exceptionId​> <​message​>​ ​string </​message​> <​parameter​ name="​string">​ ​ErrorParameter (​string) ​</​parameter​> ​<!­­ ... more parameter nodes allowed here ... ­­> ​<​severity​>​ ​ErrorSeverity ​</​severity​> <​subdomain​>​ ​string ​</​subdomain​> </​error​> ​<!­­ ... more error nodes allowed here ... ­­> </​errorMessage​> <​timestamp​>​ ​dateTime </​timestamp​> <​version​>​ ​string ​</​version​> </startUploadJobResponse> 5.1.4. getJobStatus Una vez la tarea ha comenzado correctamente es necesario comprobar periódicamente cuando termina ya que LMS no comunica de forma automática cuando finalizan las tareas. <?​xm​l ​version​='​1.0​' ​encoding​=​'UTF­8'​?> <getJobStatusRequest xmlns=​"http://www.ebay.com/marketplace/services"​> <jobId>​50000000266​</jobId> </getJobStatusRequest> Como podemos observar es necesario indicar el JobId de la tarea que queremos monitorizar. 5.1.5. downloadFile Una vez finalizada la tarea y comprobado que ésta ha finalizado correctamente, el sistema nos reportará en la llamada getJobStatus un nuevo fileId para poder descargar los resultados de nuestras operaciones para lo que usaremos la llamada downloadFile. <?​xml​ ​version​=​"1.0"​ ​encoding​=​"utf­8"​?> <downloadFileRequest xmlns=​"http://www.ebay.com/marketplace/services"​> ​<!­­ Call­specific Input Fields ­­> <​fileReferenceId​>​ ​string​ </​fileReferenceId​> <​taskReferenceId​>​ ​string​ </​taskReferenceId​> </downloadFileRequest> Guía de integración vía API 31
6. Descarga de pedidos vía API eBay permite obtener la información de los pedidos de una tienda vía API mediante llamadas HTTP que soporta tanto el uso de formato XML como del protocolo SOAP. El siguiente enlace muestra la lista completa de ​funciones de la API​. De todas ellas la más importante y utilizada para la obtención de pedidos es: ● GetOrders​: Obtiene la información de los pedidos 6.1. GetOrders Descripción Esta llamada se utiliza para recuperar todos los pedidos del comprador o vendedor Tiene las siguientes particularidades: ● Los pedidos se devuelven en páginas, por lo que tendremos que ir recuperando sucesivamente cada página. ● El número máximo de pedidos por página es 100​. Entrada Cabecera X­EBAY­API­COMPATIBILITY­LEVEL : 793 X­EBAY­API­APP­NAME : 123456789­fb97­4ebe­b80e­7891dc28e697 X­EBAY­API­CERT­NAME : 123456789­cd9a­436f­b29d­509b9edec094 X­EBAY­API­DEV­NAME : 123456789­a31f­40d5­8343­7f687bd7aeae X­EBAY­API­SITEID : 0 X­EBAY­API­CALL­NAME : GetOrders Cuerpo XML <?​xml​ ​version​=​"1.0"​ ​encoding​=​"utf­8"​?> <GetOrdersRequest​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> ​<RequesterCredentials> <eBayAuthToken>​ABC...123​</eBayAuthToken> ​</RequesterCredentials> ​<CreateTimeFrom>​2007­12­01T20:34:44.000Z​</CreateTimeFrom> ​<CreateTimeTo>​2007­12­10T20:34:44.000Z​</CreateTimeTo> ​<OrderRole>​Seller​</OrderRole> ​<OrderStatus>​Active​</OrderStatus> Guía de integración vía API 32
</GetOrdersRequest> Salida <GetOrdersResponse​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> ​<Timestamp>​2015­05­21T11:40:43.597Z​</Timestamp> ​<Ack>​Success​</Ack> ​<Version>​915​</Version> ​<Build>​E915_INTL_API_17441757_R1​</Build> ​<PaginationResult> <TotalNumberOfPages>​1​</TotalNumberOfPages> <TotalNumberOfEntries>​2​</TotalNumberOfEntries> ​</PaginationResult> ​<HasMoreOrders>​false​</HasMoreOrders> ​<OrderArray> <Order> <OrderID>​110140904582­27470953001​</OrderID> <OrderStatus>​Completed​</OrderStatus> <AdjustmentAmount​ ​currencyID​=​"EUR"​>​0.0​</AdjustmentAmount> <AmountPaid​ ​currencyID​=​"EUR"​>​19.99​</AmountPaid> <AmountSaved​ ​currencyID​=​"EUR"​>​0.0​</AmountSaved> <CheckoutStatus> <eBayPaymentStatus>​NoPaymentFailure​</eBayPaymentStatus> <LastModifiedTime>​2015­05­05T07:12:47.000Z​</LastModifiedTime> <PaymentMethod>​PayPal​</PaymentMethod> <Status>​Complete​</Status> <IntegratedMerchantCreditCardEnabled>​false​</IntegratedMerchantCreditCardEnabled> </CheckoutStatus> <ShippingDetails> <InsuranceFee​ ​currencyID​=​"EUR"​>​0.0​</InsuranceFee> <InsuranceOption>​NotOffered​</InsuranceOption> <InsuranceWanted>​false​</InsuranceWanted> <SalesTax> <SalesTaxPercent>​0.0​</SalesTaxPercent> <SalesTaxState/> <ShippingIncludedInTax>​false​</ShippingIncludedInTax> <SalesTaxAmount​ ​currencyID​=​"EUR"​>​0.0​</SalesTaxAmount> </SalesTax> <ShippingServiceOptions> <ShippingService>​ES_CorreosChronoexpres​</ShippingService> <ShippingServiceCost​ ​currencyID​=​"EUR"​>​10.0​</ShippingServiceCost> <ShippingServicePriority>​1​</ShippingServicePriority> <ExpeditedService>​true​</ExpeditedService> <ShippingTimeMin>​1​</ShippingTimeMin> <ShippingTimeMax>​1​</ShippingTimeMax> </ShippingServiceOptions> <SellingManagerSalesRecordNumber>​119​</SellingManagerSalesRecordNumber> <GetItFast>​false​</GetItFast> </ShippingDetails> <CreatedTime>​2015­05­05T07:10:17.000Z​</CreatedTime> <PaymentMethods>​AmEx​</PaymentMethods> <PaymentMethods>​PayPal​</PaymentMethods> <PaymentMethods>​VisaMC​</PaymentMethods> <SellerEmail>​[email protected]​</SellerEmail> <ShippingAddress> <Name>​Christian Cañete González​</Name> <Street1>​Calle La Castellana​</Street1> Guía de integración vía API 33
<Street2>​19 7D​</Street2> <CityName>​Avilés​</CityName> <StateOrProvince>​Asturias​</StateOrProvince> <Country>​ES​</Country> <CountryName>​España​</CountryName> <Phone>​999123123​</Phone> <PostalCode>​33104​</PostalCode> <AddressID>​7413026​</AddressID> <AddressOwner>​eBay​</AddressOwner> <ExternalAddressID/> </ShippingAddress> <ShippingServiceSelected> <ShippingInsuranceCost​ ​currencyID​=​"EUR"​>​0.0​</ShippingInsuranceCost> <ShippingService>​ES_CorreosChronoexpres​</ShippingService> <ShippingServiceCost​ ​currencyID​=​"EUR"​>​10.0​</ShippingServiceCost> </ShippingServiceSelected> <Subtotal​ ​currencyID​=​"EUR"​>​9.99​</Subtotal> <Total​ ​currencyID​=​"EUR"​>​19.99​</Total> <TransactionArray> <Transaction> <Buyer> <Email>​Invalid Request​</Email> <UserFirstName/> <UserLastName/> </Buyer> <ShippingDetails> <SellingManagerSalesRecordNumber>​119​</SellingManagerSalesRecordNumber> </ShippingDetails> <CreatedDate>​2015­05­05T07:10:17.000Z​</CreatedDate> <Item> <ItemID>​110140904582​</ItemID> <Site>​Spain​</Site> <Title>​Aspirador sin bolsa Dyson DC29dB Exclusive (250 W de succión)​</Title> <ConditionID>​1000​</ConditionID> <ConditionDisplayName>​Nuevo​</ConditionDisplayName> </Item> <QuantityPurchased>​1​</QuantityPurchased> <Status> <PaymentHoldStatus>​None​</PaymentHoldStatus> </Status> <TransactionID>​27470953001​</TransactionID> <TransactionPrice​ ​currencyID​=​"EUR"​>​9.99​</TransactionPrice> <TransactionSiteID>​Spain​</TransactionSiteID> <Platform>​eBay​</Platform> <Taxes> <TotalTaxAmount​ ​currencyID​=​"EUR"​>​0.0​</TotalTaxAmount> <TaxDetails> <Imposition>​SalesTax​</Imposition> <TaxDescription>​SalesTax​</TaxDescription> <TaxAmount​ ​currencyID​=​"EUR"​>​0.0​</TaxAmount> <TaxOnSubtotalAmount​ ​currencyID​=​"EUR"​>​0.0​</TaxOnSubtotalAmount> <TaxOnShippingAmount​ ​currencyID​=​"EUR"​>​0.0​</TaxOnShippingAmount> <TaxOnHandlingAmount​ ​currencyID​=​"EUR"​>​0.0​</TaxOnHandlingAmount> </TaxDetails> <TaxDetails> <Imposition>​WasteRecyclingFee​</Imposition> <TaxDescription>​ElectronicWasteRecyclingFee​</TaxDescription> <TaxAmount​ ​currencyID​=​"EUR"​>​0.0​</TaxAmount> </TaxDetails> </Taxes> <OrderLineItemID>​110140904582­27470953001​</OrderLineItemID> </Transaction> Guía de integración vía API 34
</TransactionArray> <BuyerUserID>​testuser_mipdocommerce​</BuyerUserID> <PaidTime>​2015­05­05T07:12:47.000Z​</PaidTime> <IntegratedMerchantCreditCardEnabled>​false​</IntegratedMerchantCreditCardEnabled> <EIASToken>​nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wFk4GhDJKCqAWdj6x9nY+seQ==​</EIASToken> <PaymentHoldStatus>​None​</PaymentHoldStatus> <IsMultiLegShipping>​false​</IsMultiLegShipping> </Order> <Order> <OrderID>​110140904582­27483136001​</OrderID> <OrderStatus>​Completed​</OrderStatus> <AdjustmentAmount​ ​currencyID​=​"EUR"​>​0.0​</AdjustmentAmount> <AmountPaid​ ​currencyID​=​"EUR"​>​19.99​</AmountPaid> <AmountSaved​ ​currencyID​=​"EUR"​>​0.0​</AmountSaved> <CheckoutStatus> <eBayPaymentStatus>​NoPaymentFailure​</eBayPaymentStatus> <LastModifiedTime>​2015­05­19T13:39:59.000Z​</LastModifiedTime> <PaymentMethod>​PayPal​</PaymentMethod> <Status>​Complete​</Status> <IntegratedMerchantCreditCardEnabled>​false​</IntegratedMerchantCreditCardEnabled> </CheckoutStatus> <ShippingDetails> <InsuranceFee​ ​currencyID​=​"EUR"​>​0.0​</InsuranceFee> <InsuranceOption>​NotOffered​</InsuranceOption> <InsuranceWanted>​false​</InsuranceWanted> <SalesTax> <SalesTaxPercent>​0.0​</SalesTaxPercent> <SalesTaxState/> <ShippingIncludedInTax>​false​</ShippingIncludedInTax> <SalesTaxAmount​ ​currencyID​=​"EUR"​>​0.0​</SalesTaxAmount> </SalesTax> <ShippingServiceOptions> <ShippingService>​ES_CorreosChronoexpres​</ShippingService> <ShippingServiceCost​ ​currencyID​=​"EUR"​>​10.0​</ShippingServiceCost> <ShippingServicePriority>​1​</ShippingServicePriority> <ExpeditedService>​true​</ExpeditedService> <ShippingTimeMin>​1​</ShippingTimeMin> <ShippingTimeMax>​1​</ShippingTimeMax> </ShippingServiceOptions> <SellingManagerSalesRecordNumber>​120​</SellingManagerSalesRecordNumber> <GetItFast>​false​</GetItFast> </ShippingDetails> <CreatedTime>​2015­05­19T13:38:33.000Z​</CreatedTime> <PaymentMethods>​AmEx​</PaymentMethods> <PaymentMethods>​PayPal​</PaymentMethods> <PaymentMethods>​VisaMC​</PaymentMethods> <SellerEmail>​[email protected]​</SellerEmail> <ShippingAddress> <Name>​Christian Cañete González​</Name> <Street1>​Calle La Castellana​</Street1> <Street2>​19 7D​</Street2> <CityName>​Avilés​</CityName> <StateOrProvince>​Asturias​</StateOrProvince> <Country>​ES​</Country> <CountryName>​España​</CountryName> <Phone>​999123123​</Phone> <PostalCode>​33104​</PostalCode> <AddressID>​7413026​</AddressID> <AddressOwner>​eBay​</AddressOwner> <ExternalAddressID/> </ShippingAddress> Guía de integración vía API 35
<ShippingServiceSelected> <ShippingInsuranceCost​ ​currencyID​=​"EUR"​>​0.0​</ShippingInsuranceCost> <ShippingService>​ES_CorreosChronoexpres​</ShippingService> <ShippingServiceCost​ ​currencyID​=​"EUR"​>​10.0​</ShippingServiceCost> </ShippingServiceSelected> <Subtotal​ ​currencyID​=​"EUR"​>​9.99​</Subtotal> <Total​ ​currencyID​=​"EUR"​>​19.99​</Total> <TransactionArray> <Transaction> <Buyer> <Email>​mipdocommerce@do­commerce.com​</Email> <UserFirstName/> <UserLastName/> </Buyer> <ShippingDetails> <SellingManagerSalesRecordNumber>​120​</SellingManagerSalesRecordNumber> </ShippingDetails> <CreatedDate>​2015­05­19T13:38:33.000Z​</CreatedDate> <Item> <ItemID>​110140904582​</ItemID> <Site>​Spain​</Site> <Title>​Aspirador sin bolsa Dyson DC29dB Exclusive (250 W de succión)​</Title> <ConditionID>​1000​</ConditionID> <ConditionDisplayName>​Nuevo​</ConditionDisplayName> </Item> <QuantityPurchased>​1​</QuantityPurchased> <Status> <PaymentHoldStatus>​None​</PaymentHoldStatus> </Status> <TransactionID>​27483136001​</TransactionID> <TransactionPrice​ ​currencyID​=​"EUR"​>​9.99​</TransactionPrice> <TransactionSiteID>​Spain​</TransactionSiteID> <Platform>​eBay​</Platform> <Taxes> <TotalTaxAmount​ ​currencyID​=​"EUR"​>​0.0​</TotalTaxAmount> <TaxDetails> <Imposition>​SalesTax​</Imposition> <TaxDescription>​SalesTax​</TaxDescription> <TaxAmount​ ​currencyID​=​"EUR"​>​0.0​</TaxAmount> <TaxOnSubtotalAmount​ ​currencyID​=​"EUR"​>​0.0​</TaxOnSubtotalAmount> <TaxOnShippingAmount​ ​currencyID​=​"EUR"​>​0.0​</TaxOnShippingAmount> <TaxOnHandlingAmount​ ​currencyID​=​"EUR"​>​0.0​</TaxOnHandlingAmount> </TaxDetails> <TaxDetails> <Imposition>​WasteRecyclingFee​</Imposition> <TaxDescription>​ElectronicWasteRecyclingFee​</TaxDescription> <TaxAmount​ ​currencyID​=​"EUR"​>​0.0​</TaxAmount> </TaxDetails> </Taxes> <OrderLineItemID>​110140904582­27483136001​</OrderLineItemID> </Transaction> </TransactionArray> <BuyerUserID>​testuser_mipdocommerce​</BuyerUserID> <PaidTime>​2015­05­19T13:39:59.000Z​</PaidTime> <IntegratedMerchantCreditCardEnabled>​false​</IntegratedMerchantCreditCardEnabled> <EIASToken>​nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wFk4GhDJKCqAWdj6x9nY+seQ==​</EIASToken> <PaymentHoldStatus>​None​</PaymentHoldStatus> <IsMultiLegShipping>​false​</IsMultiLegShipping> </Order> ​</OrderArray> ​<OrdersPerPage>​100​</OrdersPerPage> Guía de integración vía API 36
​<PageNumber>​1​</PageNumber> ​<ReturnedOrderCountActual>​2​</ReturnedOrderCountActual> </GetOrdersResponse> 6.2. Notificaciones de pedidos La plataforma de eBay proporciona un sistema de notificaciones mediante API, llamado “​Platform Notifications”. Este sistema permite recibir notificaciones ante ciertos eventos ocurridos en eBay. FixedPriceTransaction Notification Esta notificación​ envía a los usuarios que estén suscritos la información sobre los productos vendidos proporcionando la misma información que la llamada ​GetItemTransactions​. Particularidades: ● Notifica por cada producto vendido de un pedido, se recomienda usar la llamada GetOrders​, pasándole el OrderId que nos proporciona la notificación, para obtener toda la información del pedido. ● Solo notifica los productos vendidos mediante precio fijo y no subasta. ● La información que devuelve es igual a la que devuelve ​GetItemTransactions ​con el nivel de detalle ​“Return All”. GetItemTransactions Devuelve información sobre un line item en la transacción. Llamada <?​xml​ ​version​=​"1.0​" ​encoding​=​"utf­8"​?> <GetItemTransactionsRequest ​xmlns​="​urn:ebay:apis:eBLBaseComponents​"> <ItemID>​110039490209​</ItemID> <RequesterCredentials> <eBayAuthToken>​ABC...123​</eBayAuthToken> </RequesterCredentials> </GetItemTransactionsRequest> Salida <?​xml​ ​version​=​"1.0​" ​encoding​=​"utf­8"​?> <GetItemTransactionsResponse ​xmlns​="​urn:ebay:apis:eBLBaseComponents​"> <Timestamp>2009­06­12T14:33:08.757Z</Timestamp> <Ack>​Success​</Ack> <Version>​619​</Version> <Build>​e619__Bundled_9183565_R1​</Build> <PaginationResult> <TotalNumberOfPages>​1​</TotalNumberOfPages> Guía de integración vía API 37
<TotalNumberOfEntries>1</TotalNumberOfEntries> </PaginationResult> <HasMoreTransactions>​false​</HasMoreTransactions> <TransactionsPerPage>​100​</TransactionsPerPage> <PageNumber>1</PageNumber> <ReturnedTransactionCountActual>1</ReturnedTransactionCountActual> <Item> <AutoPay>false</AutoPay> <Currency>USD</Currency> <ItemID>110039490209</ItemID> <ListingDetails> <ViewItemURL>http://cgi.sandbox.ebay.com/ws/eBayISAPI.dll?ViewItem&Item=110039490209</ViewItem
URL> <ViewItemURLForNaturalSearch>http://cgi.sandbox.ebay.com/ws/eBayISAPI.dll?ViewItem&item=110039
490209&category=0</ViewItemURLForNaturalSearch> </ListingDetails> <ListingType>FixedPriceItem</ListingType> <PaymentMethods>PayPal</PaymentMethods> <PrivateListing>false</PrivateListing> <Quantity>52</Quantity> <Seller> <AboutMePage>false</AboutMePage> <EIASToken>nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wJnY+lDZWHqAidj6x9nY+seQ==</EIASToken> <Email>[email protected]</Email> <FeedbackScore>500</FeedbackScore> <PositiveFeedbackPercent>0.0</PositiveFeedbackPercent> <FeedbackPrivate>false</FeedbackPrivate> <FeedbackRatingStar>Purple</FeedbackRatingStar> <IDVerified>true</IDVerified> <eBayGoodStanding>true</eBayGoodStanding> <NewUser>false</NewUser> <RegistrationDate>2008­12­11T00:00:00.000Z</RegistrationDate> <Site>US</Site> <Status>Confirmed</Status> <UserID>megaonlinemerchant</UserID> <UserIDChanged>false</UserIDChanged> <UserIDLastChanged>2006­02­08T21:55:29.000Z</UserIDLastChanged> <VATStatus>NoVATTax</VATStatus> <SellerInfo> <AllowPaymentEdit>true</AllowPaymentEdit> <CheckoutEnabled>true</CheckoutEnabled> <CIPBankAccountStored>false</CIPBankAccountStored> <GoodStanding>true</GoodStanding> <LiveAuctionAuthorized>false</LiveAuctionAuthorized> <MerchandizingPref>OptIn</MerchandizingPref> <QualifiesForB2BVAT>false</QualifiesForB2BVAT> <SellerLevel>None</SellerLevel> <StoreOwner>false</StoreOwner> <ExpressEligible>false</ExpressEligible> <ExpressWallet>false</ExpressWallet> <SafePaymentExempt>false</SafePaymentExempt> </SellerInfo> <eBayUnilateralEmail>true</eBayUnilateralEmail> </Seller> <SellingStatus> <ConvertedCurrentPrice currencyID="USD">17.99</ConvertedCurrentPrice> <CurrentPrice currencyID="USD">17.99</CurrentPrice> <QuantitySold>2</QuantitySold> <ListingStatus>Active</ListingStatus> </SellingStatus> Guía de integración vía API 38
<Site>US</Site> <Title>New Ralph Lauren Polo shirt Pink Black Blue Yellow</Title> <GetItFast>false</GetItFast> <IntegratedMerchantCreditCardEnabled>false</IntegratedMerchantCreditCardEnabled> </Item> <TransactionArray> <Transaction> <AmountPaid currencyID="USD">39.13</AmountPaid> <AdjustmentAmount currencyID="USD">0.0</AdjustmentAmount> <ConvertedAdjustmentAmount currencyID="USD">0.0</ConvertedAdjustmentAmount> <Buyer> <AboutMePage>false</AboutMePage> <EIASToken>nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wJnY+iAZeEqQ2dj6x9nY+seQ==</EIASToken> <Email>[email protected]</Email> <FeedbackScore>155</FeedbackScore> <PositiveFeedbackPercent>100.0</PositiveFeedbackPercent> <FeedbackPrivate>false</FeedbackPrivate> <FeedbackRatingStar>Turquoise</FeedbackRatingStar> <IDVerified>true</IDVerified> <eBayGoodStanding>true</eBayGoodStanding> <NewUser>false</NewUser> <RegistrationDate>2004­04­04T00:02:13.000Z</RegistrationDate> <Site>US</Site> <Status>Confirmed</Status> <UserID>testuser_bountifulbuyer</UserID> <UserIDChanged>false</UserIDChanged> <UserIDLastChanged>2001­08­29T21:52:58.000Z</UserIDLastChanged> <VATStatus>NoVATTax</VATStatus> <BuyerInfo> <ShippingAddress> <Name>testuser_bountifulbuyer</Name> <Street1>2145 Hamilton</Street1> <CityName>San Jose</CityName> <StateOrProvince>CA</StateOrProvince> <Country>US</Country> <CountryName>United States</CountryName> <PostalCode>95125</PostalCode> <AddressID>122205</AddressID> <AddressOwner>eBay</AddressOwner> </ShippingAddress> </BuyerInfo> <UserAnonymized>false</UserAnonymized> </Buyer> <ShippingDetails> <CalculatedShippingRate> <OriginatingPostalCode>95125</OriginatingPostalCode> <PackageDepth measurementSystem="English" unit="inches">6</PackageDepth> <PackageLength measurementSystem="English" unit="inches">7</PackageLength> <PackageWidth measurementSystem="English" unit="inches">7</PackageWidth> <PackagingHandlingCosts currencyID="USD">0.0</PackagingHandlingCosts> <ShippingIrregular>false</ShippingIrregular> <ShippingPackage>PackageThickEnvelope</ShippingPackage> <WeightMajor measurementSystem="English" unit="lbs">2</WeightMajor> <WeightMinor measurementSystem="English" unit="oz">0</WeightMinor> </CalculatedShippingRate> <ChangePaymentInstructions>true</ChangePaymentInstructions> <PaymentEdited>false</PaymentEdited> <PaymentInstructions>Payment must be received within 7 business days of purchase.</PaymentInstructions> <SalesTax> <SalesTaxPercent>8.75</SalesTaxPercent> <SalesTaxState>CA</SalesTaxState> Guía de integración vía API 39
<ShippingIncludedInTax>false</ShippingIncludedInTax> <SalesTaxAmount currencyID="USD">3.15</SalesTaxAmount> </SalesTax> <ShippingServiceOptions> <ShippingService>USPSPriority</ShippingService> <ShippingServicePriority>1</ShippingServicePriority> <ExpeditedService>false</ExpeditedService> <ShippingTimeMin>2</ShippingTimeMin> <ShippingTimeMax>3</ShippingTimeMax> </ShippingServiceOptions> <ShippingServiceOptions> <ShippingService>UPSGround</ShippingService> <ShippingServicePriority>2</ShippingServicePriority> <ExpeditedService>false</ExpeditedService> <ShippingTimeMin>1</ShippingTimeMin> <ShippingTimeMax>6</ShippingTimeMax> </ShippingServiceOptions> <ShippingServiceOptions> <ShippingService>UPSNextDay</ShippingService> <ShippingServicePriority>3</ShippingServicePriority> <ExpeditedService>true</ExpeditedService> <ShippingTimeMin>1</ShippingTimeMin> <ShippingTimeMax>1</ShippingTimeMax> </ShippingServiceOptions> <ShippingType>Calculated</ShippingType> <ThirdPartyCheckout>false</ThirdPartyCheckout> <TaxTable> <TaxJurisdiction> <JurisdictionID>CA</JurisdictionID> <SalesTaxPercent>8.75</SalesTaxPercent> <ShippingIncludedInTax>false</ShippingIncludedInTax> </TaxJurisdiction> </TaxTable> <GetItFast>false</GetItFast> </ShippingDetails> <ConvertedAmountPaid currencyID="USD">39.13</ConvertedAmountPaid> <ConvertedTransactionPrice currencyID="USD">17.99</ConvertedTransactionPrice> <CreatedDate>2009­06­12T14:26:17.000Z</CreatedDate> <DepositType>None</DepositType> <QuantityPurchased>2</QuantityPurchased> <Status> <eBayPaymentStatus>NoPaymentFailure</eBayPaymentStatus> <CheckoutStatus>CheckoutIncomplete</CheckoutStatus> <LastTimeModified>2009­06­12T14:26:18.000Z</LastTimeModified> <PaymentMethodUsed>None</PaymentMethodUsed> <CompleteStatus>Incomplete</CompleteStatus> <BuyerSelectedShipping>false</BuyerSelectedShipping> <PaymentHoldStatus>CustomCode</PaymentHoldStatus> <IntegratedMerchantCreditCardEnabled>false</IntegratedMerchantCreditCardEnabled> </Status> <TransactionID>24005469001</TransactionID> <TransactionPrice currencyID="USD">17.99</TransactionPrice> <BestOfferSale>false</BestOfferSale> <ShippingServiceSelected> <ShippingService>USPSPriority</ShippingService> <ShippingServiceCost currencyID="USD">0.0</ShippingServiceCost> </ShippingServiceSelected> <TransactionSiteID>US</TransactionSiteID> <Platform>eBay</Platform> <PayPalEmailAddress>Invalid Request</PayPalEmailAddress> <BuyerGuaranteePrice currencyID="USD">20000.0</BuyerGuaranteePrice> <IntangibleItem>false</IntangibleItem> Guía de integración vía API 40
<Variation> <SKU>RLauren_Wom_TShirt_Pnk_M</SKU> <VariationSpecifics> <NameValueList> <Name>Color</Name> <Value>Pink</Value> </NameValueList> <NameValueList> <Name>Size</Name> <Value>M</Value> </NameValueList> </VariationSpecifics> <VariationTitle>New Ralph Lauren Polo shirt Pink Black Blue Yellow[Pink,M]</VariationTitle> <VariationViewItemURL>http://cgi.sandbox.ebay.com/ws/eBayISAPI.dll?ViewItem&item=110039490209&
vti=Color%09Pink%0ASize%09M</VariationViewItemURL> </Variation> </Transaction> </TransactionArray> </GetItemTransactionsResponse> Guía de integración vía API 41
7. Confirmación de envíos vía API eBay permite indicar la información de envío y tracking de los pedidos vía API mediante llamadas HTTP que soporta tanto el uso de formato XML como SOAP. El siguiente enlace muestra la lista completa de ​funciones de la API​. De todas ellas la más importante y utilizada para indicar la información de pedidos es: ● CompleteSale​: permite indicar el envío y la información de tracking de un pedido 7.1. CompleteSale Descripción Por lo general, se utiliza esta llamada después de que el pedido ha sido pagado, aunque puede ser llamado con anterioridad por el vendedor. Tareas posteriores a los pagos como marcar la orden como “pagada” y “enviado” proporcionan datos para el seguimiento del comprador. Los TAGS más importantes son los siguientes: ● Paid: Indica si el pago ha sido o no realizado por el comprador. ● Shipped: Muestra si el artículo ha sido enviado o no. ● ItemID: Referencia del artículo.. ● TransactionID: referencia de la transacción​. ● Shipment: Información relacionada con el transportista y número de tracking. El siguiente ejemplo indica la empresa de transporte asignada y el número de tracking. Entrada Cabecera X­EBAY­API­COMPATIBILITY­LEVEL : 793 X­EBAY­API­APP­NAME : 123456789­fb97­4ebe­b80e­7891dc28e697 X­EBAY­API­CERT­NAME : 123456789­cd9a­436f­b29d­509b9edec094 X­EBAY­API­DEV­NAME : 123456789­a31f­40d5­8343­7f687bd7aeae X­EBAY­API­SITEID : 0 X­EBAY­API­CALL­NAME : CompleteSale Cuerpo XML <?​xml​ ​version​=​"1.0"​ ​encoding​=​"utf­8"​?> <CompleteSaleRequest​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> ​<RequesterCredentials> <eBayAuthToken>​INTRODUZCA SU TOKEN AQUI​</eBayAuthToken> Guía de integración vía API 42
​</RequesterCredentials> ​<WarningLevel>​High​</WarningLevel> ​<ItemID>​110140904582​</ItemID> ​<Paid>​true​</Paid> ​<Shipped>​true​</Shipped> ​<TransactionID>​27470953001​</TransactionID> ​<Shipment> <ShipmentTrackingDetails> <ShippingCarrierUsed>​DHL​</ShippingCarrierUsed> <ShipmentTrackingNumber>​168907093161​</ShipmentTrackingNumber> </ShipmentTrackingDetails> ​</Shipment> </CompleteSaleRequest> Salida <CompleteSaleResponse​ ​xmlns​=​"urn:ebay:apis:eBLBaseComponents"​> ​<Timestamp>​2015­05­24T18:45:51.524Z​</Timestamp> ​<Ack>​Success​</Ack> ​<Version>​915​</Version> ​<Build>​E915_INTL_API_17441757_R1​</Build> </CompleteSaleResponse> Guía de integración vía API 43
8. Problemas comunes Descripción del problema: En algunos casos cuando intentamos publicar productos en eBay mediante API, la API nos informa con un mensaje de error que existe un problema con las tres políticas de eBay: ● Política de pago ● Politica de devolucion ● Política de envío Es posible identificar este error inequívocamente ya que no nos permitirá publicar ningún producto, devolviendo siempre este error para todos los productos: ● Para política de pago. ○ Short error:​ You've provided an invalid payment policy. ○ Long error:​ You've provided an invalid payment policy. ● Para política de devoluciones. ○ Short error:​ You've provided an invalid return policy. ○ Long error:​ You've provided an invalid return policy. ● Para politica de envios. ○ Short error:​ You've provided an invalid shipping policy. ○ Long error: ​You've provided an invalid shipping policy. Indicar que estos errores son indicativos y que , el que eBay nos los devuelva no son necesariamente por este error, existen más errores de políticas que nos devolverán estos errores. Posible solución: Este problema ocurre debido a un nuevo mandato de eBay para el uso de las políticas de vendedor en la publicación de artículos. Debido a que este mandato todavía no es obligatorio, si tenemos activadas las políticas de vendedor, tenemos que hacer uso de ellas en la publicación de productos eliminando los campos de políticas y sustituyéndolos por los perfiles del programa de políticas de vendedor o, como solución ​temporal, ​deshabilitar las políticas de vendedor haciendo que el sistema anterior funcione correctamente. 1. Proceso para no participar en el programa de políticas de vendedor de eBay. Accedemos a la pantalla de configuración de las políticas a través del menú de cuenta situado en Mi eBay, políticas de vendedor. Una vez en esta pantalla seleccionamos “​No participar”. Guía de integración vía API 44
En el aviso mostrado de políticas de vendedor, pulsamos en “​No participar por ahora”. 2.​Cambios en las peticiones de API. Los cambios en las peticiones que se realizan a la API, tienen que ver fundamentalmente con sustituir los campos relacionados con las tres políticas de eBay por otros en los que se utilizan los identificadores o los nombres de los perfiles del programa de políticas de vendedor. Ejemplo de los campos que se han venido utilizando para definir las políticas de eBay sin hacer uso del programa de vendedores. ​<DispatchTimeMax>​3​</DispatchTimeMax> ​<ListingDuration>​Days_7​</ListingDuration> ​<Location>​San Jose, CA​</Location> ​<PaymentMethods>​PayPal​</PaymentMethods> ​<PayPalEmailAddress>​[email protected]​</PayPalEmailAddress> ​<ShippingDetails> ​<ShippingType>​Calculated​</ShippingType> ​<CalculatedShippingRate> ​<OriginatingPostalCode>​95125​</OriginatingPostalCode> <ShippingIrregular>​true​</ShippingIrregular> Guía de integración vía API 45
<PackageDepth>​40​</PackageDepth> <PackageLength>​40​</PackageLength> <PackageWidth>​16​</PackageWidth> <ShippingPackage>​USPSLargePack​</ShippingPackage> <WeightMajor>​20​</WeightMajor> <WeightMinor>​2​</WeightMinor> ​</CalculatedShippingRate> <ShippingServiceOptions> ​<ShippingServicePriority>​1​</ShippingServicePriority> <ShippingService>​UPSGround​</ShippingService> ​</ShippingServiceOptions> ​</ShippingDetails> ​<ReturnPolicy> ​<Description>​We allow returns within 14 days of purchase for money back or item exchange. Buyer pays for return shipping.​</Description> ​<RefundOption>​MoneyBackOrExchange​</RefundOption> <ReturnsAcceptedOption>​ReturnsAccepted​</ReturnsAcceptedOption> <ReturnsWithinOption>​Days_14​</ReturnsWithinOption> <ShippingCostPaidByOption>​Buyer​</ShippingCostPaidByOption> ​</ReturnPolicy> Estos campos son reemplazados por los siguientes: <​SellerProfiles​> <​SellerPaymentProfile​> <​PaymentProfileID​> ID del profile de pago </​PaymentProfileID​> <​PaymentProfileName​> Nombre del profile de pago </​PaymentProfileName​> </​SellerPaymentProfile​> <​SellerReturnProfile​> <​ReturnProfileID​> ID del profile de devoluciones </​ReturnProfileID​> <​ReturnProfileName​> Nombre del profile de devoluciones</​ReturnProfileName​> </​SellerReturnProfile​> <​SellerShippingProfile​> <​ShippingProfileID​> ID del profile de envío </​ShippingProfileID​> <​ShippingProfileName​>Nombre del profile de envío</​ShippingProfileName​> </​SellerShippingProfile​> </​SellerProfiles​> Nota:​ solo es obligatorio utilizar uno de los dos campos, ID o nombre, no los dos. Guía de integración vía API 
Descargar