![HCL Commerce Enterprise](../../base/images/ngent.gif)
Asignación de una regla de precio modificando el XML de contrato
La base de la tienda con elementos de escaparate para el contrato predeterminado de una tienda B2C no se puede visualizar en HCL Commerce Accelerator. Por este motivo, debe editar el XML de contrato cuando desee cambiar el nombre de la regla de precio asignada. Puede utilizar este procedimiento para asignar reglas de precios a otros tipos de contratos si no desea utilizar HCL Commerce Accelerator. También puede utilizar este procedimiento para establecer fechas de inicio y caducidad para reglas de precios o para asignar varias reglas de precios durante diferentes periodos de tiempo.
Es posible que necesite un administrador del sitio para ayudarle con esta tarea porque implica consultas de tablas de base de datos y edición de archivos XML.
Antes de empezar
- priceRuleId
- ID de la regla de precio que desea asignar. La regla de precio debe pertenecer a la tienda a la que pertenece el contrato o a la tienda con elementos de escaparate relacionados (para un sitio ampliado).Para buscar el
priceRuleId
, ejecute la siguiente sentencia SQL:select * from pricerule;
- storeId
- ID de la tienda a la que pertenece el contrato. Para buscar el
storeId
, ejecute la siguiente sentencia SQL:select * from storeent;
- contractId
- ID del contrato que desea exportar.Para buscar el
contractId
, ejecute la siguiente sentencia SQL:select * from contract;
Procedimiento
-
Para exportar el contrato al que desea asignar la regla de precio, emita el URL siguiente mediante
storeId
ycontractId
: - Abra el XML de contrato exportado en un editor.
-
Para determinar si el contrato ya tiene asignada una regla de precio, busque líneas de código similares al ejemplo siguiente:
<TermCondition type = "PriceRuleTC" mandatory = "false" changeable = "false"> <Property name = "priceRuleId" value = "priceRuleId_value"/> </TermCondition>
-
Realice uno de estos pasos, el que sea de aplicación:
- Si ha encontrado las líneas de código en el paso 3, actualice
priceRuleId_value
con elpriceRuleId
de la regla de precio que desea asignar. - Si no encontró las líneas de código en el paso 3:
- Localice el elemento
</BuyerContract>
. - Encima del elemento
</BuyerContract>
, pegue las tres líneas de código del paso 3. - Sustituya
priceRuleId_value
por elpriceRuleId
de la regla de precio que desea asignar, por ejemplo,10001
.
- Localice el elemento
- Si ha encontrado las líneas de código en el paso 3, actualice
-
Busque la serie de caracteres siguiente:
minorVersionNumber
-
Incremente el valor de
minorVersionNumber
en 1. - Opcional:
Puede asignar fechas de inicio y de caducidad a reglas de precios cuando edite el XML de contrato. Para ello, añada una propiedad
priceRuleBeginDate
o una propiedadpriceRuleExpiryDate
o ambas, dentro del XML de la regla de precio<TermCondition>
, tal como se muestra en este ejemplo:<TermCondition type = "PriceRuleTC" mandatory = "false" changeable = "false"> <Property name = "priceRuleId" value = "11111" /> <Property name = "priceRuleBeginDate" value = "2010-12-01 00:00:00.0" /> <Property name = "priceRuleExpiryDate" value = "2010-12-31 00:00:00.0" /> </TermCondition>
También puede asignar varias reglas de precios al mismo contrato especificando fechas de inicio y caducidad. No olvide que sólo puede ser válida una regla de precio en un contrato simultáneamente; por consiguiente, los intervalos de tiempo que especifique no se deben solapar. A continuación, se muestra un ejemplo que utiliza esta técnica correctamente para asignar tres reglas de precios diferentes durante diferentes intervalos de tiempo:
<TermCondition type = "PriceRuleTC" mandatory = "false" changeable = "false"> <Property name = "priceRuleId" value = "11111" /> <Property name = "priceRuleExpiryDate" value = "2011-01-01 00:00:00.0" /> </TermCondition> <TermCondition type = "PriceRuleTC" mandatory = "false" changeable = "false"> <Property name = "priceRuleId" value = "22222" /> <Property name = "priceRuleBeginDate" value = "2011-01-01 00:00:00.0" /> <Property name = "priceRuleExpiryDate" value = "2011-02-01 00:00:00.0" /> </TermCondition> <TermCondition type = "PriceRuleTC" mandatory = "false" changeable = "false"> <Property name = "priceRuleId" value = "33333" /> <Property name = "priceRuleBeginDate" value = "2011-02-01 00:00:00.0" /> </TermCondition>
En el XML de ejemplo anterior:
- La regla de precio con el ID
"11111"
vence el 1 de enero de 2011. - La regla de precio con el ID
"22222"
comienza el 1 de enero de 2011 y caduca el 1 de febrero de 2011. - La regla de precio con el ID
"33333"
comienza el 1 de febrero de 2011 y no tiene establecida una fecha de caducidad.
Asegúrese de que el código XML cumpla los requisitos siguientes o no podrá importar el contrato:- El valor de
priceRuleBeginDate
no puede ser posterior al valor depriceRuleExpiryDate
. - El valor de
priceRuleExpiryDate
no puede ser previo al valor decontractStartTime
. - El valor de
priceRuleExpiryDate
no puede ser previo al valor depriceRuleBeginDate
. - La regla de precio no puede estar caducada, es decir, el valor de
priceRuleExpiryDate
no puede ser posterior a la fecha y hora actual. - Si especifica más de una regla de precio, tal como se muestra en el ejemplo anterior, los periodos de tiempo que especifique no se deben solapar. Puede dejar espacios entre intervalos de tiempo; no obstante, si lo hace, no aparecerá ninguna información sobre precios y el cliente no podrá adquirir las entradas del catálogo (a menos que el contrato herede una regla de precio de otro contrato durante el intervalo).
- La regla de precio con el ID
- Guarde y cierre el XML de contrato.
- Importe el contrato a HCL Commerce emitiendo el siguiente URL: