The quantity available field on
BLC_SKU as well as the
DecrementInventoryActivity have been added to the framework out of the box. If you have performed any of the steps from the 3.1.0 to 3.1.1 migration doc then you should undo them.
The relationship of Pages to their PageFields has been changed from a ManyToMany to a OneToMany, with the owning column on
blc_page_fld. This means that
blc_page_fld_map has gone away and will no longer be used. To update your data, you can at your own risk run the following query:
UPDATE blc_page_fld f SET page_id = (SELECT page_id FROM blc_page_fld_map m WHERE m.page_fld_id = f.page_fld_id)
In order to better internationalize the Broadleaf domain, there have been changes in the way
BLC_STATE are used.
BLC_STATE is deprecated in favor of
The CountrySubdivision entity is a more international friendly entity that define codes for identifying the principal subdivisions (e.g., provinces or states)
for a Country. A Country Subdivision can also have a category defined in
The Country Subdivision Category is meant to define the type of subdivision, for example: "State", "Province", "Municipality", "Borough", etc...
load_code_tables.sql script provided in the Heat Clinic DemoSite application gives a list of some of the most common and widely used subdivision categories by the ISO
In the past, Country and States were tied to an Address. However, this is not an ideal model if you would also like to restrict
the countries that you wish to ship to based on this entity. For example, let's say you only wish
to ship to the "US" and "Mexico". In the past, you would populate the
with only the "US" and "Mexico." However, you would need to make customizations if you allow your customers
to pay with a billing address in a country other than "US" or "Mexico" since an address is tied to a Country.
To overcome this, the tie between Countries and Addresses have been removed.
More details about the changes to Address and how it now uses the ISO Country model are in the sections below.
In summary, going forward: The
BLC_COUNTRY_SUB tables should only be used for filtering and look up purposes only and since the State entity is deprecated,
BLC_STATE should no longer be used.
The Address domain has been refactored to allow for better internationalization.
state_prov_region and the
country columns have been deprecated.
The foreign key for
country has also been dropped. The Country entity should
only be used for filtering and lookup purposes now (see section above). These columns will be replaced with
iso_country_alpha2- a reference to an ISOCountry (i.e. the ISO 3166-1 alpha-2 code for the country where this address resides) (e.g. US, GB, IN)
iso_country_sub- meant to signify the ISO 3166-2 code for the country subdivision (state/region/province) where this address resides. (e.g. US-TX, GB-LND, IN-DL)
sub_state_prov_reg- a friendly name indicating a countries subdivision, i.e. State, Province, Region etc.. (e.g. Texas, London, Delhi)
Broadleaf adds a new entity called ISOCountry
BLC_ISO_COUNTRY that represents the ISO 3166 standard published by the International Organization for Standardization (ISO),
and defines codes for the names of countries, dependent territories, and special areas of geographical interest.
It is recommended that you load this table with all the alpha-2 codes provided in the
DemoSite SQL script
These i18n enhancements also allow for better integration with Third Party Service Providers such as Digital Wallets and Payment Gateways.
When address information is managed outside of the system, this model aims to minimize data translation as most integrators conform to the ISO 3166-1 naming standard.
While most providers send back a standardized Country code, not all follow the same rules for Country subdivisions such as states, regions and provinces.
In this case, implementations should populate
sub_state_prov_reg (preferably both)
based on business requirements and available data.