You may wish to override the bean that creates the request to TaxCloud. When using the SOAP gateway, the bean is:
<bean id="blTaxCloudSoapRequestGenerator" class="com.broadleafcommerce.vendor.taxcloud.tax.gateway.TaxCloudRequestGeneratorImpl"/>
You may wish to extend this bean and override some of its protected methods to modify how the tax request to TaxCloud is generated.TaxCloud allows different calls to be made for different types of payment processing workflows. For example, TaxCloud allow you to send calls Authorized, Captured, or combine the two with AuthorizedWithCapture. For details about this, see TaxCloud.net for more information.
In addition, there are often reasons to map specific properties differently than Broadleaf does out of the box. For example, TaxCloud stores and hosts Customer Exemption Certificate. Broadleaf, by default, uses Customer's
TAX_EXEMPTION_CODE, and maps
Customer.getTaxExemptionCode() to the TaxCloud ExemptionCertifcate ID field. You can override this so that Tax Exemption Number is null.
Finally, you may wish to override how the taxes are applied to your orders. To override this, you must extend
TaxCloudTaxGatewayImpl and override the following Spring bean configuration in your merge file:
<bean id="blTaxCloudTaxGateway" class="com.broadleafcommerce.vendor.taxcloud.tax.gateway.TaxCloudTaxGatewayImpl"/>
You may specify your implementation in the class attribute value above. In this case you will override the
authorizeAndCaptureTax (Order order, TaxCloudModuleConfiguration config) method. This method iterates over the result value and creates TaxDetail objects and attaches them to the fulfillment groups and fulfillment group items as necessary. You may override how this works if the default functionality does not suit your needs.
For further information on TaxCloud; see their website at TaxCloud.