Esta documentación tiene como objetivo guiarte paso a paso en el proceso de actualización del stock de un producto en una tienda del Marketplace Soulmkt utilizando las APIs V1 y V2. Incluso si no tienes experiencia previa con el proceso, esta explicación detallada te ayudará a entender cómo realizarlo correctamente.
1. Introducción #
El Marketplace Soulmkt ofrece dos versiones de API (V1 y V2) para interactuar con el sistema y realizar operaciones como la actualización de stock de productos. Ambas versiones utilizan el protocolo SOAP (Simple Object Access Protocol) para enviar y recibir datos en formato XML.
Aquí abordaremos cómo actualizar el stock de un producto utilizando ambas versiones de API, con ejemplos de solicitudes XML que pueden enviarse utilizando herramientas como Postman.
2. Requisitos Previos #
Antes de comenzar, asegúrate de tener:
- Acceso a la API del Marketplace Soulmkt: Necesitarás credenciales de acceso (usuario y contraseña) para obtener un sessionId, necesario para autenticar las solicitudes.
- Identificador del Producto: El SKU (Stock Keeping Unit) o ID del producto que deseas actualizar.
- Herramienta para Enviar Solicitudes: Se recomienda utilizar Postman u otra herramienta que permita el envío de solicitudes SOAP.
3. Paso a Paso para Actualización de Stock #
3.1. Obtención del sessionId
Antes de realizar cualquier operación en la API, debes obtener un sessionId para autenticar tus solicitudes. Esto se realiza mediante una llamada de login a la API.
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="urn:OpenMage"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:login>
<username xsi:type="xsd:string">usuario</username>
<apiKey xsi:type="xsd:string">contraseña</apiKey>
</ns1:login>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Respuesta:
Si el inicio de sesión es exitoso, recibirás un sessionId en el siguiente formato:
XML
<SOAP-ENV:Envelope>
<SOAP-ENV:Body>
<ns1:loginResponse>
<result xsi:type="xsd:string">1234567890abcdef1234567890abcdef</result>
</ns1:loginResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Guarda este sessionId para usar en las próximas solicitudes.
3.2. Actualización de Stock en la API V2
La API V2 del Marketplace Soulmkt utiliza una estructura más directa para actualizar el stock de un producto. A continuación, un ejemplo de cómo hacerlo.
Ejemplo de Solicitud para Actualizar Stock (API V2):
XML
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="urn:OpenMage"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:catalogInventoryStockItemUpdate>
<sessionId xsi:type="xsd:string">1234567890abcdef1234567890abcdef</sessionId>
<product xsi:type="xsd:string">producto-sk123</product>
<data xsi:type="ns1:catalogInventoryStockItemUpdateEntity">
<qty xsi:type="xsd:string">50</qty>
<is_in_stock xsi:type="xsd:int">1</is_in_stock>
</data>
</ns1:catalogInventoryStockItemUpdate>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Explicación de los Campos:
- sessionId: Token de autenticación obtenido en el paso anterior.
- product: SKU o ID del producto a actualizar.
- data: Contiene los datos de stock, incluyendo la cantidad y disponibilidad.
- qty: Nueva cantidad de unidades en stock.
- is_in_stock: Indica si el producto está disponible (1 para sí, 0 para no).
Respuesta:
Si la actualización se realiza correctamente, recibirás una respuesta como:
XML
<SOAP-ENV:Envelope>
<SOAP-ENV:Body>
<ns1:catalogInventoryStockItemUpdateResponse>
<result xsi:type="xsd:boolean">true</result>
</ns1:catalogInventoryStockItemUpdateResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
3.3. Actualización de Stock en la API V1
La API V1 utiliza una estructura ligeramente diferente, donde los datos del stock se envían en un formato de mapa (Map).
Ejemplo de Solicitud para Actualizar Stock (API V1):
XML
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="urn:OpenMage"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:call>
<sessionId xsi:type="xsd:string">1234567890abcdef1234567890abcdef</sessionId>
<resourcePath xsi:type="xsd:string">product_stock.update</resourcePath>
<args SOAP-ENC:arrayType="xsd:ur-type[2]" xsi:type="SOAP-ENC:Array">
<item xsi:type="xsd:string">producto-sk123</item>
<item xsi:type="ns2:Map">
<item>
<key xsi:type="xsd:string">qty</key>
<value xsi:type="xsd:string">50</value>
</item>
<item>
<key xsi:type="xsd:string">is_in_stock</key>
<value xsi:type="xsd:int">1</value>
</item>
</item>
</args>
</ns1:call>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Explicación de los Campos:
- sessionId: Token de autenticación obtenido anteriormente.
- resourcePath: Ruta del recurso de la API que se llamará (product_stock.update).
- args: Lista de argumentos, donde:
- El primer elemento es el SKU o ID del producto.
- El segundo elemento es un mapa (Map) que contiene los campos a actualizar (en este caso, cantidad y disponibilidad).
Respuesta:
Si la actualización se realiza correctamente, recibirás una respuesta como:
XML
<SOAP-ENV:Envelope>
<SOAP-ENV:Body>
<ns1:callResponse>
<result xsi:type="xsd:boolean">true</result>
</ns1:callResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
4. Consideraciones Finales #
- Pruebas: Realiza pruebas en un entorno de desarrollo antes de aplicar en producción.
- Errores Comunes: Verifica si el sessionId es válido y si el SKU del producto es correcto. Los errores más comunes están relacionados con autenticación o identificadores incorrectos.
- Herramientas: Utiliza herramientas como Postman para facilitar el envío y la visualización de las respuestas.
Con esta documentación, estarás listo para actualizar el stock de productos en el Marketplace Soulmkt utilizando las APIs V1 y V2. Si tienes alguna duda, ponte en contacto con el equipo de soporte.
Nota: Los datos utilizados en los ejemplos son ficticios y deben ser reemplazados por los valores reales de tu entorno.