Introducción a las funciones del API para la extensión "Tienda" de WS.WebTV
soporte, ws.webtv, api, tienda, introducción
Antes de comenzar a trabajar con las funciones del API para la extensión "Tienda", debe leer la siguiente información con detalles importantes que necesita conocer (incluyendo flujos de trabajo).
Todas las funciones utilizan la moneda seleccionada en la configuración de la "Tienda". No puede realizar operaciones en una moneda diferente a la configurada.
- Puede obtener el contenido actual (pases de acceso de Clips y Canales vigentes) para un Usuario con la función "list_current_content".
- Puede obtener la lista de suscripciones (vigentes) para un usuario con la función "list_subscriptions".
- Puede obtener el crédito disponible de un Usuario con la función "get_credit".
- Puede añadir/sustraer crédito a/de un Usuario (arbitrariamente) con la función "add_subtract_credit".
Cuando desee mostrar los productos relacionados a un contenido (Clip, Canal...), utilice la función "get_product" para obtener la información relacionada. También puede usar esta función para obtener la lista de productos generales (no-contenido) de la Tienda (Crédito, Pases de Acceso Globales, Membresías, Servicios, Donaciones...).
A continuación encontrará un resumen del proceso y funciones involucradas:
- Puede obtener el contenido del carrito, en cualquier momento, usando la función "get_cart". Esta función también devolverá las cantidades totales, etc.
- Puede añadir/eliminar productos del carrito (suministrando el ID de producto) usando la función "modify_cart" (esta función también le permite vaciar el carrito).
- Una vez que el Usuario esté listo para realizar el pedido (y pagar) utilizará las siguientes funciones:
- "place_order": Esta función le permite realizar el pedido a partir de los productos en el carrito. Una vez realizado el pedido, el carrito de compras se vaciará. Si desea obtener los detalles del pedido actual puede utilizar la función "get_cart" y le devolverá los detalles del pedido en vez de los del carrito.
- "cancel_order": Utilice esta función para cancelar el pedido actual (por cualquier motivo). Tenga presente que un pedido no se puede modificar. Si Ud. o el Usuario desea modificar el pedido, éste se debe cancelar y comenzar desde cero.
- "get_cart": Cuando se ha realizado un pedido (y no se ha pagado aún), esta función devolverá los detalles del mismo (en vez del carrito de compras, que está vacío); recuerde que también devolverá los totales.
- "add_payment": Después de realizar un pedido Ud. normalmente le cobrará al Usuario. Una vez que cobró al Usuario debe añadir la transacción de pago correspondiente utilizando esta función. Puede añadir varios pagos a un pedido siempre y cuando la suma de los pagos totalice la cantidad a pagar ("amount due").
- "process_order": Una vez que la cantidad a pagar ("amount due") de un pedido sea 0 (puede verificar esto con la función "get_cart") puede procesar el pedido con esta función. Esta función cambiará el estado del pedido a "pagado" y procesará los ítems.
En resumen, el flujo de trabajo completo para realizar y pagar un pedido sería:
1. Añadir productos al carrito (modify_cart).
2. Realizar el pedido (place_order).
3. Cobrar al usuario la cantidad a pagar ("amount due") del pedido.
4. Añadir el pago al pedido (add_payment).
5. Procesar el pedido (process_order).
6. Recargar CVR del Usuario (users > get_cvr).
Opcional: ¿Y los pagos periódicos (automáticos) para als suscripciones? ¿Y las suscripciones con perídodo de prueba (WS.WebTV 3.0.2+)?
NOTA: Si no se establecen los pagos periódicos, la WebTV le pedirá al Usuario que pague cuando se acerque la fecha de vencimiento de una suscripción.
Si piensa implementar los pagos periódicos desde su aplicación entonces:
- Si no va a utilizar PayPal, entonces primero debe implementar el Procesador de Pagos Externo y configurar este método de pago en la extensión "Tienda".
-
Si va a utilizar PayPal entonces asegúrese de que ha configurado correctamente este método de pago en la extensión "Tienda".
Resumen del proceso adicional y funciones involucradas:
- Al realizar un pedido, obtenga los IDs de todos los productos cuyo tipo de producto "type name" sea igual a "SUBSCRIPTION", "SUBSCRIPTIONTRIAL" o "SUBSCRIPTIONRENEWAL".
- Cuando cobre al Usuario deberá crear (en su lado) un perfil de pagos periódicos (acuerdo/contrato) para cada suscripción. Para ello, necesita conocer la información de pagos periódicos (importe, código de moneda, período, frecuencia...), puede obtener esta información usando la función "get_subscription_pre_rp_info" suministrado el ID de producto.
- Después de que tenga la información de los perfiles de pago periódicos para cada producto de suscripción (y después de que el pedido se haya procesado y se hayan creado las suscripciones...) entonces puede usar la función "get_subscription_pre_rp_info" nuevamente para obtener los ID de suscripción para cada producto; finalmente, podrá establecer los pagos periódicos en la extensión "Tienda" usando la función "set_subscription_rp" (suministrando el ID de suscripción y la información de pagos periódicos para cada suscripción).
En resumen, el flujo de trabajo completo para realizar y pagar un pedido con suscripciones (sin prueba/trial) y pagos periódicos, sería:
1. Añadir productos al carrito (modify_cart).
2. Realizar el pedido (place_order) y obtener el ID de los productos de suscripción (get_cart).
3. Obtener la información de pagos periódicos para cada uno de los productos de suscripción (get_subscription_pre_rp_info).
4. Cobrar al usuario la cantidad a pagar ("amount due") del pedido y crear los perfiles de pago periódicos para cada producto de suscripción
(y guardar la información relevante que utilizará en los siguientes pasos...)
5. Añadir el pago al pedido (add_payment).
6. Procesar el pedido (process_order).
7. Obtener la información de pagos periódicos nuevamente, para los productos de suscripción (get_subscription_pre_rp_info), para conocer el ID de suscripción para cada uno.
8. Para cada suscripción, utilizar el ID junto con la información del perfil de pagos periódicos del punto 4 para establecer los pagos periódicos en la "Tienda" (set_subscription_rp) .
9. Recargar CVR del Usuario (users > get_cvr).
En resumen, el flujo de trabajo completo para realizar y pagar un pedido con una suscripción (con prueba/trial) y pagos periódicos, sería:
1. Añadir el producto de suscripción trial al carrito. Este tipo de producto sólo se puede añadir en solitario al carrito. (modify_cart).
2. Realizar el pedido (place_order) y obtener el ID de los productos de suscripción (get_cart).
3. Obtener la información de pagos periódicos para el productos de suscripción (get_subscription_pre_rp_info).
4. Al tratarse de una prueba/trial, no hay que cobrar nada pero debe crear el perfil de pagos periódicos para el producto de suscripción
(y guardar la información relevante que utilizará en los siguientes pasos...)
5. Procesar el pedido (process_order).
6. Obtener la información de pagos periódicos nuevamente, para el producto de suscripción (get_subscription_pre_rp_info), para conocer el ID de suscripción.
7. Utilizar el ID de suscripción junto con la información del perfil de pagos periódicos del punto 4 para establecer los pagos periódicos en la "Tienda" (set_subscription_rp) .
8. Recargar CVR del Usuario (users > get_cvr).