Magento 2.0 Backward Incompatible Changes

This topic discusses the most important backward incompatible changes made after Magento 2.0.0 release in scope of 2.0 version.

Be aware that no @api code has been modified.

To see all backward incompatible changes follow:

For more information about backward compatibility, see Magento’s backward compatibility policy.

Framework changes

  • A convertConfigTimeToUtc() method is added to the lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface interface. To implement this interface, please implement the method.
  • A convertConfigTimeToUtc method is added to the lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.

Magento_CatalogRule module changes

DB schema changes

  • From the catalogrule table the following rows were deleted: sub_is_enable, sub_simple_action, sub_discount_amount.
  • From the catalogrule_product table the following rows were deleted: sub_simple_action, sub_discount_amount.

UI changes

  • The Subproduct discounts dropdown on a catalog price rule was deleted, including Apply and Discount Amount subfields.
Setup version 2.0.0 Setup version 2.0.1
OLD - Adding a new catalog price rule NEW - Adding a new catalog price rule

Flow changes

  • The functionality of adding a price rule to the subproduct was deleted.

Magento_Catalog module changes

Code changes

  • General changes
    • Reset button has been removed.
  • POST data structure changed
    • The parent category ID parent_id is now posted in the general field.
    • The category data from the general array is split to the specific arrays by a field set name.
setup_version version 2.0.3 setup_version version 2.0.4
    [
        'general' => [
            'name' => 'Category',
            'is_enabled' => 1,
            'layout_update' => '<XML CODE>',
            'enabled' => 1
        ],
        ...
    ]
    
    [
        'general' => [
            'name' => 'Category',
            'is_enabled' => 1,
            'parent_id' => 3
        ],
        'custom_layout' => [
            'layout_update' => '<XML CODE>',
            'enabled' => 1
        ],
        ...
    ]
    

You can find a setup_version parameter in the <your_Magento_module_dir>/etc/module.xml file.

  • The Google Optimizer POST data moved to a specific array.
  • On/Off fields
    • The input type has been changed from select to switcher.
    • A web page sends POST message with attribute value = "true" if the field is checked or value = "false" if it is not.
    • A server converts value attribute to the PHP true/false boolean type value.
setup_version version 2.0.3 setup_version version 2.0.4
Select option value (int, string) String:{'true'|'false'}
  • Check boxes and radio buttons work as on/off fields.
  • Category products grid
    • Rendered by a UI component as a standalone block
    • Initialized using the magento-init event
  • To join EAV attributes use linkField.
Magento\Framework\Model\Entity\MetadataPool::getMetadata(Magento\Catalog\Api\Data\CategoryInterface) -> getLinkField()
  • To set a relation with another entities such as category_product_entity use identifierField.
Magento\Framework\Model\Entity\MetadataPool::getMetadata(Magento\Catalog\Api\Data\CategoryInterface) -> getIdentifierField()

Form initialization changes

Flow changes

When Products -> Categories menu item in the Magento Admin is chosen, the first root category is selected for editing by default now. You can create a new category or a root category manually only. Use the corresponding button Add Root Category or Add Subcategory.