Applying Attribute Policy to Product and Materials
Attribute policy can be applied to products and materials when adding or updating them. Attribute policies are set up on the product and material level - i.e it is applied to the entire product or material and not to individual SKUs. All the SKUs belonging to these products or materials will inherit the same attribute policy.
Note: Learn More About 'How To Configure Attribute Policy'
Applying Attribute Policy - Checking for Dependency
When the current attribute has references in either Quote, Jobs, Procurement, or Fulfillment, the attribute policy can not be applied unless references are removed or fully diminished. Users can mark the product inactive to resolve the dependencies.
Applying Attribute Policy - To Non-Dependent Products
Active attribute policy can be applied to the product, and all SKUs belonging to that product inherit the same SKU keys to keep keys consistent among the SKUs. When it comes to applying attributes to a product, here is how Jacktrade manages:
- When no attribute policy is previously applied
This makes the product a simple product without item choices or options for the customer. In this case, no SKUs will have attributes configured. A product doesn’t need to have an attribute policy as Jacktrade supports simple configuration where no choices are present to configure a product for the customer (in Quotes, Jobs).
- When attribute policy is applied to non-dependent products
In this case, no prior references to Quote, Jobs, Procurement, and Fulfillment would be possible. So, the attributes simply become part of the belonging SKUs. The values of the attributes are written as NULL until the user changes them. The attribute policy is immediately applied to products with non-dependencies. It can overwrite an existing attribute policy keeping the values safe for keys that are not changing.
- When a new attribute policy is applied to a product with an existing attribute policy
When current attributes do not have any references in either Quote, Jobs, Procurement, and Fulfillment. The attribute policy simply overwrites all the keys and values for each SKU. By default, the value is written as NULL, and the user then has to enter the value. The product with new attributes is not selectable unless NULL is replaced with the actual value for the attribute. The existing keys (exact match) remain untouched along with their values.
- When attribute policy is applied to a product and marked disabled
An attribute policy cannot be disabled if it's applied to any of the products or materials. Manual removal of the mapped attribute policy is required in the product for complete removal.
- When attribute policy is applied to products with No SKU
In this case, any SKU added to the product will automatically inherit the attribute policy version attached to the Product.
- Missing Attributes Values
If any of the SKU’s attribute values are not filled by the user, then that item cannot be selected into Quotes or Jobs. The system marks this as NULL and does not show it in Quotes or Jobs UI for selection. NULL can also be set by the user as a value of an attribute. This is also true when the Attribute Policy is updated.
Updating Attribute Policy - To Non-Dependent Products
Attribute policies can be updated anytime in the settings. Existing products or materials will continue reflecting the previous version of the policy until it's re-applied to the existing products. For any products and materials added after the attribute policy is updated, it will get the updated version of the policy directly.
- When attribute policy is updated but not re-applied.
Attribute policy when changed has to be re-applied to existing products and materials to get the updates reflected. All the attributes and values stay for the old policy until the new version of the policy is re-applied. UI shows that the policy has been changed in the product.
- When the attribute policy is updated and re-applied.
While current attributes do not have references in either Quote, Jobs, Procurement, and Fulfillment. The attribute policy simply applies to overwriting all the keys and values for each SKU.
Note: The attribute policy needs to have at least one minimum key anywhere to save the policy.
Removing Entire Attribute Policy - To Non-Dependent Products
- When attribute policy is simply removed for Products with a Single SKU
While products do not have references in either Quote, Jobs, Procurement, and Fulfillment, the attribute policy can be removed from non-dependent products that have single SKUs. It simply removes all the attribute keys and values from that SKU. Post removing the policy from a product with a single SKU - the product is still orderable.
- When attribute policy is attempted to remove Products with Multiple SKUs
Removing policy from multiple SKUs is also allowed with non-dependent products. The product is not orderable for any of the SKUs as Quotes or Jobs can identify different variants of the product with products with multiple SKUs. All the keys and values are simply removed from the product.
Replacing Policy in Product
Alternatively, users can also change the attribute policy to a different policy. A normal change process (documented above) will take place.
Updating Attribute Policy - To Archived Quotes or Jobs
Not considered a dependency since don't allow users to update anything on archived quotes and jobs. It continues to reflect the old data only.