45
MANUAL V.2.1 Guía de sincronización eBay API

MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

MANUAL V.2.1 Guía de sincronización eBay API 

Page 2: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 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

Page 3: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 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

Page 4: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 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

Page 5: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 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

Page 6: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 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

Page 7: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 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

Page 8: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 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

Page 9: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 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 &amp; Photo</CategoryParentName> </Category> <PercentItemFound>91</PercentItemFound>

Guía de integración vía API

Page 10: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 10 

</SuggestedCategory> <SuggestedCategory> <Category> <CategoryID>15230</CategoryID> <CategoryName>Film Cameras</CategoryName> <CategoryParentID>625</CategoryParentID> <CategoryParentID>69323</CategoryParentID> <CategoryParentName>Cameras &amp; 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 &amp; Photo</CategoryParentName> </Category> <PercentItemFound>1</PercentItemFound> </SuggestedCategory> <SuggestedCategory> <Category> <CategoryID>162480</CategoryID> <CategoryName>Other</CategoryName> <CategoryParentID>625</CategoryParentID> <CategoryParentID>15200</CategoryParentID> <CategoryParentName>Cameras &amp; Photo</CategoryParentName> <CategoryParentName>Camera &amp; 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> <PercentItemFound>0</PercentItemFound>

Guía de integración vía API

Page 11: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 11 

</SuggestedCategory> <SuggestedCategory> <Category> <CategoryID>107894</CategoryID> <CategoryName>Cases, Bags &amp; Covers</CategoryName> <CategoryParentID>625</CategoryParentID> <CategoryParentID>15200</CategoryParentID> <CategoryParentName>Cameras &amp; Photo</CategoryParentName> <CategoryParentName>Camera &amp; 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 &amp; Photo</CategoryParentName> <CategoryParentName>Vintage Movie &amp; Photography</CategoryParentName> <CategoryParentName>Vintage Cameras</CategoryParentName> </Category> <PercentItemFound>0</PercentItemFound> </SuggestedCategory> <SuggestedCategory> <Category> <CategoryID>52505</CategoryID> <CategoryName>Game &amp; 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

Page 12: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 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> </RequesterCredentials>

Guía de integración vía API

Page 13: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 13 

<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> <StartTime>2015-05-18T09:38:14.493Z</StartTime> <EndTime>2015-06-17T09:38:14.493Z</EndTime>

Guía de integración vía API

Page 14: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 14 

<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

Cuerpo XML

Guía de integración vía API

Page 15: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 15 

<?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

<?xml version="1.0" encoding="utf-8"?> <RelistFixedPriceItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">

<RequesterCredentials>

Guía de integración vía API

Page 16: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 16 

<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> <Fee><Name>ProPackPlusBundleFee</Name><Fee currencyID="EUR">0.0</Fee></Fee> <Fee><Name>MotorsGermanySearchFee</Name><Fee currencyID="EUR">0.0</Fee></Fee> </Fees>

Guía de integración vía API

Page 17: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 17 

<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> <Ack>Warning</Ack> <Errors> <ShortMessage>PayPal puede retrasar la transferencia de fondos para garantizar que la

Guía de integración vía API

Page 18: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 18 

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:

● 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.

Guía de integración vía API

Page 19: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 19 

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> <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>

Guía de integración vía API

Page 20: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 20 

<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

Page 21: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 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 ● fileRefenceId

Guía de integración vía API

Page 22: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 22 

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> </uploadFileRequest>

Guía de integración vía API

Page 23: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 23 

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> <Description>If you are not satisfied, return the item for refund.</Description> <ShippingCostPaidByOption>Buyer</ShippingCostPaidByOption>

</ReturnPolicy>

Guía de integración vía API

Page 24: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 24 

<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> <ShippingServiceCost>2.50</ShippingServiceCost> <ShippingServiceAdditionalCost>1.50</ShippingServiceAdditionalCost> </ShippingServiceOptions>

Guía de integración vía API

Page 25: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 25 

</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: http://developer.ebay.com/devzone/xml/docs/reference/ebay/RelistItem.html

Guía de integración vía API

Page 26: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 26 

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> </BulkDataExchangeRequests>

Guía de integración vía API

Page 27: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 27 

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> </Variation> </Item>

</ReviseFixedPriceItemRequest> </BulkDataExchangeRequests>

Guía de integración vía API

Page 28: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 28 

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>

Respuesta de la llamada.

<?xml version="1.0" encoding="utf-8"?>

Guía de integración vía API

Page 29: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 29 

<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> <errorMessage> ErrorMessage <error> ErrorData <category> ErrorCategory </category> <domain> string </domain> <errorId> long </errorId>

Guía de integración vía API

Page 30: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 30 

<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.

<?xml 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

Page 31: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 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> </GetOrdersRequest>

Guía de integración vía API

Page 32: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 32 

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> <Street2>19 7D</Street2> <CityName>Avilés</CityName> <StateOrProvince>Asturias</StateOrProvince> <Country>ES</Country> <CountryName>España</CountryName> <Phone>999123123</Phone> <PostalCode>33104</PostalCode>

Guía de integración vía API

Page 33: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 33 

<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> </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>

Guía de integración vía API

Page 34: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 34 

<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> <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>

Guía de integración vía API

Page 35: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 35 

<TransactionArray> <Transaction> <Buyer> <Email>[email protected]</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> <PageNumber>1</PageNumber> <ReturnedOrderCountActual>2</ReturnedOrderCountActual> </GetOrdersResponse>

Guía de integración vía API

Page 36: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 36 

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> <TotalNumberOfEntries>1</TotalNumberOfEntries> </PaginationResult> <HasMoreTransactions>false</HasMoreTransactions> <TransactionsPerPage>100</TransactionsPerPage> <PageNumber>1</PageNumber>

Guía de integración vía API

Page 37: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 37 

<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</ViewItemURL> <ViewItemURLForNaturalSearch>http://cgi.sandbox.ebay.com/ws/eBayISAPI.dll?ViewItem&item=110039490209&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> <Site>US</Site> <Title>New Ralph Lauren Polo shirt Pink Black Blue Yellow</Title> <GetItFast>false</GetItFast> <IntegratedMerchantCreditCardEnabled>false</IntegratedMerchantCreditCardEnabled> </Item>

Guía de integración vía API

Page 38: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 38 

<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> <ShippingIncludedInTax>false</ShippingIncludedInTax> <SalesTaxAmount currencyID="USD">3.15</SalesTaxAmount> </SalesTax> <ShippingServiceOptions> <ShippingService>USPSPriority</ShippingService>

Guía de integración vía API

Page 39: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 39 

<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> <Variation> <SKU>RLauren_Wom_TShirt_Pnk_M</SKU> <VariationSpecifics> <NameValueList> <Name>Color</Name>

Guía de integración vía API

Page 40: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 40 

<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

Page 41: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 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

Page 42: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 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

Page 43: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 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

Page 44: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 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

Page 45: MANUAL V.2.1 Guía de sincronización eBay API · 2019-09-23 · 5 Una vez apuntados al programa de desarrolladores de eBay es necesario generar dos juegos de claves o keysets, uno

 

 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