HCL Commerce Enterprise

Parámetros de plantilla de elementos de regla de precio

Los parámetros de plantilla de elementos de regla de precio especifican los fragmentos de datos que necesita el mandato de la tarea de elemento de regla de precio para llevar a cabo su función. Los servicios de precios pasan los datos al mandato de la tarea cuando procesan una condición o una acción de una regla de precio.

Los parámetros de la plantilla de elementos se especifican en la definición de plantilla de elementos de regla de precio correspondiente. En el ejemplo siguiente de un elemento de condición personalizada que comprueba cuándo se ha registrado un cliente con la puntuación, las dos líneas de código en negrita que empiezan por <Argument son parámetros de plantilla de elementos:
<FlowElementImplementation type = "RegistrationTimeCondition">
    <Implementation invocationType = "TaskCommand">
        <Class name = "com.mycompany.commerce.price.rule.commands.element.RegistrationTimeConditionElementCmd">
            <Argument name = "registrationTime" value = "PRICERULE_registrationTime"/>
            <Argument name = "registrationTimeOperator" value = "PRICERULE_registrationTimeOperator"/>
        </Class>
    </Implementation>
</FlowElementImplementation>
  • El parámetro registrationTime representa la hora de registro que un usuario de empresa especifica para este elemento en la interfaz de usuario, en formato YYYY/MM/DD. Este parámetro se compara con la hora de registro real para un cliente determinado.
  • El parámetro registrationTimeOperator representa el operador que se debe utilizar al comparar dos valores de hora de registro, por ejemplo:
    • La hora de registro real es antes de la hora de registro especificada por el usuario de empresa.
    • La hora de registro real es después de la hora de registro especificada por el usuario de empresa.
    • La hora de registro real es igual a la hora de registro especificada por el usuario de negocio.
Cada definición de plantilla puede contener 0 o más parámetros de plantilla de elementos. Estos parámetros suelen correlacionarse con los datos que un usuario de empresa especifica en la interfaz de usuario, pero también es posible especificar los datos directamente en la definición de plantilla.

Formato de los parámetros de plantilla de elementos de regla de precio

El formato depende de dónde proceden los datos. Hay dos opciones:

  1. Los datos provienen de la interfaz de usuario.
    Si los datos que necesita el mandato de la tarea son datos que un usuario de empresa especifica al configurar la condición o acción, el formato es el siguiente:
    <Argument name="paramName" value="PRICERULE_paramName" />

    Todos los valores de parámetros que provienen de la interfaz de usuario empiezan con este prefijo: PRICERULE_. A continuación se muestra un ejemplo; en este caso, se trata de una condición que evalúa si el cliente se ha registrado en una fecha determinada, antes o después de dicha fecha:

    <Argument name = "registrationTime" value = "PRICERULE_registrationTime"/>

    Cuando un usuario de empresa especifica datos sobre una condición o acción utilizada en una regla de precio y luego los guarda, los pares nombre-valor para cada parámetro de la plantilla de elementos de regla de precio se guardan en la tabla PRELEMENTATTR. A continuación se muestra un ejemplo de una fila de la tabla para una condición con el parámetro PRELEMENT_ID con el valor 1000:

    Contenido de la tabla PRELEMENTATTR de ejemplo
    PRELEMENT_ID NAME VALUE
    1000 "registrationTime" 2010-07-01 00:00:00

    Cuando la regla de precio se utiliza en el escaparate para establecer los precios:

    • Los servicios de fijación de precios buscan paramName en la tabla PRELEMENTATTR y sustituyen el valor de PRICERULE_paramName del XML de tiempo de ejecución por el valor correspondiente.
    • Si el paramName no se encuentra en la tabla PRELEMENTATTR, el valor se establecerá en cualquier serie vacía y se hará caso omiso de ese parámetro.
  2. Los datos se especifican directamente en la definición de plantilla.

    Para ciertas condiciones y acciones, el mandato de tarea necesita datos que un usuario de negocio no especifica. En este caso, el parámetro value no tiene el prefijo PRICERULE_.

    Por ejemplo, si un mandato de tarea debe comprobar si un usuario se ha registrado, el parámetro siguiente puede pasar esta información al mandato de tarea:

    <Argument name="userType" value="R" />

Parámetros para listas capturadas en objetos de cuadrícula

Para algunos elementos de regla de precio, los usuarios de empresa pueden especificar listas de cosas como categorías, entradas de catálogo o grupos de miembros. Por ejemplo, un usuario de empresa puede especificar más de una categoría para el elemento Condición de catálogo. En la vista de propiedades del elemento de regla de precio, las listas se capturan utilizando un objeto de cuadrícula. Cuando la lista se mantiene en la tabla PRELEMENTATTR, cada fila de la cuadrícula corresponde a una fila de la tabla PRELEMENTATTR, y cada fila hace referencia al mismo nombre de propiedad. Por ejemplo:

Ejemplo de contenido de la tabla PRELEMENTATTR para un objeto de cuadrícula
PRELEMENT_ID NAME VALUE
1000 "categoryIdList" "10101"
1000 "categoryIdList" "10102"
1000 "categoryIdList" "10103"

Cuando este tipo de parámetro se incluye en una definición de plantilla de elemento de regla de precio, el parámetro debe especificar sólo un elemento. Por ejemplo, el parámetro para el ejemplo anterior es parecido al siguiente:

