All of the items you mention are possible.
Broadleaf is a framework that is designed to be customized. Some of the items may be easier than others.
Block Pricing - Can be achieved in a number of ways.
- Use Product Bundles to group a set of products together
- Create a product option that is quantity based and sell your different "blocks" as SKUs
- Build a custom DynamicPricingService implementation
- Use Offers to customize the price based on quantity
- See BroadleafTaxService and SimpleTaxProvider. You can use or extend these as needed.
- For complex taxes (e.g. US for companies with multiple tax hubs), we recommend the 3rd party plugins like Avalara
Prices for Different Currencies
- Our demo sites show this using our Enterprise Price Lists components
- Alternatively, you can write your own DynamicPricingService implementation
Start / Stop Expiring Dates for Tax Changes
- By default, the way that the TaxService chooses a TaxProvider is by querying a ModuleConfigurationService
- ModuleConfigurations have active start and end dates
- All of the items mentioned can be achieved
- The 'free shipping" would be done via an "Offer"
- See "FulfillmentPricingService" for details on providing shipping costs to users
Business Customers vs Regular Customers
- Most customers choose to extend the out of box Broadleaf Customer (glance at the Extending Broadleaf Entities tutorial) to get an idea on how to do this.
Payment Methods by Shipping Country or Carrier
- Yes, you could definitely add this type of filter logic.