HCL Commerce Enterprise

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

Consulte la base de datos de HCL Commerce para obtener los valores siguientes para la regla de precio y el contrato:
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

  1. Para exportar el contrato al que desea asignar la regla de precio, emita el URL siguiente mediante storeId y contractId:
  2. Abra el XML de contrato exportado en un editor.
  3. 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>
  4. 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 el priceRuleId de la regla de precio que desea asignar.
    • Si no encontró las líneas de código en el paso 3:
      1. Localice el elemento </BuyerContract>.
      2. Encima del elemento </BuyerContract>, pegue las tres líneas de código del paso 3.
      3. Sustituya priceRuleId_value por el priceRuleId de la regla de precio que desea asignar, por ejemplo, 10001.
  5. Busque la serie de caracteres siguiente:

    minorVersionNumber

  6. Incremente el valor de minorVersionNumber en 1.
  7. 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 propiedad priceRuleExpiryDate 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 de priceRuleExpiryDate.
    • El valor de priceRuleExpiryDate no puede ser previo al valor de contractStartTime.
    • El valor de priceRuleExpiryDate no puede ser previo al valor de priceRuleBeginDate.
    • 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).
  8. Guarde y cierre el XML de contrato.
  9. Importe el contrato a HCL Commerce emitiendo el siguiente URL:

Resultados

La regla de precio está ahora asignada al contrato. Los clientes con derecho al contrato ven precios de la regla de precio en el escaparate.