Habilitar el impuesto sobre el valor añadido (IVA) en el nivel de tienda

Cómo registrar el conjunto de mandatos de IVA para habilitar el IVA en el nivel de la tienda.

Por qué y cuándo se efectúa esta tarea

Es necesario que registra el nuevo conjunto de mandatos de impuesto para poder habilitar el IVA. El IVA se puede habilitar tanto en el nivel de tienda como el nivel de sitio, aunque normalmente se habilita a nivel de tienda.

Procedimiento

  1. Añada el nuevo método de cálculo para el cálculo del IVA ejecutando sentencias similares a:
    insert into calmethod(CALMETHOD_ID,STOREENT_ID,CALUSAGE_ID,TASKNAME,DESCRIPTION,SUBCLASS,NAME) 
    values(@any unique id 1, @customer's store ID,-3,'com.ibm.commerce.order.calculation.VATCalculationRuleCombineCmd',
    'default method to identify sales tax rules (referenced by STENCALUSG.ACTRC_CALMETHOD_ID) when Value-Added-Tax is
    enabled',5,'VATCalculationRuleCombine (sales tax)')
    insert into calmethod(CALMETHOD_ID,STOREENT_ID,CALUSAGE_ID,TASKNAME,DESCRIPTION,SUBCLASS,NAME) 
    values(@any unique id 2, @customer's store ID,-4,'com.ibm.commerce.order.calculation.VATCalculationRuleCombineCmd',
    'default method to identify shipping tax rules (referenced by STENCALUSG.ACTRC_CALMETHOD_ID) when Value-Added-Tax is
    enabled',5,'VATCalculationRuleCombine (shipping tax)')
  2. Registre los nuevos métodos de cálculo para el cálculo del impuesto sobre la venta y el cálculo de impuestos sobre el envío.
    Nota: Si tiene una promoción aplicada al producto y especifica la secuencia como 0, el impuesto se calcula basándose en el importe bruto. Es decir, el precio antes de aplicar la promoción. Sin embargo, si especifica la secuencia, por ejemplo, como 3 y 4 para los dos registros, el impuesto se calcula basándose en el precio con descuento. Es decir, el precio después de aplicar la promoción.
    • Si se definen valores predeterminados en el nivel del sitio, ejecute sentencias SQL que similares a:
      insert into stencalusg (storeent_id, calusage_id, actcc_calmethod_id, actrc_calmethod_id,calmethod_id_app,calmethod_id_sum,usageflags,calmethod_id_ini,sequence) values(store_id,-3,-41,@any unique id 1,-222,-223,1,-221,sequence); 
      insert into stencalusg (storeent_id, calusage_id, actcc_calmethod_id, actrc_calmethod_id,calmethod_id_app,calmethod_id_sum,usageflags,calmethod_id_ini,sequence) values(store_id,-4,-61,@any unique id 2,-232,-233,1,-231,sequence); 
    • Si se definen valores predeterminados en el nivel de la tienda, ejecute sentencias SQL similares a:
      update stencalusg set ACTRC_CALMETHOD_ID=
      @any unique id 1 where storeent_id=@customer's store ID and calusage_id=-3
      update stencalusg set ACTRC_CALMETHOD_ID=
      @any unique id 2 where storeent_id=@customer's store ID and calusage_id=-4
  3. Registre el mandato para calcular los impuestos para una entrada de catálogo individual antes de añadirla a un pedido ejecutando sentencias SQL similares a:
    insert into cmdreg(STOREENT_ID,INTERFACENAME,CLASSNAME,TARGET)
    values(@customer's store ID, 'com.ibm.commerce.taxation.commands.GetDisplayTaxesCmd',
    'com.ibm.commerce.taxation.commands.GetDisplayVATTaxesCmdImpl','Local')
  4. Registre la implementación apropiada para OrderCalculateCmd.
    • Si se definen valores predeterminados en el nivel de sitio:

      Si utiliza com.ibm.commerce.order.commands.PromotionEngineOrderCalculateCmdImpl como la implementación de OrderCalculateCmd, deberá utilizar:

      insert into cmdreg(STOREENT_ID,INTERFACENAME,CLASSNAME,TARGET) values(store_id, 'com.ibm.commerce.order.commands.OrderCalculateCmd','com.ibm.commerce.order.commands.VATPromotionEngineOrderCalculateCmdImpl', 'Local');

      Si utiliza com.ibm.commerce.order.commands.OrderCalculateCmdImpl como la implementación de OrderCalculateCmd, deberá utilizar:

      insert into cmdreg(STOREENT_ID,INTERFACENAME,CLASSNAME,TARGET) values(store_id, 'com.ibm.commerce.order.commands.OrderCalculateCmd','com.ibm.commerce.order.commands.VATOrderCalculateCmdImpl', 'Local');
    • Si se definen valores predeterminados en el nivel de la tienda:

      Si utiliza com.ibm.commerce.order.commands.PromotionEngineOrderCalculateCmdImpl como la implementación de OrderCalculateCmd, deberá utilizar:

      update cmdreg set CLASSNAME='com.ibm.commerce.order.commands.VATPromotionEngineOrderCalculateCmdImpl'
      where interfacename = 'com.ibm.commerce.order.commands.OrderCalculateCmd' and storeent_id=@customer's store id

      Si utiliza com.ibm.commerce.order.commands.OrderCalculateCmdImpl como la implementación de OrderCalculateCmd, deberá utilizar:

      update cmdreg set CLASSNAME='com.ibm.commerce.order.commands.VATOrderCalculateCmdImpl'
      where interfacename = 'com.ibm.commerce.order.commands.OrderCalculateCmd' and storeent_id=@customer's store id
  5. Registre el mandato para sumar una cantidad total de un pedido individual ejecutando una sentencia SQL similar a:
    insert into cmdreg(STOREENT_ID,INTERFACENAME,CLASSNAME, TARGET)
    values(@customer's store id,'com.ibm.commerce.order.commands.GetOrderTotalAmountCmd',
    'com.ibm.commerce.order.commands.VATGetOrderTotalAmountCmdImpl','Local')
  6. Registre el mandato para sumar una cantidad total de un conjunto de artículos de pedido ejecutando una sentencia SQL similar a:
    insert into cmdreg(STOREENT_ID,INTERFACENAME,CLASSNAME,TARGET)
    values(@customer's store id,'com.ibm.commerce.orderitems.commands.GetOrderItemsTotalAmountCmd',
    'com.ibm.commerce.orderitems.commands.VATGetOrderItemsTotalAmountCmdImpl','Local')
  7. Registre el mandato para sumar una cantidad total de pedidos de historial ejecutando una sentencia SQL similar a:
    insert into cmdreg(STOREENT_ID,INTERFACENAME,CLASSNAME,TARGET)
    values(@customer's store id,'com.ibm.commerce.order.commands.GetHistoryOrderTotalAmountCmd',
    'com.ibm.commerce.order.commands.VATGetHistoryOrderTotalAmountCmdImpl','Local')
  8. Registre el mandato para sumar una cantidad total de salida del pedido ejecutando una sentencia SQL similar a:
    insert into cmdreg(STOREENT_ID,INTERFACENAME,CLASSNAME,TARGET)
    values(@customer's store id,'com.ibm.commerce.order.commands.GetOrderReleaseTotalAmountCmd',
    'com.ibm.commerce.order.commands.VATGetOrderReleaseTotalAmountCmdImpl','Local')
  9. Opcional: Si desea utilizar HCL Commerce Accelerator para gestionar la devolución, se da soporte al IVA en el flujo de retorno de HCL Commerce:
    1. Registre el mandato para calcular un crédito total de artículos RMA ejecutando una sentencia SQL similar a:
      insert into cmdreg(STOREENT_ID,INTERFACENAME,CLASSNAME,TARGET) 
      values (@customer's store id,'com.ibm.commerce.returns.commands.CalculateRMAItemTotalCreditCmd', 'com.ibm.commerce.returns.commands.VATCalculateRMAItemTotalCreditCmdImpl','Local') 
    2. Para configurar las vistas específicas del IVA de HCL Commerce Accelerator, abra los siguientes archivos en un editor de texto:
      • workspace_dir/CommerceAccelerator/WebContent/WEB-INF/struts-config-ext.xml
      • workspace_dir/CommerceAccelerator/WebContent/WEB-INF/classes/struts-wcs-accelerator-custom.xml
      Busque el elemento <global-forwards> y actualícelo tal como se muestra a continuación:
         <struts-config>
         <global-forwards>
          <forward className="com.ibm.commerce.struts.ECActionForward"
                  name="ReturnItemsPage" path="/tools/returns/ReturnItemsPageVAT.jsp">
                  <set-property property="resourceClassName" value="com.ibm.commerce.tools.command.ToolsForwardViewCommandImpl"/>
          </forward>
          <forward className="com.ibm.commerce.struts.ECActionForward"
                  name="ReturnConfirmation" path="/tools/returns/ReturnConfirmationVAT.jsp">
                  <set-property property="resourceClassName" value="com.ibm.commerce.tools.command.ToolsForwardViewCommandImpl"/>
          </forward>
      </global-forwards>
      </struts-config>
      Busque el elemento <global-results> y actualícelo tal como se muestra a continuación:
      <package extends="struts-default" name="wcs-accelerator" namespace="/">
      <global-results>
      <result name="ReturnItemsPage">
      <param name="location">/tools/returns/ReturnItemsPageVAT.jsp</param>
      <param name="resourceClassName">com.ibm.commerce.tools.command.ToolsForwardViewCommandImpl</param>
      </result>
      <result name="ReturnConfirmation">
      <param name="location">/tools/returns/ReturnConfirmationVAT.jsp</param>
      <param name="resourceClassName">com.ibm.commerce.tools.command.ToolsForwardViewCommandImpl</param>
      </result>
      </global-results>
      </package>
  10. Después de registrar los mandatos SQL anteriores, reinicie el servidor para que entren en vigor.