Solución
En esta sección se describen las API, las rutinas de usuario, los servicios y otros componentes implicados en la implementación de la característica.
Al cargarse la aplicación, la aplicación Store lee la regla Tema que se aplicará en IU de almacén web
para recuperar el tema que haya establecido el administrador para la empresa, y se visualizará la interfaz de usuario que corresponda. Para seleccionar un tema para su empresa, consulte Configuración de opciones de visualización. Sin embargo, no puede crear temas nuevos para la aplicación Sterling Store Engagement desde la interfaz de usuario de Sterling Business Center .
Por lo tanto, para crear los temas que puede seleccionar en Sterling Business Center, utilice la API de manageCommonCode con el tipo de código WEB_STORE_THEME. Después de que el administrador seleccione un tema entre las opciones disponibles, el tema se conserva en la regla WSC_STORE_THEME. Cuando se carga la aplicación Sterling Store Engagement , se llama a la API getRuleDetails con el nombre de regla WSC_STORE_THEME para obtener el tema configurado para la empresa.
Cuando un cliente acude a una tienda para devolver productos comprados previamente, el empleado de tienda puede crear una orden de devolución desde el portlet Productos de devolución, en una de las formas siguientes:
- Búsqueda de una orden:
Si el cliente tiene un recibo, el empleado de tienda puede buscar por el número de orden o explorar un código de barras en el recibo.
- Cuando el empleado de tienda explora el código de barras de la recepción, se llama a la API
translatebar codepara recuperar el número de orden. Se llama a la APIgetOrderListcon el número de orden para recuperar los detalles de la orden.- Si la API
translatebar codeno devuelve ninguna conversión, se llama a la APIgetOrderListcon la entrada original a la APItranslatebar code, o el empleado de tienda puede volver a la pantalla de inicio y especificar manualmente el número de orden. - Si la API de
translatebar codedevuelve varias conversiones, se muestra un mensaje de error adecuado. - Si la API
getOrderListno devuelve ninguna orden, se visualizará un mensaje de error adecuado. - Si la API
getOrderListdevuelve varias órdenes, éstas se listan y el empleado de tienda puede seleccionar la orden adecuada a la que el producto de devolución pertenece. - Si la API
getOrderListdevuelve una única orden, se visualiza la página Añadir productos a devolver.
- Si la API
- Cuando el empleado de tienda introduce, manualmente, el número de orden, se llama a la API
getOrderListpara recuperar los detalles de la orden.- Si la API
getOrderListdevuelve una única orden, se visualiza la página Añadir productos a devolver. - Si la API
getOrderListdevuelve varias órdenes, éstas se listan y el empleado de tienda puede seleccionar la orden adecuada a la que el producto de devolución pertenece. - Si la API
getOrderListno devuelve ninguna orden, se visualizará un mensaje de error adecuado.
- Si la API
El empleado de tienda puede realizar una búsqueda avanzada de órdenes utilizando criterios de búsqueda adicionales tales como, Nombre, Apellido, Correo electrónico, Número de teléfono, Código postal o Tipo de pago. Por ejemplo, si el empleado de tienda elige el método de pago como uno de los criterios, elgetPaymentTypeListSe llama a la API para recuperar todos los tipos de pago utilizando elCallingEnterpriseCodepara la tienda. El tipo de pago seleccionado por el empleado de tienda se pasa como entrada junto con otros criterios de búsqueda algetOrderListAPI para recuperar las órdenes coincidentes.
- Cuando el empleado de tienda explora el código de barras de la recepción, se llama a la API
- La búsqueda muestra un número fijo de órdenes. Si hay más órdenes para cargar, se muestra un mensaje indicando al empleado de tienda que restrinja la búsqueda. El empleado de tienda puede utilizar la opción de filtro para reducir el resultado de la búsqueda.
- La búsqueda lista las órdenes confirmadas y los borradores de órdenes formuladas por los clientes registrados y no registrados. La lista de órdenes proporciona detalles tales como el número de pedido, número de productos, canal de la orden, nombre de la tienda (en el caso de comprar en tienda), fecha, importe de orden, estado, nombre de cliente, etc.
- La API
getCompleteOrderLineListdevuelve imágenes para un máximo de dos productos junto con un recuento de los productos restantes de la orden. - Búsqueda de un cliente:
Si el cliente no tiene ningún recibo, el empleado de tienda puede buscarlo con un número de teléfono en el campo de búsqueda, después de seleccionar Cliente como en punto de entrada en el portlet Productos de devolución. Para buscar un cliente, el empleado de tienda puede pulsar con el dedo el icono Orden y seleccionar Cliente. Cuando se selecciona Cliente como el punto de entrada, la opción de explorar se oculta. El empleado de tienda puede introducir el número de teléfono del cliente, y pulsar el icono Buscar.
- Cuando el empleado de tienda pulsa Buscar, se llama a la API
getCompleteCustomerListpara recuperar clientes con la información que cumpla los criterios de búsqueda.- Si se devuelven varios clientes, éstos aparecen en una lista que el empleado de tienda puede utilizar para elegir el cliente adecuado. Para cada uno de los clientes de la lista se visualiza una dirección, un número de teléfono y una dirección de correo electrónico para, de esta forma, ayudar al empleado de tienda a seleccionar el cliente correcto.
El empleado de tienda selecciona el cliente correcto y, a continuación, selecciona Ver órdenes, y se llama a la API
getOrdersListpara recuperar todas las órdenes de venta que estén asociadas a la cuenta de dicho cliente. - Si se devuelve un único cliente, se visualiza la página Detalles de cliente, con todas las órdenes que estén asociadas a la cuenta de dicho cliente.
- Si no se devuelve ningún cliente, se visualiza un mensaje del tipo
No se ha encontrado ningún cliente
. A continuación, el empleado de tienda puede introducir un número de teléfono diferente, o elegir buscar datos a través de las opciones Producto u Orden.
- Si se devuelven varios clientes, éstos aparecen en una lista que el empleado de tienda puede utilizar para elegir el cliente adecuado. Para cada uno de los clientes de la lista se visualiza una dirección, un número de teléfono y una dirección de correo electrónico para, de esta forma, ayudar al empleado de tienda a seleccionar el cliente correcto.
El empleado de tienda puede realizar una búsqueda avanzada de clientes utilizando criterios de búsqueda adicionales tales como Nombre, Apellido, Correo electrónico, Número de teléfono, Código postal, o Últimos cuatro dígitos de la tarjeta de crédito.
Cuando el empleado de tienda realiza una búsqueda, se llama a la API
getCompleteCustomerListpara recuperar los clientes que coinciden. Una vez identificado el cliente correcto, el empleado de tienda puede pulsar Ver para ese cliente. A continuación, se llama a la APIgetOrderListpara recuperar las órdenes asociadas a ese cliente. Se visualizan los borradores de órdenes y las órdenes confirmadas. Después de que el empleado de tienda haya identificado la orden de venta para la que deba crearse una orden de devolución, podrá seleccionar los productos que el cliente desee devolver, y crear una orden de devolución. - Cuando el empleado de tienda pulsa Buscar, se llama a la API
- La API
getCompleteOrderLineListdevuelve imágenes para un máximo de dos productos junto con un recuento de los productos restantes de la orden. - Opción de filtro
El empleado de tienda puede filtrar órdenes mientras busca directamente órdenes o a través del historial de órdenes del cliente. El empleado de tienda puede filtrar la lista de órdenes utilizando criterios como el rango de fechas de orden, el estado y el canal de la orden. Cuando el empleado de tienda pulsa la opción Filtrar, se llama a la API
getCommonCodeListpara llenar los recuadros de selección del tipo de entrada. Los Estados de la orden se seleccionan en una lista predefinida en el archivoOrderStatusList.json, que se encuentra en la carpeta<WAR>\ngstore\shared\order\. El archivo es configurable, por lo que puede personalizar los estados según sea necesario. El empleado de tienda puede seleccionarBuscar en la tienda
para buscar órdenes creadas sólo por la tienda actual.Cuando el empleado de tienda selecciona los criterios de filtro apropiados y aplica el filtro, los criterios de filtro se pasan a la API
getOrderListpara recuperar las órdenes que cumplen los criterios de entrada. Se pasan el estado de la orden, el código de organización de vendedor y una consulta compleja con el atributoEntryTypea la APIgetOrderListpara recuperar las órdenes. Para el canal de tienda, el atributoEntryTypeesStorey para el canal del call center, el atributoEntryTypeesCallCenter. - Búsqueda de productos:
Si un cliente no tiene ningún recibo, no se ha registrado en la tienda, o sí se ha registrado en la tienda, pero no se puede localizar la orden, el empleado de tienda puede empezar el proceso de devolución buscando un producto. Este proceso de denomina
devolución oculta
. Un empleado de tienda sólo puede crear una devolución oculta si la regla Permitir devolución oculta está activada. Esta regla está activada de forma predeterminada. En una devolución oculta, el empleado de tienda puede explorar el código de barras del producto que el cliente desea devolver, o el empleado de tienda puede especificar el ID de producto o las palabras clave para buscar el producto.- Si el empleado de tienda explora un producto, se llama a la API
getCompleteItemListpara convertir el código de barras y devolver el producto.- Si la API devuelve un único producto, se visualiza la página Añadir productos a devolver. Se llama a la API
getCompleteItemListpara recuperar los detalles del producto y, a continuación, el empleado de tienda puede añadir el producto a la orden de devolución.El empleado de tienda puede pulsar el botón Compartir para compartir los detalles del producto con el cliente. En la ventana emergente Compartir, el empleado de tienda puede compartir los detalles del producto a través del correo electrónico de forma predeterminada. La dirección de correo electrónico registrada del cliente se rellena automáticamente y, si la dirección de correo electrónico no existe, el empleado de tienda puede especificar manualmente una dirección de correo electrónico. Cuando el empleado de tienda pulsa el botón Correo electrónico, los detalles del producto se envían al cliente. De forma similar, el empleado de tienda puede enviar detalles de producto a varias direcciones de correo electrónico especificando las direcciones de correo electrónico manualmente.Nota: También puede añadir varias opciones de compartición a través de la personalización. De forma similar, puede personalizar el servicio de correo electrónico predeterminado según sea necesario.Si el empleado de tienda no tiene el permiso de recursoEmail Product detailsy el botón Compartir sólo tiene la opción Correo electrónico, el botón Compartir no se ve en la pantalla. - Si la API
getCompleteItemListdevuelve varios productos, se visualizará un mensaje de error adecuado. - Si la API
getCompleteItemListno devuelve ningún producto, se llama a la APIsearchCatalogIndexy se visualiza la página Lista de productos.
- Si la API devuelve un único producto, se visualiza la página Añadir productos a devolver. Se llama a la API
- Si el empleado de tienda introduce palabras clave y pulsa Buscar, se llama a la API
searchCatalogIndexpara cargar los productos que coincidan con la palabra clave, y se visualiza la página Lista de artículos para mostrar todos los artículos coincidentes. De este modo, el artículo correcto puede seleccionarse para añadirlo a la orden de devolución.
- Si el empleado de tienda explora un producto, se llama a la API
Añadir productos a devolver
Es posible que observe problemas de parpadeo de la pantalla al visualizar la pantalla Añadir productos a devolver en la versión de Windows™ 8.1.
getCompleteOrderDetails para recuperar los detalles de la orden, y se llama a la API getCompleteOrderLineList para recuperar los detalles del producto. Se ejecuta la lógica siguiente:- Se visualizan los detalles de cada producto, que incluyen si el producto se puede devolver. Si la orden no contiene ningún producto que se pueda devolver, el empleado de tienda no podrá crear una orden de devolución.
- Durante la recuperación de los artículos, si la regla
YCD_SHOW_RESHIP_ON_RETURN_ENTRYestá desactivada, sólo se recuperarán los productos cuyo atributoReshipParentLineKeyse haya establecido en null. Para garantizar que no se recuperen productos reenviados, el valorReshipParentLineKeyQryTypese establece enISNULL. - El empleado de tienda puede pulsar el icono Buscar para cambiar el método de búsqueda de una orden y, a continuación, buscar un cliente, una orden o un producto. El empleado de tienda puede añadir productos de varias órdenes de venta a una única orden de devolución buscando otras órdenes de venta.
- El método de cumplimentación de un producto de devolución se establece en
CARRY.
En la pantalla Añadir productos a devolver, los productos se clasifican como retornables y no retornables. Los productos que puedan devolverse se listan en primer lugar, seguidos de los productos que no se puedan devolver. Cada producto tiene todos los detalles, entre los que se incluyen la descripción, una imagen, cuántos se pueden devolver, cuántos ya se han devuelto, etc. Los productos pueden ser no retornables por varios motivos, bien porque el estado del producto no permite que se realice una devolución, el producto viola una política de devolución, o ya se han devuelto todas las cantidades del producto. Las políticas de devolución se establecen en Sterling Business Centery se pueden modificar para que se ajusten a sus necesidades empresariales.
Algunas políticas de devolución no pueden sustituirse bajo ningún concepto, y en el producto se muestra el mensaje No se puede devolver
. El empleado de tienda que tenga los permisos adecuados, podrá sustituir ciertas políticas de devolución. En el producto se muestra el mensaje Sustitución necesaria
. Si se explora un producto y se ha violado alguna política de devolución, se abrirá la ventana Producto fuera de la política de devolución. Si se puede sustituir política de violación de devolución, el gestor podrá introducir el código de sustitución. Se presupone que hay un único aprobador para el plan de aprobación y éste es el mismo para todas las violaciones de política de devolución. Consulte Alterar temporalmente infracciones de política de devolución para obtener más información. Cuando la sustitución resulte satisfactoria, en el producto se mostrará el mensaje Añadir a devolución
, y no será necesario volver a realizar ninguna sustitución para dicho producto, a menos que el se cancele la orden de devolución y el empleado de tienda cree una nueva orden de devolución con el mismo producto.
Para los productos que se pueden devolver, el empleado de tienda puede pulsar Añadir a devolución o explorar el código de barras del producto. Se llama a la API translatebar code cuando el empleado de tienda explora un producto. Si se devuelve una conversión válida, se recupera la línea de pedido coincidente del producto, mediante la API getCompleteOrderLineList. Si la línea de pedido es una línea retornable, se llama a la API createOrder para crear una orden de devolución de borrador. Sólo se llama a esta API la primera vez. Si un producto se ha añadido dos o más veces, se llama a la API changeOrder para actualizar la orden de devolución de borrador. Cuando el empleado de tienda elige añadir un producto a la devolución, se añade una unidad del producto. Para devolver varias cantidades del mismo producto, el empleado de tienda pulsa Añadir a devolución repetidamente, para cada uno de los productos.
- El atributo
EntryTypede la APIcreateOrderse establece enStore. - Se llama a la API
getCompleteOrderDetailspara recuperar la información del cliente de la orden de venta. La información del cliente se pasa a la APIcreateOrderochangeOrder, para que se registre en la orden de devolución. - La API
getCompleteOrderDetailsrecupera el atributoOrderLineKeyde la orden de venta, y se pasa a la APIcreateOrderochangeOrder, en el elementoDerivedFrom, a la orden de devolución.
Un empleado de tienda puede ver los productos de una orden de devolución, en cualquier momento, pulsando el mini carro. En el mini carro se muestran los productos que se encuentren en el carro, y la cantidad. Un empleado de tienda puede eliminar los productos de la orden de devolución que figuran en el mini carro, pero no puede aumentar o reducir, individualmente, la cantidad del producto.
Añadir productos a devolución oculta
- En una devolución oculta, se llama a la API
getLowestPricepara recuperar el precio unitario menor de un producto. El precio menor se basa en la reglaPRICING_BLIND_RETURN_DAYS, que se utiliza para configurar el atributoNumberOfDaysInPastpara encontrar el precio menor del producto. Si no se establece la regla, el valor predeterminado es de 90 días. El precio menor entre la fecha en que el empleado de tienda crea la orden de devolución y el número de días en el pasado que se configura, se visualiza como el precio del producto de devolución. - Se llama a la API
createOrderpara crear la orden de devolución si no se ha creado aún. Se llama a la APIchangeOrderpara añadir productos a una orden de devolución que se haya creado.
Un empleado de tienda puede ver qué productos están en la orden de devolución, en cualquier momento, con sólo pulsar el Mini carro. Se llama a la API getCompleteOrderLineList para obtener la lista de productos que hay en el carro. Junto a cada producto aparece un icono X, que un empleado de tienda puede pulsar para suprimir el producto.
Si el empleado de tienda pulsa el icono X , se llama a la API modifyFulfillmentOptions con el atributo Action establecido en REMOVE para suprimir el producto. Una vez suprimido el producto, el mini carro se renueva.
Lista de devoluciones
Después de que todos los productos se hayan añadido a una devolución, el empleado de tienda puede pasar a la pantalla siguiente para añadir razones de devolución para los productos. Tras añadir todos los productos, el empleado de tienda pulsa Continuar. Se llama a la API getCompleteOrderDetails para captar la información de cabecera y la información de total de orden, y se llama a la API getCompleteOrderLineList para visualizar la información de línea de pedido en la pantalla Returns List . Se llama a la API processReturnOrder para copiar los descuentos y los cargos de la orden de venta a la orden de devolución, si la hay.
Cada artículo que se devuelva debe tener una razón de devolución. Las razones de devolución se configuran en Sterling Business Center y se llama a la API getCommonCodeList con el atributo CodeType establecido en RETURN_REASON para captar las razones de devolución. Al cargarse la Lista de devoluciones aparece la ventana emergente Añadir razón para devolución, y el empleado de tienda puede introducir las razones de devolución. Los productos devueltos pueden tener diferentes razones de devolución, o el empleado de tienda puede aplicar la misma razón de devolución para todos los productos. Si las razones de devolución son diferentes, se visualizará cada producto y el empleado de tienda podrá añadir una razón de devolución individual para cada producto. Si el empleado de tienda elige seleccionar las razones de devolución más adelante, puede pulsar Añadir razón para devolución para cada producto. Aparece la ventana emergente Añadir razón para devolución. El empleado de tienda puede seleccionar la Razón de devolución.
Una vez que el empleado de tienda haya introducido todos los detalles necesario en la ventana Añadir razón para devolución y pulse Aceptar, se llamará a la API changeOrder para actualizar la orden con las razones de devolución.
Si es necesario eliminar un producto de la orden de devolución, el empleado de tienda puede pulsar el icono Suprimir y se llama a la API changeOrder para eliminar el producto de la orden de devolución.
- Cliente existente
- Los clientes existentes pueden buscarse por nombre, apellido, correo electrónico o número de teléfono. Se llama a la API
getCompleteCustomerListpara buscar todos los clientes existentes. - Para los clientes existentes, si se ha creado alguna dirección asociada como, por ejemplo,
Facturar a
yEnviar a
, éstas se visualizarán cuando el empleado de tienda busque un cliente. - Una vez que el empleado de tienda haya averiguado cuál es el cliente correcto y pulse Aceptar, se llamará a la API
changeOrderpara añadir los detalles de cliente a la orden. Si existe alguna dirección asociada a la cuenta de cliente, dicha dirección se convierte, automáticamente, en la dirección de envío de la orden.
- Los clientes existentes pueden buscarse por nombre, apellido, correo electrónico o número de teléfono. Se llama a la API
- Nuevo cliente
- Si no se encuentra ningún registro para un cliente, o si éste es nuevo, el empleado de tienda puede seleccionar la ficha Nuevo cliente para crear un cliente consumidor.
- Cuando el empleado de tienda introduce los detalles de dirección del cliente y sale de la ficha, se ejecuta la lógica siguiente:
- Después de que el empleado de tienda pulsa Aceptar, se llama a la API
verifyAddress. Si se ha configurado la rutina de usuarioYCDVerifyAddressWithAVSUE, se valida la dirección. Si la dirección no es válida, o se han encontrado varias direcciones que coincidan con la dirección de entrada, se solicita al usuario que modifique la dirección no válida, o que seleccione la dirección correcta en la lista de direcciones coincidentes. - Una vez seleccionada una dirección válida, se llama a la API
manageCustomerpara crear el cliente. - Se llama a la API
changeOrderpara añadir los detalles del cliente a la orden de devolución.
- Después de que el empleado de tienda pulsa Aceptar, se llama a la API
- Para cambiar la información del cliente, el empleado de tienda puede pulsar Cambiar cliente, en panel del cliente, y las llamadas de API son similares a las de la creación de un nuevo cliente. El empleado de tienda también puede modificar la dirección que se haya seleccionado para la orden, pulsando el icono Editar. Se visualiza la ventana emergente Editar dirección de envío, el empleado de tienda introduce la dirección y pulsa Aceptar. Se llama a la API
modifyFulfillmentOptionspara actualizar la dirección en la orden. Si el empleado de tienda edita la dirección, el cambio sólo se efectúan en la orden, y no se guarda en la cuenta de cliente.
Violaciones de la política de devolución de sustitución
- Si la política de alteración temporal se establece en
Allow Override, la aplicación sobrescribe automáticamente la infracción del producto. - Si la política de alteración temporal se establece en
Do Not Allow Override, la política no se puede alterar temporalmente. El empleado de tienda puede ver la política de devolución para explicar la violación al cliente. - Si la política de devolución se establece en
Allow Return Based on Approval Plan, se permiten alteraciones temporales con el código de aprobación adecuado. Cuando el empleado de tienda pulse Sustituir para el producto que viole la política de devolución, se visualizará la ventana Sustituir.- Se llama a la API
getCommonCodeListcon el atributoCodeTypeestablecido enWSC_RETURN_OVERRIDEpara recuperar la razón sustituida. - El empleado de tienda debe especificar un código de sustitución de gestor.
- El empleado de tienda puede pulsar Aceptar para guardar la razón de devolución y el código de devolución en la orden. Se llama a la API
createOrderpara el primer artículo que se esté añadiendo a la orden de devolución. Se llama a la APIchangeOrderpara todos los productos posteriores al primer producto que se hayan añadido a la orden de devolución. - Los códigos de sustitución no pueden especificarse para productos individuales. Todos los productos que tengan violaciones de la política de devolución se sustituyen cuando se especifica un código de sustitución. Si un empleado de tienda no desea sustituir todos los productos de la orden de devolución con violaciones de política de devolución, deberá suprimir los productos que no deban sustituirse de la orden de devolución antes de poder sustituir los productos restantes.
- Se llama a la API
- Tras finalizar la API
createOrderochangeOrderde forma satisfactoria, se invoca el servicioYCD_ValidateReturnOverrideCode. El objecto de la orden, el producto seleccionado, la razón de devolución y el código de sustitución se introducen en el servicio, para validar el código de sustitución.- Una vez invocado el servicio, se llama a la API
processReturnOrderpara recuperar las violaciones efectuadas contra la línea de pedido.
- Una vez invocado el servicio, se llama a la API
- Cuando el servicio se ejecuta de forma satisfactoria, se recuperan las violaciones efectuadas contra el producto. Se llama a la API
recordApprovalspara cada violación. El ID de violación se pasa a la API, y ésta aprueba, o rechaza, la sustitución.- Si la API aprueba el código de sustitución, el estado del producto se cambia a
1200. Si se acepta la aprobación, se llama a la APIcreateOrderochangeOrderpara registrar la razón de sustitución. - Si la API rechaza el código de sustitución, el estado del producto permanece sin cambios, y la sustitución no se añade a la orden.
- Si la API aprueba el código de sustitución, el estado del producto se cambia a
Para que el empleado de tienda pueda recibir notificaciones de las violaciones debe establecerse tanto la validación de políticas de devolución como las de sustitución.
Si las políticas de devolución y sustitución entran en conflicto para un producto, se visualizará un mensaje de error adecuado, y el producto no se añadirá a la orden de devolución.
Adición de productos de intercambio
- Cuando el empleado de tienda explora un producto que se va a intercambiar, se llama a la API
getCompleteItemListpara recuperar el producto y se muestra la página Detalles del producto . Si no se encuentra ningún resultado, se llama a la APIsearchCatalogIndexpara mostrar una lista de productos. - Si el empleado de tienda introduce palabras clave y pulsa el icono Buscar, se llama a la API
searchCatalogIndexpara ver una lista de los productos coincidentes. Aparece una lista en la que se puede seleccionar el producto correcto.
Email Product details y el botón Compartir sólo tiene la opción Correo electrónico, el botón Compartir no se ve en la pantalla.Cuando se localice el producto correcto, el empleado de tienda puede pulsar Añadir como intercambio para añadir el producto a la orden de intercambio.
createOrder para crear la orden de intercambio. Se ejecuta la lógica siguiente:- Se llama a la API
getCompleteOrderDetailspara recuperar el atributoOrderHeaderKeyde la orden de devolución, y éste se pasa como el atributoReturnOrderHeaderKeyForExchangeen la APIcreateOrder. - El atributo
ExchangeTypede la APIcreateOrderde la orden de intercambio se establece en base a la reglaYCD_DEFAULT_EXCHANGE_TYPE.
Después de añadir un producto a una orden de intercambio, se visualiza la pantalla Lista de devoluciones con los productos de intercambio añadidos. El empleado de tienda puede efectuar las modificaciones necesarias a un producto de intercambio, entre las que se incluyen convertir un producto en un obsequio, aplicar un cupón, cambiar el método de entrega, etc.
Para sustituir el precio de un producto de intercambio, el empleado de tienda puede seleccionar el icono de editar. Cuando el empleado de tienda selecciona el icono de editar que aparece junto al precio unitario del producto de intercambio, aparece la ventana Precio de sustitución. El empleado de tienda puede especificar el nuevo precio y la razón de la sustitución del precio, y aplicar el cambio.
Para captar las razones de alteración temporal, se llama a la API getCommonCodeList con el atributo CodeType establecido en YCD_PRICEOVERRIDE. Cuando el empleado de tienda pulsa Aplicar, se llama a la API modifyFulfillmentOptions para sustituir el precio de lista del producto. Se visualizan el precio original y el precio nuevo del producto.
Para sustituir el precio de un producto, el empleado de tienda debe tener el permiso de recurso para la acción Sustituir precio
. Si el empleado de tienda no tiene el permiso de recurso, el icono Sustituir precio
no se visualiza.
Las opciones de obsequio pueden estar disponibles para los productos de intercambio. Se visualiza un mensaje del tipo Convertir este producto en un obsequio
para todos los productos.
translatebar code para identificar el cupón. Una vez identificado el cupón, se llama a la API changeOrder para aplicarlo a la orden.- Si el cupón se ha aplicado de forma satisfactoria a la orden, se llama a la API
getCompleteOrderDetailspara renovar el panel de la orden con el precio actualizado. Si no se ha aplicado el cupón de forma satisfactoria, se visualiza un mensaje de error. - Un empleado de tienda puede suprimir un cupón pulsando el icono X que aparece junto al mismo. Para eliminar un cupón, se llama a la API
changeOrdercon el atributoACTIONestablecido enREMOVEen el elementoPromotion. Se llama a la APIgetCompleteOrderDetailspara renovar la página con la información actualizada.
- Cupones aplicables en los cargos de envío
- Cupones aplicables en tipos de pago específicos
Una vez añadidos todos los productos, e identificado el cliente, si fuera necesario, el empleado de tienda puede pulsar Reembolso. Se llama a la API processReturnOrder con el atributo ExecuteReturnPolicy establecido en Y para validar los productos de devolución. Si se producen violaciones, se abre la ventana emergente Producto fuera de la política de devolución, y el empleado de tienda debe llamar a un gestor para que introduzca un Código de sustitución de gestor que permita llevar a cabo la devolución. De forma alternativa, el empleado de tienda puede eliminar el producto de la orden de devolución. Si no se puede sustituir la violación de política, el empleado de tienda deberá eliminar el producto de la orden de devolución antes de proseguir con los pagos. Si no se produce ninguna violación, se visualiza la pantalla Pagos.
Pagos
Cuando el empleado de tienda pasa de la pantalla Lista de devoluciones a la pantalla Pagos, se llama a la API processReturnOrder para calcular el importe del reembolso. Si se ha guardado algún método de pago con la orden de venta original, la API processReturnOrder llena los métodos de pago predeterminados de la orden de devolución. Los métodos de pago predeterminados de las órdenes de devolución y el importe de reembolso en dichos métodos de pago dependen de las configuraciones del tipo de pago.
Default for Return está activada, se ejecuta la lógica siguiente:- Sólo puede efectuarse un tipo de pago como tipo de pago predeterminado para el proceso de devolución, en un momento concreto.
- Si un tipo de pago se convierte en el valor predeterminado para la devolución, en ese caso, durante una devolución oculta, el importe se reembolsará a dicho tipo de pago.
- Si un tipo de pago que se ha utilizado en la orden de venta no es válido para la devolución, el importe se reembolsará al tipo de pago predeterminado.
Valid for Return está activada, se ejecuta la lógica siguiente:- Si los tipos de pago que se hayan utilizado para la orden de venta son válidos para la devolución, en ese caso, al devolver los productos, el importe se reembolsará a los mismos tipos de pago. Si se utiliza más de un tipo de pago en la orden de venta, se tendrá en cuenta la secuencia de devolución, y el importe se reembolsará en función de la misma.
- Si los tipos de pago que se hayan utilizado para la orden de venta no son válidos para la devolución, en ese caso, al devolver los productos, en la pantalla de reembolso del reintegro no aparecen los tipos de pago no válidos, en el panel de pagos. No obstante, el usuario puede seleccionar los tipos de pago no válidos a través del enlace Añadir nuevo método de pago y completar el proceso de reembolso.
Credit Card Valid For Return está activada, el importe se reembolsa a una tarjeta de crédito. Si la regla Credit Card Valid For Return está desactivada, la devolución se reembolsa a cualquier método de pago predeterminado. Si el cliente solicita que el reembolso sea un método de pago distinto del predeterminado, el empleado de tienda puede añadir un nuevo método de pago. El atributo PlannedRefundAmount se llena para los métodos de pago de orden de devolución, si la orden de venta ha generado la factura de envío.- Se muestra el importe de reembolso de la orden de devolución con los métodos de pago predeterminados, y el valor
PlannedRefundAmountcorrespondiente, para cada método de pago. - Se llama al atributo
GrandRefundTotalde la APIprocessReturnOrderpara visualizar el reembolso que se le debe al cliente. - La API
getCompleteOrderDetailsse utiliza para recuperar los detalles de la orden de devolución.
- Se llama a la API
getCompleteOrderDetailspara recuperar el atributoGrandExchangeTotalpara visualizar la orden de intercambio total y el atributoGrandTotalpara visualizar el total de las órdenes de devolución e intercambio. - Si el importe
GrandRefundTotales mayor que 0$, el cliente recibe un reembolso. Se visualizan los métodos de pago del importe de reembolso planificado. - Si el importe
GrandRefundTotales menor que 0$, el cliente debe dinero en el orden de intercambio. Cuando el cliente debe dinero en la orden, se llama a la APIgetCompleteOrderDetailspara recuperar el atributoRemainingAmountToAuthdel atributoChargeTransactionDetails, para visualizar el importe restante que el cliente debe pagar. No hay ningún método de pago predeterminado cuando el cliente debe un saldo en la orden de intercambio. - Para capturar el pago, se ejecuta la lógica siguiente:
- Se llama a la API
capturePaymentpara capturar el pago de la orden de intercambio. - Se llama a la API
getPaymentListpara recuperar los tipos de pago aceptados. - Se llama a la API
getCommonCodeListcon el atributoCodeTypeestablecido enYCD_CREDIT_CARD_TYPEpara recuperar los tipos de tarjeta de crédito aceptados. A continuación, se pasa al información a la APIgetPaymentCardTypeListpara recuperar la lista de tipos de tarjeta de crédito. - Para los pagos de tarjeta de crédito, se pasa el atributo
SecureAuthenticationCodeen la APIprocessOrderPaymentspara capturar el código CVV de todas las tarjetas de crédito. - Por cuestiones de seguridad, en la aplicación no se pueden proporcionar los números de tarjeta de crédito; en su lugar, Sterling Sensitive Data Capture Server captura el pago para cifrar los números de tarjeta. El empleado de tienda recibe el código CVV de la tarjeta de crédito, que se pasa a la API
processOrderPaymentspara su autorización como información transaccional, pero nunca se almacena en el sistema ni en los registros del mismo. - Si se produce algún error al procesar el pago, se llama al elemento
ChargeTransactionDetailsde la salida de la APIcapturePaymentoprocessOrderPaymentspara visualizar un mensaje de error adecuado. - Si el pago se procesa de forma satisfactoria, se llama a la API
confirmDraftOrderpara confirmar el pago.
- Se llama a la API
Si la restricción If Refund Amount is se establece para un tipo de pago para un determinado importe de reembolso, el reembolso se otorga al tipo de pago especificado en la restricción Refund
Using Payment Type . Por ejemplo, si la orden de venta está asociada con un tipo de pago de tarjeta de crédito,
puede establecerse una restricción de manera que, ante la devolución de la orden, el importe a reembolsar se realizará mediante
cheque si el total de la orden es superior a 1000$. Si el total de la orden no es superior a 1000$, la restricción puede
establecerse para que se reembolse en una tarjeta de valor almacenado. Para esta configuración, la restricción Refund to new payment type debe establecerse como SVC (tarjeta de valor de tienda) en el tipo de pago de tarjeta de crédito y la restricción debe establecerse en que el total de la orden es inferior a 1000 $en el tipo de pago SVC. Si las reglas Default for Return y Refund to
a new payment type son ON para un tipo de pago, el tipo de pago que se establece como Refund to new payment type se tiene en cuenta cuando el empleado de tienda realiza una devolución a ciegas.
Se llama a la API processOrderPayments para procesar el reembolso al cliente, en tiempo real. Si los errores se producen al procesar el pago, se llama al elemento chargeTransactionDetails de la salida de la API capturePayment o processOrderPayments para visualizar un mensaje de error adecuado. Si no se produce ningún error al procesar el pago, se llama a la API confirmDraftOrder para confirmar el pago.
Returns
list , se perderá cualquier información de pago especificada. Los pagos no se guardan en los borradores de órdenes.Visualización del resumen de la orden de devolución o de intercambio
Tras completarse el pago de forma satisfactoria, el empleado de tienda puede ver el Resumen de la devolución o el Resumen de intercambio. Se llama a la API getCompleteOrderDetails para obtener todos los detalles de la orden de devolución y de intercambio. Se llama a la API getCompleteOrderLineList para recuperar los detalles del producto de devolución y del producto de intercambio.
El empleado de tienda puede imprimir un recibo para el cliente. Cuando el empleado de tienda elige imprimir el recibo, se invoca el servicio StoreReturnReceipt_95 para enviar detalles de la orden de devolución que debe imprimirse.
De forma alternativa, el cliente puede solicitar que la recepción de devolución se envíe a una dirección de correo electrónico. Se invoca el servicio YCD_StoreReturnEmail para obtener los detalles de la orden de devolución y enviar el correo electrónico.
getReturnDispositionList para recuperar las ubicaciones de devolución. El empleado de tienda selecciona si deben enviarse todos los productos devueltos a la misma ubicación de devolución. Se ejecuta la lógica siguiente:- Si todos los productos deben enviarse a la misma ubicación de devolución, en la ventana se visualiza un menú en el que elegir la ubicación de devolución. El empleado de tienda debe seleccionar la ubicación de devolución.
- Si los productos deben enviarse a diferentes ubicaciones de devolución, en la ventana se visualiza un menú de ubicaciones de devolución para cada producto. El empleado de tienda debe seleccionar una ubicación de devolución para cada producto.
- Para guardar las ubicaciones de devolución de los productos, el empleado de tienda pulsa Aceptar. Se llama a la API
changeOrderpara guardar los cambios efectuados en la orden de devolución.
Cancelar orden de devolución o de intercambio
Si el empleado de tienda elige cancelar una orden de devolución o de intercambio, se llama a la API deleteOrder con el atributo OrderHeaderKey para suprimir la orden. Si el empleado de tienda necesita devolver alguno de los productos después de cancelar la orden, deberá crear una orden de devolución nueva. Si se ha necesitado algún código de sustitución, éste deberá introducirse otra vez.