<Argument name="categoryIdList" value="PRICERULE_categoryIdList"/>

Para obtener la lista de la interfaz de usuario, el mandato de tarea de elemento de regla de precio correspondiente debe llamar al método getElementParameters. El método devuelve una lista separada por comas de todos los valores de la tabla PRELEMENTATTR. En el ejemplo anterior, el código getElementParameters().get("categoryIdList") devuelve 10101,10102,10103 .

Parámetros comunes utilizados en los elementos de regla de precio

Las condiciones y accione que se facilitan con el Centro de gestión tienen muchos parámetros definidos. Si va a crear una nueva condición o acción, puede utilizar los parámetros definidos aquí para enviar datos de la interfaz de usuario al mandato de tarea, o puede crear sus propios argumentos.

Parámetro Datos que especifica o valores válidos
PRICERULE_priceListId ID de una lista de precios
PRICERULE_scope Los valores válidos son:
catalogEntries
El elemento es aplicable a entradas de catálogo específicas.
categories
El elemento es aplicable a entradas de catálogo en categorías específicas.
catalogFilter
El elemento es aplicable a un filtro de catálogo específico.
PRICERULE_specifiedInTable Los valores válidos son:
La entrada de catálogo para la que se define el precio debe estar en una lista especificada de entradas de catálogo.
No
La entrada de catálogo para la que se define el precio no debe estar en una lista especificada de entradas de catálogo.
PRICERULE_inCategories Los valores válidos son:
La entrada de catálogo para la que se define el precio debe estar en una lista especificada de categorías.
No
La entrada de catálogo para la que se define el precio no debe estar en una lista especificada de categorías.
PRICERULE_catalogEntryIdList ID de una entrada de catálogo (por ejemplo, un producto o código de artículo)
PRICERULE_categoryIdList ID de una categoría
PRICERULE_includedInCatalogFilters Los valores válidos son:
La entrada de catálogo para la que se define el precio debe estar en un filtro de catálogo especificado.
No
La entrada de catálogo para la que se define el precio no debe estar en un filtro de catálogo especificado.
PRICERULE_calculationType Los valores válidos son:
markUp
Aumentar el precio de entrada.
markDown
Rebajar el precio de entrada.
usePriceEquation
Utilizar una ecuación de precio para calcular el precio.
PRICERULE_markUpPercentage Porcentaje para aumentar el precio de entrada.
PRICERULE_markDownPercentage Porcentaje para rebajar el precio de entrada.
PRICERULE_priceEquationId ID de la ecuación de precio.
PRICERULE_priceRuleId ID de la regla de precio.
PRICERULE_inputOperandType Los valores válidos son:
PriceConstant
El operando es una constante de precio.
PriceList
El operando es una lista de precios.
PriceEquation
El operando es una ecuación de precio.
Nombre de variable
El operando es el precio que se pasa a este elemento.
PRICERULE_inputOperandReferenceId ID de referencia (por ejemplo, el ID de la constante de precio)
PRICERULE_operator Operador para comparar solamente números (por ejemplo, no puede utilizarse para comparar fechas u horas). Los valores válidos son:
=
igual a
!=
no igual a
>
greater than
>=
mayor que o igual a
<
menor que
< =
menor que o igual a
PRICERULE_comparisonOperandType
PriceConstant
El operando es una constante de precio.
PriceList
El operando es una lista de precios.
PriceEquation
El operando es una ecuación de precio.
Número
El operando es un número especificado por el usuario.
PRICERULE_comparisonOperandReferenceId ID de referencia (por ejemplo, el ID de la constante de precio)
PRICERULE_numericalValue Valor del número especificado por el usuario.
PRICERULE_coordinatorType Los valores válidos son:
lowestPrice
Utilizar la vía con el precio más bajo.
highestPrice
Utilizar la vía con el precio más alto.
firstValidPath
Utilizar la primera vía que devuelve un precio válido.
PRICERULE_pattern Patrón de redondeo que se debe utilizar para redondear precios.
PRICERULE_definingCurrencyCodes Monedas a las que se aplica el patrón de redondeo.
PRICERULE_scope Los valores válidos son:
memberGroups
El elemento es aplicable a grupos de miembros específicos.
organizaciones
El elemento es aplicable a organizaciones específicas.
PRICERULE_targetMemberGroups
inAny
El cliente debe pertenecer a alguno de los grupos de miembros especificados.
inAll
El cliente debe pertenecer a todos los grupos de miembros especificados.
notIn
El cliente no debe pertenecer a alguno de los grupos de miembros especificados.
PRICERULE_targetOrganizations
inAny
El cliente debe pertenecer a algunas de las organizaciones especificadas.
inAll
El cliente debe pertenecer a todas las organizaciones especificadas.
notIn
El cliente no debe pertenecer a algunas de las organizaciones especificadas.
PRICERULE_memberGroupIdentifier Identificadores de los grupos de miembros especificados.
PRICERULE_organizationIdentifier Identificadores de las organizaciones especificadas.
PRICERULE_inPriceLists
La entrada de catálogo para la que se define el precio debe estar en una lista de precios especificada.
No
La entrada de catálogo para la que se define el precio no debe estar en una lista de precios especificada.