The upgrade instructions are available at Oro documentation website.
The current file describes significant changes in the code that may affect the upgrade of your customizations.
- 6.1.0
- 6.0.0
- 5.1.0
- 5.0.0
- 4.2.3
- 4.2.2
- 4.2.0
- 4.1.0
- 4.0.0
- 3.1.2
- 3.1.0
- 3.0.0
- 1.6.0
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.0
- Added new
savedForLaterListrelation to\Oro\Bundle\ShoppingListBundle\Entity\LineItem. - Added new
savedForLaterLineItemsrelation to\Oro\Bundle\ShoppingListBundle\Entity\ShoppingList. - Added new
oro_shopping_list_line_item_only_one_listdatabase constraint ensures that eithershopping_list_idorsaved_for_later_list_idis set, but not both. - Added
savedForLaterListfield toshoppinglistitemsstorefront API resource. - Added read-only
savedForLaterItemsfield toshoppinglistsstorefront API resource. - Added "Saved For Later" functionality to the shopping list page.
- Added
\Oro\Bundle\ShoppingListBundle\Provider\InvalidShoppingListLineItemsProviderto identify invalid shopping list line items and sort them by severity. - Added new datagrids:
shopping-list-saved-for-later-line-items-grid;frontend-customer-user-shopping-list-saved-for-later-grid;frontend-customer-user-shopping-list-saved-for-later-edit-grid;frontend-customer-user-shopping-list-invalid-line-items-grid.
- Added
\Oro\Bundle\ShoppingListBundle\Validator\Constraints\OnlyOneRequiredListvalidation constraint to ensure that eithersavedForLaterListorshoppingListis set, but not both. - Added new
datagrid_line_items_data_for_checkoutanddatagrid_line_items_data_for_rfqvalidation groups. - Added
saved_for_laterfeature toggle with corresponding system configuration option to gate the "Saved for Later" UI. - Added checkout and RFQ shopping list validation group resolvers (
ShoppingListToCheckoutValidationGroupResolver,ShoppingListToRequestQuoteValidationGroupResolver) tagged withoro_shopping_list.validation_groupand priority support.
- Added new
oro_inventory_availability_codeandoro_inventory_availability_labeltwig functions.
- Added a new
\Oro\Bundle\CommerceBundle\ContentWidget\ScorecardContentWidgetTypecontent widget. - Added new
users,shopping-lists,open-rfqs,total-orderscontent widgets for default data. - Added new theme configuration options for
customer_user_dashboardsection:scorecard_widget;scorecard_widget_2;scorecard_widget_3;scorecard_widget_4;
- Added new system configuration settings for global/organization/website levels:
oro_commerce.company_name;oro_commerce.business_address;oro_commerce.phone_number;oro_commerce.contact_email;oro_commerce.website;oro_commerce.tax_id;
- Added new system variables for email templates:
sellerCompanyName;sellerBusinessAddress;sellerPhoneNumber;sellerContactEmail;sellerWebsiteURL;sellerTaxID;
- Added
orocms/js/app/views/content-widget-collection-variantview component
- Added
\Oro\Bundle\OrderBundle\Provider\OrderEntityNameProviderso that an order entity name can now be retrieved from\Oro\Bundle\EntityBundle\Provider\EntityNameResolver. - Added order PDF generation functionality:
- Added
\Oro\Bundle\OrderBundle\Entity\Order::$pdfDocumentsto-many relation that stores order PDF documents; - Added
\Oro\Bundle\OrderBundle\PdfDocument\Manager\OrderPdfDocumentManageras the main service to manage order PDF documents; - Added
\Oro\Bundle\OrderBundle\PdfDocument\UrlGenerator\OrderPdfDocumentUrlGeneratoras the main service to generate URLs for order PDF documents; - Added
\Oro\Bundle\OrderBundle\Twig\OrderPdfDocumentUrlExtensiontwig extension to provide the ability to generate URLs for order PDF documents in twig templates; - Added
\Oro\Bundle\OrderBundle\Provider\EmailTemplate\OrderPdfFileVariableProcessorand\Oro\Bundle\OrderBundle\Provider\EmailTemplate\OrderPdfFileVariableProviderto enable the use of order PDF documents in email templates;
- Added
- Added
paymentActionoption to the\Oro\Bundle\PaymentBundle\Action\PurchaseActionallowing to pass the action name to perform, e.g. purchase/charge/authorize. - Added
\Oro\Bundle\PaymentBundle\Entity\PaymentTransaction::$webhookRequestLogsfield to store webhook request logs. - Added
\Oro\Bundle\PaymentBundle\Entity\RequestLogsAwareInterfaceto mark entities that can store transaction request and response logs. - Added
\Oro\Bundle\PaymentBundle\Method\Provider\PaymentMethodGroupAwareProviderthat provides a filtered list of payment methods that are applicable for a specific payment method group. - Added the ability to refund
purchaseandchargepayment transactions inoro_payment_transaction_refund. - Added
\Oro\Bundle\PaymentBundle\PaymentStatus\PaymentStatusesclass with constants for each payment status available out-of-the-box. - Added
\Oro\Bundle\PaymentBundle\PaymentStatus\Calculator\PaymentStatusCalculatorand implementations for each payment status. - Added
\Oro\Bundle\PaymentBundle\Event\PaymentStatusUpdatedEventdispatched in\Oro\Bundle\PaymentBundle\Manager\PaymentStatusManagerafter payment status is changed. - Added
\Oro\Bundle\PaymentBundle\Condition\PaymentTransactionFullyRefundedcondition to check if the payment transaction is fully refunded. - Added
\Oro\Bundle\PaymentBundle\Action\PaymentTransactionPartialRefundActionto perform a partial refund for a payment transaction. - Added
\Oro\Bundle\PaymentBundle\Provider\PaymentTransactionAmountAvailableToRefundProviderto calculate the amount available to refund for a payment transaction.
- Added
\Oro\Bundle\PricingBundle\Layout\DataProvider\TotalsProviderlayout data provider.
- Added the support for
data-clear-ifanddata-clear-elementattributes in thedependent-field-component.js.
- Added
\Oro\Bundle\ProductBundle\Controller\Frontend\QuickAddValidationControllerfor real-time validation of quick order form rows. - Added
\Oro\Bundle\ProductBundle\QuickAdd\QuickAddCollectionValidatorto centralize validation logic for quick add collections. - Added component-specific validation groups for quick add processors:
oro_shopping_list_to_checkout_quick_add_processor;oro_rfp_quick_add_processor.
- Added
\Oro\Bundle\FormBundle\Resources\public\templates\warning-template.htmlfor displaying validation warnings in forms.
- Updated product availability display statuses according to new design:
- showing "Coming Soon" status for upcoming products.
- showing "Low Inventory" status for in-stock products with low inventory.
- if both upcoming and low inventory, show only "Coming Soon".
- Changed logic in
\Oro\Bundle\CheckoutBundle\Workflow\ActionGroup\CheckoutActions- instead of deleting the shopping list after finishing checkout, it now clears it if there are any "Saved for later" line items.
- Move import
FilteredProductVariantsPlugin,ShoppingListRefreshPlugin,HighlightRelatedRowsPluginfromoroshoppinglist/js/datagrid/builder/shoppinglist-flat-data-builderto separate datagrid builderoroshoppinglist/js/datagrid/builder/shoppinglist-plugins-builder - Updated
oro_shopping_list_line_item_uidxunique index in\Oro\Bundle\ShoppingListBundle\Entity\LineItem- now usesNULLS NOT DISTINCTand the following fields:product_id;shopping_list_id;saved_for_later_list_id;unit_code;checksum.
- Updated access denial logic in
\Oro\Bundle\ShoppingListBundle\Acl\AccessRule\LineItemAssociationAwareAccessRule— now considers both shopping list and saved-for-later list relations. - Updated invalid line items handling on the shopping list page for Checkout and RFQ:
- prevents starting Checkout or RFQ if there are unresolved errors;
- errors are shown first, warnings after errors;
- clicking
CheckoutorRFQbuttons for invalid shopping list now opens an "Invalid Line Items" modal.
- Updated
Oro\Bundle\CommerceBundle\Layout\DataProvider\PurchaseVolumeChartDataProviderby:- replacing the
Oro\Bundle\CurrencyBundle\Provider\DefaultCurrencyProviderInterfaceconstruct argument withOro\Bundle\PricingBundle\Manager\UserCurrencyManager. - removing the
Oro\Bundle\SecurityBundle\Authentication\TokenAccessorInterfaceconstruct argument.
- replacing the
- Changed the
oro_cms_tabbed_content_item_collection_rowblock markup. Added collapsable markup. - Changed the
oro_cms_tabbed_content_collection_item_prototypemacro
- Changed
\Oro\Bundle\WebCatalogBundle\Provider\RequestWebContentScopeProviderto initialize scope for storefront API requests.
- Updated
Oro\Bundle\OrderBundle\Entity\Repository\OrderRepositoryby removing the required$customerIdargument from thegetOrdersPurchaseVolumeandgetOrdersPurchaseVolumeQueryBuildermethods. - Changed the order total amount label appearance on the order view back-office page.
- Implemented
\Oro\Bundle\PaymentBundle\Entity\RequestLogsAwareInterfacein\Oro\Bundle\PaymentBundle\Entity\PaymentTransaction. - Renamed the
$.paymentMethodActionto$.authorizePaymentMethodActionattribute inoro_payment_transaction_capture. - Renamed the
$.paymentMethodActionto$.authorizePaymentMethodActionattribute inoro_payment_transaction_cancel. - Renamed the
$.cancelActionto$.cancelPaymentMethodActionattribute inoro_payment_transaction_cancel. - Renamed the
$.paymentMethodActionto$.refundPaymentMethodActionattribute inoro_payment_transaction_refund. - Renamed the
$.refundActionto$.refundPaymentMethodActionattribute inoro_payment_transaction_refund. - Fixed the broken styling in the dialog of
oro_payment_transaction_cancel. - Updated
\Oro\Bundle\PaymentBundle\Manager\PaymentStatusManagerwith new methods:- Added: getPaymentStatus, setPaymentStatus, updatePaymentStatus
- Deleted: updateStatus, updateStatusForEntity, getPaymentStatusForEntity
- Updated
\Oro\Bundle\ProductBundle\Model\QuickAddRowto implementProductUnitHolderInterfacefor enhanced validation compatibility. - Updated
\Oro\Bundle\ProductBundle\Form\Type\QuickAddTypeto make component field required for validation. - Updated
\Oro\Bundle\ProductBundle\Model\Builder\QuickAddRowCollectionBuilderto round quantities according to product unit precision.
- Added new validation groups for quick add processors in
validation.yml:oro_shopping_list_to_checkout_quick_add_processor;oro_rfp_quick_add_processor.
- Added new validation groups for quick add processors in
validation.yml:oro_shopping_list_to_checkout_quick_add_processor.
- Removed
\Oro\Bundle\OrderBundle\Provider\OrderPaymentStatusProvider, added\Oro\Bundle\OrderBundle\EventListener\PaymentStatusUpdatedListenerinstead.
- Removed
\Oro\Bundle\PaymentBundle\Provider\PaymentStatusProviderand interface. Added\Oro\Bundle\PaymentBundle\PaymentStatus\Calculator\PaymentStatusCalculatorand implementations for each payment status instead.
- Removed onFocusOutToFocusable and toggleFocusableClass methods in
navigation-menu-view.js
- Moved logic for address copying from
\Oro\Bundle\OrderBundle\Manager\AbstractAddressManagerto\Oro\Bundle\CustomerBundle\Utils\AddressCopier. - Made
\Oro\Bundle\OrderBundle\Provider\OrderAddressProviderresettable. - Changed logic from readonly to disabled fields when no custom address is selected in address book address component.
- Updated
Oro\Bundle\OrderBundle\Entity\Repository\OrderRepositoryby removing the required$customerIdargument from thegetOrdersPurchaseVolumeandgetOrdersPurchaseVolumeQueryBuildermethods.
- CheckoutLineItem entity was made extendable
- Changed logic of PreloadCheckoutOnStartEventListener and PreloadCheckoutOnStartFromShoppingListEventListener to allow to configure a list of preloaded entities
- UpdateShippingCost was introduced as a listener, calls were removed from form_init section
- Migrated the
b2b_flow_checkout_single_page_new_billing_addressoperation body to the class\Oro\Bundle\CheckoutBundle\Workflow\B2bFlowCheckoutSinglePage\Operation\NewBillingAddress. - Migrated the
b2b_flow_checkout_single_page_new_shipping_addressoperation body to the class\Oro\Bundle\CheckoutBundle\Workflow\B2bFlowCheckoutSinglePage\Operation\NewShippingAddress. - Migrated the
oro_checkout_frontend_start_from_orderoperation body to the class\Oro\Bundle\CheckoutBundle\Workflow\Operation\StartFromOrder. - Changed logic of
\Oro\Bundle\CheckoutBundle\EventListener\LoginOnCheckoutListenerthat executes restart the for guest checkout after user login. - Decoupled the following form types to separate storefront and backoffice:
\Oro\Bundle\CheckoutBundle\Form\Type\CheckoutAddressTypeand\Oro\Bundle\OrderBundle\Form\Type\OrderAddressType\Oro\Bundle\CheckoutBundle\Form\Type\CheckoutAddressSelectTypeand\Oro\Bundle\OrderBundle\Form\Type\OrderAddressSelectType
- Fixed billing and shipping address duplicating on single-page checkout.
- Added support for
data-transition-nameattributes on blocks that should be updated during checkout page transitions.
- Start transitions and used action .groups logic was moved from YAML definition to PHP services
- Reworked start transitions to not change step several times, now step is resolved and set only once
- Used conditional
step_toto resolve destination step for not logged in customer users - Disallowed transit workflow or change step during form_init, pre-action, pre-conditions and conditions executions
- Reworked reset checkout on shopping list item changes, now workflow item is moved back by default start transition instead of remove/create/start, removed not needed start from shopping list action group call during a restart.
- Added transitWithoutChecks to WorkflowManager to execute transition that is not allowed for a step (used by the restart to execute
__start__transition to restart workflow) - If guest returns to checkout from source entity he must be redirected to enter_credentials_step is now handled by the ReturnGuestToEnterCredentialsStep workflow event listener. On workflow start guest will be transitioned to the enter_credentials_step automatically by the workflow and conditional_steps_to, ReturnGuestToEnterCredentialsStep will be skipped in this case
- Ad-hocked problem of stub workflow item created during double-start. 1 * during start from shopping list info from the actual workflowItem is merged into the stub workflowItem by the transition. 2 - to simplify listeners ActualizeWorkflowItem listener was added which replaces workflowItem in event with actual one, this will allow correct event processing of completed and finish events. !Note that start, leave, enter, entered and transition are still operate the stub and workflowItem may be in incomplete or incorrect state there!
- Consents checking was moved to VerifyCustomerConsentsListener
- Removed the stop_propagation hack from checkouts (CheckoutWorkflowHelper)
- Extracted checkout request transition processing and step resolving to listeners
- migrated all workflow array and json_array fields to JSONb type for data uniformity
- added workflow metadata which may be used to store data specific for some workflow and accessible by listeners, metadata was added as a separate column to workflow definition
- added next metadata for checkout
- is_checkout_workflow
- is_single_page_checkout
- guest_checkout
- return_to_login_transition * used by ReturnGuestToEnterCredentialsStep
- checkout_state_config * used by CheckoutStateListener
- enable_state_protection * enables checkout state protection
- additionally_update_state_after * updates state after listed transitions
- protect_transitions * if defined only listed transitions are protected
Previously known as GOD Object
- Checkout request processing was removed from CheckoutWorkflowHelper and moved to separate oro_checkout.request event listeners
- Extracted CheckLineItemsCount as oro_checkout.request event listener
- Extracted InvalidateCheckoutLineItemsGrouping as oro_checkout.request event listener
- Checkout request handling moved to ProcessWorkflowRequestEventListener
- Introduced checkout request handlers, tagged with oro_checkout.request_handler
- CheckoutGetRequestHandler extracted from CheckoutWorkflowHelper
- CheckoutPostRequestHandler extracted from CheckoutWorkflowHelper
- ForgotPasswordHandler and CustomerRegistrationHandler are isolated in the CustomerBundle, dependency removed from CheckoutWorkflowHelper
- Refactored PaymentMethodConfigType to remove the unneeded $methodProvider dependency.
- Changed entity config fallback logic - substituted system config fallback on theme configuration fallback as default.
- Filtering for the
inventory statusproduct attribute was enabled. - Add theme options for product image zoom. Ability to change zoom type
window,lens,inner. Selectdisabledzoom type for disable zoom on product images.
- Moved
disableFiltermethod fromoro_promotion.handler.frontend_coupon_handlerservice tooro_promotion.frontend_applied_coupon_managerservice.
- Migrated the
oro_sale_frontend_quote_submit_to_orderoperation body to the class\Oro\Bundle\SaleBundle\Workflow\Operation\QuoteSubmitToOrder. - Migrated the
oro_sale_frontend_guest_quote_submit_to_orderoperation body to the class\Oro\Bundle\SaleBundle\Workflow\Operation\GuestQuoteSubmitToOrder. - The "Add Offer" button has been hidden for line items containing kit products on the quote page. This restriction is implemented because such type line items can have only a single offer.
- The "Add Offer" button has been hidden for line items containing kit products on the RFQ storefront, back-office, and converted RFQ to quote pages. This restriction is implemented because such type line items can have only a single offer.
- Removed
\Oro\Bundle\RFPBundle\EventListener\RFPDatagridColumnListener, use\Oro\Bundle\WorkflowBundle\Datagrid\HideWorkflowStepColumnListenerinstead.
- Changed the type of
oro_web_catalog.empty_search_result_pagesystem config setting fromarraytoscalarto get rid of serialized objects inoro_config_valuetable.
- Removed
\Oro\Bundle\CMSBundle\Acl\Voter\ContentBlockVoter, use\Oro\Bundle\ThemeBundle\Acl\Voter\ThemeConfigurationDependencyDeleteVoterinstead. - Added supports setting a content widget in the theme configuration option using the
themeConfigOptionkey in the\Oro\Bundle\CMSBundle\Migrations\Data\AbstractLoadContentWidgetDatafixture. - Allowed to use
widgetandwidget_icontwig functions on storefront.
- Updated
Oro\Bundle\CommerceBundle\Layout\DataProvider\PurchaseVolumeChartDataProviderby:- replacing the
Oro\Bundle\CurrencyBundle\Provider\DefaultCurrencyProviderInterfaceconstruct argument withOro\Bundle\PricingBundle\Manager\UserCurrencyManager. - removing the
Oro\Bundle\SecurityBundle\Authentication\TokenAccessorInterfaceconstruct argument.
- replacing the
- Added the following system config options to enable/disable address validation scenario on quote for shipping address on backoffice:
oro_sale.validate_shipping_addresses__backoffice_quote_page
- Added validatedAt field to
\Oro\Bundle\SaleBundle\Entity\QuoteAddressentity. - Added validatedAt field to
\Oro\Bundle\SaleBundle\Form\Type\QuoteAddressTypeform type. - Added
\Oro\Bundle\SaleBundle\Form\Type\QuoteAddressSelectTypethat should be used for address book address component for quote form on backoffice. - Added
oroquote/js/app/views/quote-address-validated-at-viewthat intercepts form submit and address book address change to validate address via Address Validation feature on backoffice quote create and edit pages.
- Added the following system config options to enable/disable address validation scenarios on checkout for billing and shipping addresses on storefront:
oro_checkout.validate_shipping_addresses__checkoutoro_checkout.validate_billing_addresses__checkout
- Added
\Oro\Bundle\CheckoutBundle\Workflow\B2bFlowCheckout\Operation\NewBillingAddressthat contains full logic for the action operation 'b2b_flow_checkout_new_billing_address'. - Added
\Oro\Bundle\CheckoutBundle\Workflow\B2bFlowCheckout\Operation\NewShippingAddressthat contains full logic for the action operation 'b2b_flow_checkout_new_shipping_address'. - Added
validatedAtfield to\Oro\Bundle\CheckoutBundle\Form\Type\CheckoutAddressTypeform type. - Added the following js scripts on multi-step and single-page checkout to intercepts submit and address change to validate address via Address Validation feature:
orocheckout/js/app/views/checkout-address-validation-dialog-widgetorocheckout/js/app/views/checkout-multi-step-address-validated-at-vieworocheckout/js/app/views/checkout-multi-step-address-validation-vieworocheckout/js/app/views/checkout-multi-step-address-validation-vieworocheckout/js/app/views/checkout-base-new-address-validated-at-vieworocheckout/js/app/views/checkout-multi-step-new-address-validated-at-vieworocheckout/js/app/views/checkout-single-page-address-validation-vieworocheckout/js/app/views/checkout-single-page-new-address-validated-at-view
- Added a new backend
ordersubtotalsAPI resource representing calculated subtotals for a specific order. - Added an
orderSubtotalsrelation for the backendordersAPI resource. - Enabled an
enable_validationflag for the backendordersAPI resource. - Relation between Order and OrderLineItem entities changed to ManyToMany. Reports and segments that use
orderrelation of OrderLineItem entity should be manually updated after update. - Relation between Order and OrderShippingTracking entities changed to ManyToMany. Reports and segments that use
orderrelation of OrderShippingTracking entity should be manually updated after update. - Added the following system config options to enable/disable address validation scenarios for order billing and shipping addresses on backoffice:
oro_order.validate_shipping_addresses__backoffice_order_pageoro_order.validate_billing_addresses__backoffice_order_page
- Added validatedAt field to
\Oro\Bundle\OrderBundle\Entity\OrderAddressentity. - Added validatedAt field to
\Oro\Bundle\OrderBundle\Form\Type\OrderAddressTypeform type. - Added
oroorder/js/app/views/order-address-validated-at-viewthat intercepts form submit and address book address change to validate address via Address Validation feature on backoffice order create and edit pages.
- Added PaymentMethodGroupAwareInterface to differentiate payment methods and views into groups
- Added ability to filter payment methods by a payment group to CompositePaymentMethodProvider, CompositePaymentMethodViewProvider via setPaymentMethodGroup method
- Added ability to filter payment methods by a payment group in PaymentMethodsConfigsRuleType via "payment_method_group" option
- Added ability to pass payment method instance to payment method actions: purchase, validate, capture, cancel, refund
- Added a new frontend
inventory-switcherfilter. - Added a default variant field for the Product entity. This allows to choose a default variant from the product variants for a configurable product. This variant will be selected by default on the product view page. It can be set on product create and edit pages as well as via API or product import.
- Added a new backend
customerpricesAPI resource. - Added a new backend
productkitpricesAPI resource.
- Added the ability to show users in the search autocomplete field on the storefront suggestions
- Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Entity\Suggestionentity class; - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Entity\ProductSuggestionentity class;
- Added
- Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Async\Generation\GenerateSuggestionsProcessorfor processing MQ messages with or without specified product ids to send messages with filtered product ids grouped by organization to the next processor(see below). - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Async\Generation\GenerateSuggestionPhrasesProcessorfor processing MQ sent messages by processor(see above) to generate suggestions for each localization based on product name and sku to persist them in the next processor(see below). - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Async\Generation\PersistSuggestionPhrasesProcessorfor processing MQ sent messages by processor(see above) to persist suggestions to the database and send inserted ids for the next processor (see below). - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Async\Generation\PersistSuggestionProductRelationProcessorfor processing MQ sent messages by processor(see above) to persist relation between suggestion and product to the database. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Async\Deletion\DeleteIrrelevantSuggestionsProcessorfor processing MQ messages to find suggestions with irrelevant product suggestions and send their ids to the next processor(see below) and send message to DeleteOrphanSuggestionsProcessor processor. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Async\Deletion\DeleteIrrelevantProductSuggestionsChunkfor processing MQ messages to remove product suggestions by their ids from the database. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Async\Deletion\DeleteOrphanSuggestionsProcessorfor processing MQ messages to find suggestions with no products and send their ids to the next processor(see below). - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Async\Deletion\DeleteOrphanSuggestionsChunkProcessorfor processing MQ messages to remove suggestions by their ids from the database. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Event\SuggestionPersistEventdispatching inoro_website_search_suggestion.suggestion_persisterservice. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Event\ProductSuggestionPersistEventdispatching inoro_website_search_suggestion.product_suggestion_persisterservice. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Event\SuggestionDeletedEventdispatching inoro_website_search_suggestion.async.delete_orphan_suggestions_chunk_processorprocessor. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Event\ProductSuggestionDeletedEventdispatching inoro_website_search_suggestion.async.delete_irrelevant_product_suggestions_chunk_processorprocessor. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\EventListener\SuggestionIndexationListenerthat handles Suggestion persisting and deleting events to start search reindex operation for search engine. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\EventListener\Doctrine\CreateProductSuggestionListenerthat handles Product create and update events to collect product ids and send them in message to processor \Oro\Bundle\WebsiteSearchSuggestionBundle\Async\Generation\GenerateSuggestionsProcessor (details see above). - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\EventListener\WebsiteSearch\SuggestionIndexationListenertake into account suggestion fields for the search engine for the storefront. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\EventListener\WebsiteSearch\ProductSuggestionRestrictIndexListenerfilter suggestions by organization and localization for every website for storefront search engine. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\EventListener\WebsiteSearchSuggestionFeatureToggleListenerlisten to feature status changes and send messages to MQ for suggestions generation when feature has been enabled.
- Added a new parameter
batchSizeforOro\Bundle\WebsiteSearchBundle\Event\ReindexationRequestEvent.
- Added new shopping list events:
- Added
\Oro\Bundle\ShoppingListBundle\Event\ShoppingListPreMoveEventdispatching inoro_shopping_list.manager.guest_shopping_list_migrationservice; - Added
\Oro\Bundle\ShoppingListBundle\Event\ShoppingListPostMoveEventdispatching inoro_shopping_list.manager.guest_shopping_list_migrationservice; - Added
\Oro\Bundle\ShoppingListBundle\Event\ShoppingListPreMergeEventdispatching inoro_shopping_list.manager.guest_shopping_list_migrationservice; - Added
\Oro\Bundle\ShoppingListBundle\Event\ShoppingListPostMergeEventdispatching inoro_shopping_list.manager.guest_shopping_list_migrationservice.
- Added
- Added
\Oro\Bundle\ShoppingListBundle\Datagrid\Provider\ShoppingListActionPermissionProviderdatagrid action configuration provider that determines which actions (Edit/View) are available for a shopping list.
- Added a new
content_widget_selectortheme configuration option type. - Added a new
content_widgetlayout block type.
- Added a new
\Oro\Bundle\CommerceBundle\ContentWidget\CustomerDashboardDatagridContentWidgetTypecontent widget. - Added a new
customer-dashboard-promotional-contentcontent block for demo data. - Added new
my-latest-orders,open-quotes,my-checkouts,latest-rfq,my-shopping-listscontent widgets for default data. - Added new theme configuration options for
customer_user_dashboardsection:show_dashboard_quick_access_menu;show_purchase_volume_chart;content_widget;content_widget_2;content_widget_3;content_widget_4;content_widget_5;content_widget_6;recommended_products;recommended_products_2;promotional_content_block;promotional_content_block_2.
- Added a new
\Oro\Bundle\CommerceBundle\ContentWidget\ScorecardContentWidgetTypecontent widget. - Added new
users,shopping-lists,open-rfqs,total-orderscontent widgets for default data. - Added new theme configuration options for
customer_user_dashboardsection:scorecard_widget;scorecard_widget_2;scorecard_widget_3;scorecard_widget_4;
- Added new system configuration settings for global/organization/website levels:
oro_commerce.company_name;oro_commerce.business_address;oro_commerce.phone_number;oro_commerce.contact_email;oro_commerce.website;oro_commerce.tax_id;
- Added new system variables for email templates:
sellerCompanyName;sellerBusinessAddress;sellerPhoneNumber;sellerContactEmail;sellerWebsiteURL;sellerTaxID;
- Automatically removes the last breadcrumb on all pages.
- Removes a single breadcrumb if it is the only one in the list.
- Automatically removes the last breadcrumb on all pages.
- Removes a single breadcrumb if it is the only one in the list.
- Removed
oro_sale_accept_quoteas it is not used anywhere.
- Removed
checkout_transition_submitblock type
- Moved payment transaction operations and related translation keys from OrderBundle to PaymentBundle, added them back by extending them from PaymentBundle
- Moved payment transactions permission definitions and related translation keys to PaymentBundle, extended them to add Order entity as applicable
- Removed color from total label on order view page
- removed unused config-hide-fields-component.js
- Removed
oroproduct/js/app/views/sidebar-filters/filter-extra-hint-view - Removed page_template values from
\Oro\Bundle\ProductBundle\Resources\views\layouts\default\config\page_templates.yml. - Removed
oro_product.product_details_display_price_tiers_assystem configuration option.
- Removed
\Oro\Bundle\ShoppingListBundle\EventListener\ShoppingListLimitListener
- Added the ability to start and finish checkout with product kit line items:
- Added
\Oro\Bundle\CheckoutBundle\Entity\CheckoutProductKitItemLineItementity class; - added
\Oro\Bundle\CheckoutBundle\Entity\CheckoutLineItem::$kitItemLineItemsassociation and\Oro\Bundle\CheckoutBundle\Entity\CheckoutLineItem::$checksum.
- Added
- Added
\Oro\Bundle\CheckoutBundle\EventListener\ValidateCheckoutOnStartEventListener,\Oro\Bundle\CheckoutBundle\EventListener\ValidateCheckoutPreOrderCreateEventListener,\Oro\Bundle\CheckoutBundle\EventListener\ValidateCheckoutBeforeOrderCreateEventListenercheckout event listeners as the main points to control whether it is valid to start or finish a checkout instead of the old listeners (see the details in section "Removed"). - Added thorough validation constraints for
\Oro\Bundle\CheckoutBundle\Entity\Checkout,\Oro\Bundle\CheckoutBundle\Entity\CheckoutLineItem,\Oro\Bundle\CheckoutBundle\Entity\CheckoutProductKitItemLineItemthat are checked in the listeners mentioned above. - Added constraint validator decorator
\Oro\Bundle\CheckoutBundle\Validator\Constraints\CheckoutAwareValidatorDecoratorproviding the ability to restrict the decorated validator of a checkout or checkout line item by certain checkout steps. - The
Oro\Bundle\CheckoutBundle\Entity\Checkout::$lineItemGroupShippingDatawas added to provide the ability to configure one shipping charge for all the items by the seller.
- Added the ability to contain product kit line items for
\Oro\Bundle\OrderBundle\Entity\Orderentity class:- Added
\Oro\Bundle\OrderBundle\Entity\OrderProductKitItemLineItementity class; - added
\Oro\Bundle\OrderBundle\Entity\OrderLineItem::$kitItemLineItemsassociation and\Oro\Bundle\OrderBundle\Entity\OrderLineItem::$checksum.
- Added
- Added
\Oro\Bundle\OrderBundle\Entity\OrderProductKitItemLineItemto backoffice and storefront API. - Added
\Oro\Bundle\OrderBundle\Entity\OrderHolderInterfaceto represent order holder classes. - Added the
readonlyattribute for the price field of the product kit line item in the order form. - Added new price calculation logic for product kit line item for the
orderlineitemsandorderproductkititemlineitemsAPI backend resources.
- Improved the mechanism of getting product prices. See more in documentation.
- Introduced the new mechanism of getting product line item prices, including product kit line item prices. See more in documentation.
- Added
\Oro\Bundle\PricingBundle\Model\ProductPriceCriteriaFactoryas the main entry point for creating\Oro\Bundle\PricingBundle\Model\ProductPriceCriteria. Eliminated all occurrences of manual creation of product price criteria with corresponding BC fallbacks. - Added
\Oro\Bundle\PricingBundle\Provider\MatchedProductPriceProviderInterfaceimplemented in\Oro\Bundle\PricingBundle\Provider\ProductPriceProvider::getMatchedProductPricesto get a collection of\Oro\Bundle\PricingBundle\Model\ProductPriceInterfaceproduct prices. - Added
\Oro\Bundle\PricingBundle\ProductKit\ProductPriceCriteria\ProductKitPriceCriteriaand\Oro\Bundle\PricingBundle\ProductKit\ProductPriceCriteria\ProductKitItemPriceCriteriaproduct price criteria models for passing to the product price provider. - Added
\Oro\Bundle\PricingBundle\ProductKit\ProductPrice\ProductKitPriceDTOand\Oro\Bundle\PricingBundle\ProductKit\ProductPrice\ProductKitItemPriceDTOas the DTO representing a product kit price. - Added
\Oro\Bundle\PricingBundle\Provider\PriceByMatchingCriteria\ProductPriceByMatchingCriteriaProvideras the provider responsible for getting a product price matching the specified product price criteria. Made use of it in\Oro\Bundle\PricingBundle\Provider\ProductPriceProvider. - Added models representing product line item prices:
\Oro\Bundle\PricingBundle\Model\ProductLineItemPrice\ProductLineItemPrice,\Oro\Bundle\PricingBundle\ProductKit\ProductLineItemPrice\ProductKitLineItemPrice,\Oro\Bundle\PricingBundle\ProductKit\ProductLineItemPrice\ProductKitItemLineItemPrice. - Added
\Oro\Bundle\PricingBundle\Provider\ProductLineItemPriceProvideras the main entry point for getting product line item prices.
- Added
\Oro\Bundle\ProductBundle\Event\DatagridKitItemLineItemsDataEventas the event for collecting product kit item line items data for the product line items storefront datagrids. - Added
\Oro\Bundle\ProductBundle\Filter\ComposedSkuStringFilterfor SKU filter on the product line items storefront datagrids to take into account product kit item line items SKUs during filtration. - Added
\Oro\Bundle\ProductBundle\ProductKit\EventListener\ProductStatusListenerthat switches status and inventory status of a product kit depending on its kit item products. - Added
\Oro\Bundle\ProductBundle\ProductKit\EventListener\SearchProductKitListenerthat schedule index operation for the product kit for the back-office. - Added
\Oro\Bundle\ProductBundle\ProductKit\EventListener\WebsiteSearchReindexProductKitListenerthat schedule index operation for the product kit for the storefront. - Added
\Oro\Bundle\ProductBundle\EventListener\WebsiteSearchProductPreloadingIndexerListenerthat preload products with required data at the start of website reindex operation. - Disabled the ability to add a product kit to Quick Order Form via
\Oro\Bundle\ProductBundle\Autocomplete\ProductVisibilityLimitedSearchHandler::setNotAllowedProductTypes. - The
oro_product.popup_gallery_on_product_viewoption from the system configuration is not used anymore. - Added new options fields to
product_segmentcontent widget in\Oro\Bundle\ProductBundle\Form\Type\ProductSegmentContentWidgetSettingsType. - Restored the is_optimized field in quick add forms (for compatibility to older layout themes), but the optimized version is forced. Consider refactoring your templates which rely on this field.
- Added
\Oro\Bundle\ProductBundle\Form\Type\ProductUnitChoiceTypeform type for selecting a product unit from the available product units of a specified product. - "wide", "tabs" product templates were added.
- Added the new and only way to create a payment line items
\Oro\Bundle\PaymentBundle\Context\PaymentLineItem- see\Oro\Bundle\PaymentBundle\Context\LineItem\Factory\PaymentLineItemFromProductLineItemFactoryInterface. - Added
\Oro\Bundle\PaymentBundle\Context\PaymentKitItemLineItemmodel to make\Oro\Bundle\PaymentBundle\Context\PaymentLineItemstore payment kit item line items.
- Added
\Oro\Bundle\RFPBundle\Provider\ProductRFPAvailabilityProviderinstead of the deprecated\Oro\Bundle\RFPBundle\Provider\ProductAvailabilityProvider.[f] - Disabled the ability to add a product kit to RFP via
\Oro\Bundle\RFPBundle\Provider\ProductRFPAvailabilityProvider::setNotAllowedProductTypes. - Added the ability to create on a storefront a request for quote with product kits.
- Added the ability to edit in a back-office a request for quote with product kits.
- Added
\Oro\Bundle\RFPBundle\Entity\RequestProductKitItemLineItemto represent product kit item line item in\Oro\Bundle\RFPBundle\Entity\RequestProduct. - Added
\Oro\Bundle\RFPBundle\Form\Type\Frontend\RequestProductItemTypeform type to decouple it from the form type used in back-office. - Added
\Oro\Bundle\RFPBundle\Provider\RequestProductLineItemTierPricesProviderthat provides tier product prices for the request product items of the specified request entity. - Updated
request_create_confirmationemail template to extend it frombase_storefrontemail template.
- Added the ability to manage in a back-office a quote with product kits.
- Added the ability to start on a storefront a checkout from a quote with product kits.
- Added
\Oro\Bundle\SaleBundle\Entity\QuoteProductKitItemLineItemto represent product kit item line item in\Oro\Bundle\SaleBundle\Entity\QuoteProduct. - Added
\Oro\Bundle\SaleBundle\WorkflowState\Condition\IsQuoteValid(is_quote_valid) workflow condition to check a quote could be sent to a customer. - Added
Oro\Bundle\SaleBundle\Model\BaseQuoteProductItem::$checksumproperty as a part of allowing to add the same product with the same unit code multiple times. - Added
Oro\Bundle\SaleBundle\Entity\QuoteProductDemand::$checksumproperty as a part of allowing to add the same product with the same unit code multiple times. - Updated
quote_email_link,quote_email_link_guestemail templates to extend them frombase_storefrontemail template. - Added the
readonlyattribute for the price field of the product kit line item in the quote form.
- Added the ability to manage robots.txt template via system configuration.
- Added
Oro\Bundle\SEOBundle\EventListener\RestrictSitemapCmsPageByUrlSlugsListenerthat excludes cms pages without URL slugs from the sitemap.
- Added the ability to display product kit line items on the shopping list line items storefront datagrid. See more in documentation.
- Added
\Oro\Bundle\ShoppingListBundle\Entity\ProductKitItemLineItementity to the storefront API asshoppinglistkititemresource. - Added
\Oro\Bundle\ShoppingListBundle\Entity\ProductKitItemLineItementity to the back-office API. - Added
\Oro\Bundle\ShoppingListBundle\EventListener\DatagridLineItemsDataValidationListenerinstead of the deprecated\Oro\Bundle\CheckoutBundle\EventListener\DatagridLineItemsDataViolationsListener.[f] - Added
\Oro\Bundle\ShoppingListBundle\Validator\Constraints\ProductKitItemProductHasPricevalidation constraint for checking if product kit item product has price. - Added
Oro\Bundle\ShoppingListBundle\Entity\LineItem::$checksumproperty as a part of allowing to add the same product with the same unit code multiple times. - Added
Oro\Bundle\ShoppingListBundle\Entity\ShoppingList::$currencyproperty. - Added
Oro\Bundle\ShoppingListBundle\Entity\ShoppingListTotal::$customerUserrelation property
- Added new tax calculation logic for product kits. Now the total tax for the product kit is the sum of the taxes for the kit and its items.
- Added
\Oro\Bundle\TaxBundle\Resolver\KitAdjustResolverresolver to adjust tax amount for product kits.
- Added
\Oro\Bundle\VisibilityBundle\EventListener\DatagridLineItemsDataVisibilityListenerand\Oro\Bundle\VisibilityBundle\EventListener\DatagridLineItemsDataVisibilityPrefetchListenerfor adding visibility data to the product line items storefront datagrids. - Added
is_visible_productTWIG function for checking if a product is visible.
- Added a new localizable
labelsfield to\Oro\Bundle\CMSBundle\Entity\ContentWidget. - Added new image fields to
\Oro\Bundle\CMSBundle\Entity\ImageSlide:extraLargeImage2x,extraLargeImage3x,largeImage,largeImage2x,largeImage3x,mediumImage2x,mediumImage3x,smallImage2x,smallImage3x. - Added a new
headerfield to\Oro\Bundle\CMSBundle\Entity\ImageSlide. - Added a new twig function
oro_cms_image_slide_imagethat returns the URL to the slider image using a predefined fallback strategy. - Added the
Oro\Bundle\CMSBundle\Validator\Constraints\HasAtLeastOneSizeImageconstraint and\Oro\Bundle\CMSBundle\Validator\Constraints\HasAtLeastOneSizeImageValidatorvalidator to ensure at least one size of image is selected in a group. - Added the
Oro\Bundle\CMSBundle\Acl\Voter\LandingPageDeleteVotervoter that prevents deletion of a landing page used as a homepage or a content variant in any content node of any web catalog. - Added the
oro_cms.home_pageoption to the system configuration. - Added a new
doNotRenderTitlefield toOro\Bundle\CMSBundle\Form\Type\CmsPageVariantType. - Added a new
createUrlSlugfield toOro\Bundle\CMSBundle\Form\Type\PageType. - Added a landing page "Homepage".
- Changed
\Oro\Bundle\UPSBundle\Factory\PriceRequestFactoryto make it work with\Oro\Bundle\ShippingBundle\Entity\ProductShippingOptionsInterfacemodels.
- Changed
\Oro\Bundle\CheckoutBundle\Converter\ShoppingListLineItemConverter,\Oro\Bundle\CheckoutBundle\DataProvider\Converter\CheckoutLineItemsConverter,\Oro\Bundle\CheckoutBundle\WorkflowState\Mapper\ShoppingListLineItemDiffMapperto take into account\Oro\Bundle\CheckoutBundle\Entity\CheckoutProductKitItemLineItementities. - Changed
\Oro\Bundle\CheckoutBundle\Datagrid\FrontendLineItemsGridExtension,\Oro\Bundle\CheckoutBundle\Provider\MultiShipping\GroupedCheckoutLineItemsProvider,\Oro\Bundle\CheckoutBundle\Provider\CheckoutLineItemsProviderto take into account checkout line item checksum. - Changed
b2b_flow_checkoutworkflow: enabled the check fororder_line_items_not_emptyaction group inplace_order_definitiontransition definition. - Changed
frontend-checkout-line-items-gridcheckout line items datagrid to make it show checkout product kit line items, update related frontend templates. - Updated
order_confirmation_emailemail notification template to include kit item line items data.
- The action
oro_frontend_rootrenders home page landing page from the System Configuration.
- Changed
\Oro\Bundle\FedexShippingBundle\Builder\ShippingPackagesByLineItemBuilderInterface::addLineItemso it expects\Oro\Bundle\ShippingBundle\Context\ShippingLineItemargument instead of the removed\Oro\Bundle\ShippingBundle\Context\ShippingLineItemInterface. - Changed
\Oro\Bundle\FedexShippingBundle\Factory\FedexPackagesByLineItemsAndPackageSettingsFactoryInterface::createso it expects a collection\Doctrine\Common\Collections\Collectionof\Oro\Bundle\ShippingBundle\Context\ShippingLineItementities instead of the removed\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\ShippingLineItemCollectionInterface. - Changed
\Oro\Bundle\FedexShippingBundle\Modifier\ShippingLineItemCollectionBySettingsModifierInterface::modifyso it expects a collection\Doctrine\Common\Collections\Collectionof\Oro\Bundle\ShippingBundle\Context\ShippingLineItementities instead of the removed\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\ShippingLineItemCollectionInterface.
- Changed
\Oro\Bundle\FixedProductShippingBundle\Provider\ShippingCostProvider::getCalculatedProductShippingCostso it expects a collection\Doctrine\Common\Collections\Collectionof\Oro\Bundle\ShippingBundle\Context\ShippingLineItementities instead of the removed\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\ShippingLineItemCollectionInterface.
- Changed the mechanism checking inventory levels, quantity to order limits, low inventory and upcoming labels in checkout: moved to validation constraints in validation.yml of CheckoutBundle, see section "Removed" for details.
- Changed
\Oro\Bundle\OrderBundle\Converter\OrderPaymentLineItemConverterInterfaceso it returns a collection\Doctrine\Common\Collections\Collectionof\Oro\Bundle\PaymentBundle\Context\PaymentLineIteminstead of the removed\Oro\Bundle\PaymentBundle\Context\LineItem\Collection\PaymentLineItemCollectionInterface. - Changed
\Oro\Bundle\OrderBundle\Converter\OrderShippingLineItemConverterInterfaceso it returns a collection\Doctrine\Common\Collections\Collectionof\Oro\Bundle\ShippingBundle\Context\ShippingLineIteminstead of the removed\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\ShippingLineItemCollectionInterface. - Changed
\Oro\Bundle\OrderBundle\Converter\BasicOrderShippingLineItemConverterto make it work with the new shipping line item factory\Oro\Bundle\ShippingBundle\Context\LineItem\Factory\ShippingLineItemFromProductLineItemFactory. - Changed
\Oro\Bundle\OrderBundle\Converter\BasicOrderPaymentLineItemConverterto make it work with the new payment line item factory\Oro\Bundle\PaymentBundle\Context\LineItem\Factory\PaymentLineItemFromProductLineItemFactory. - Updated
\Oro\Bundle\CheckoutBundle\Converter\OrderLineItemConverterto make it create order line items with kit item line items. - Updated
\Oro\Bundle\OrderBundle\Form\Type\OrderLineItemTypeto addkitItemLineItemsform field needed for an order line item of a product kit. - Updated order create/update page in back-office with kit item line items form.
- Updated order view page in back-office with kit item line items data.
- Updated order view page on storefront with kit item line items data.
\Oro\Bundle\OrderBundle\Form\Extension\OrderDataStorageExtensionnow takes into account kit item line items when creating an order from the product data storage.
- Reworked and simplified the mechanism of creating payment line items
\Oro\Bundle\PaymentBundle\Context\PaymentLineItem, see section "Removed" for details. - Changed
\Oro\Bundle\PaymentBundle\Context\Builder\PaymentContextBuilderInterfaceto make it work with\Oro\Bundle\PaymentBundle\Context\PaymentLineIteminstead of the removed\Oro\Bundle\PaymentBundle\Context\PaymentLineItemInterfaceand\Oro\Bundle\PaymentBundle\Context\LineItem\Collection\PaymentLineItemCollectionInterface. - Changed
\Oro\Bundle\PaymentBundle\Context\Converter\Basic\BasicPaymentContextToRulesValueConverterto take into account\Oro\Bundle\PaymentBundle\Context\PaymentKitItemLineItementities. - Changed
\Oro\Bundle\PaymentBundle\Context\PaymentContextInterface::getLineItemsso it returns collection\Doctrine\Common\Collections\Collectionof\Oro\Bundle\PaymentBundle\Context\PaymentLineItementities instead of the removed\Oro\Bundle\PaymentBundle\Context\LineItem\Collection\PaymentLineItemCollectionInterface. - Changed
\Oro\Bundle\PaymentBundle\Context\PaymentLineItem- implemented\Oro\Bundle\ProductBundle\Model\ProductKitItemLineItemsAwareInterface. - Changed
\Oro\Bundle\PaymentBundle\ExpressionLanguage\DecoratedProductLineItemFactoryto make it work with\Oro\Bundle\PaymentBundle\Context\PaymentKitItemLineItemmodels.
\Oro\Bundle\PricingBundle\Provider\ProductLineItemProductPriceProvidernow returns prices for all enabled product units.
- Decomposed
\Oro\Bundle\ProductBundle\Model\ProductKitItemLineItemInterfaceinto\Oro\Bundle\ProductBundle\Model\ProductKitItemAwareInterface. - Changed
\Oro\Bundle\ProductBundle\ImportExport\Strategy\ProductStrategy- added the possibility of postponing rows for missing product kits item products and fixed losing the related kitItems collections located deeper than 1st level. - Changed
\Oro\Bundle\ProductBundle\ImportExport\TemplateFixture\ProductFixture- added new simple and kit products. - Changed
\Oro\Bundle\ProductBundle\EventListener\WebsiteSearchProductIndexerListener- to take into account product kits. - Field names were changed for form type
\Oro\Bundle\ProductBundle\Form\Type\ProductSegmentContentWidgetSettingsType- field
enable_autoplayrenamed toautoplay - field
autoplay_speedrenamed toautoplaySpeed - field
show_dotsrenamed todots - field
enable_infinite_scrollrenamed toinfinite - field
autoplay_speedrenamed toautoplaySpeed
- field
- Decomposed
\Oro\Bundle\ProductBundle\Model\ProductKitItemLineItemsAwareInterfaceinto\Oro\Bundle\ProductBundle\Model\ProductLineItemChecksumAwareInterface. - Decomposed
\Oro\Bundle\ProductBundle\Model\ProductLineItemInterfaceinto\Oro\Bundle\ProductBundle\Model\ParentProductAwareInterface. - Added product type to the response of the autocomplete search handler
\Oro\Bundle\ProductBundle\Autocomplete\ProductVisibilityLimitedSearchHandler. - Added
getProductto\Oro\Bundle\ProductBundle\Model\ProductKitItemLineItemsAwareInterface. - Added the ability to specify product unit precision property path in validation constraint
\Oro\Bundle\ProductBundle\Validator\Constraints\ProductKitItemLineItemQuantityUnitPrecisionand its validator
\Oro\Bundle\PromotionBundle\OrderTax\Mapper\OrderLineItemAfterDiscountsMappernow takes into account product kits and proportionally distributes its discounts subtotal among the product kit subtotal when the Calculate Taxes After Promotions option is enabled.
- Implemented
\Oro\Bundle\ProductBundle\Model\ProductKitItemLineItemsAwareInterfacein\Oro\Bundle\RFPBundle\Entity\RequestProductso it has the field$kitItemLineItemswith a collection of kit item line items. - Implemented
\Oro\Bundle\ProductBundle\Model\ProductKitItemLineItemsAwareInterface,\Oro\Bundle\ProductBundle\Model\ProductLineItemChecksumAwareInterfacein\Oro\Bundle\RFPBundle\Entity\RequestProductItemso it has the property$kitItemLineItemswith a collection of kit item line items and a checksum. \Oro\Bundle\RFPBundle\Form\Extension\RequestDataStorageExtensionnow takes into account kit item line items when creating an RFQ from the product data storage.- Decoupled
\Oro\Bundle\RFPBundle\Form\Type\Frontend\RequestProductTypeform type from the form type used in back-office. - Added additional validation groups
frontend_request_create,frontend_request_updateto\Oro\Bundle\RFPBundle\Layout\DataProvider\RFPFormProviderthat creates an RFQ form for a storefront. - Updated email template
request_create_confirmationwith the ability to show kit item line items. - Updated
\Oro\Bundle\RFPBundle\Twig\RequestProductsExtensionto add kit item line items data to therfp_productsTWIG function used in email templates.
- Changed
\Oro\Bundle\SaleBundle\Quote\Shipping\LineItem\Converter\FirstOffers\FirstOffersQuoteToShippingLineItemConverterand\Oro\Bundle\SaleBundle\Quote\Shipping\LineItem\Converter\SelectedOffers\SelectedOffersQuoteToShippingLineItemConverterto make them work with the new shipping line item factory\Oro\Bundle\SaleBundle\Quote\Shipping\Context\LineItem\Factory\ShippingLineItemFromQuoteProductDemandFactory. - Changed
\Oro\Bundle\SaleBundle\Quote\Shipping\LineItem\Converter\QuoteToShippingLineItemConverterInterface::convertLineItemsso it returns a collection\Doctrine\Common\Collections\Collectionof\Oro\Bundle\ShippingBundle\Context\ShippingLineIteminstead of the removed\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\ShippingLineItemCollectionInterface. - Updated
\Oro\Bundle\SaleBundle\Converter\QuoteDemandLineItemConverterto enable the start of a checkout from a quote with product kits. - Implemented
\Oro\Bundle\ProductBundle\Model\ProductKitItemLineItemsAwareInterfacein\Oro\Bundle\SaleBundle\Entity\QuoteProductso it has the field$kitItemLineItemswith a collection of kit item line items. - Implemented
\Oro\Bundle\ProductBundle\Model\ProductKitItemLineItemsAwareInterface,\Oro\Bundle\ProductBundle\Model\ProductLineItemChecksumAwareInterfacein\Oro\Bundle\SaleBundle\Model\BaseQuoteProductItemso it has the property$kitItemLineItemswith a collection of kit item line items and a checksum. - Implemented
\Oro\Bundle\ProductBundle\Model\ProductKitItemLineItemsAwareInterface,\Oro\Bundle\ProductBundle\Model\ProductLineItemChecksumAwareInterfacein\Oro\Bundle\SaleBundle\Entity\QuoteProductDemandso it has the property$kitItemLineItemswith a collection of kit item line items and a checksum. \Oro\Bundle\SaleBundle\Form\Extension\QuoteDataStorageExtensionnow takes into account kit item line items when creating a quote from the product data storage.- Added
verify_transitionto theb2b_quote_backoffice_defaultto check a quote could be sent to a customer. orosale/js/app/components/dependent-field-componentjs module supportsdata-disable-elementelement that disables form elements in dependee element.
- Reworked and simplified the mechanism of creating shipping line items
\Oro\Bundle\ShippingBundle\Context\ShippingLineItem, see section "Removed" for details. - Changed
\Oro\Bundle\ShippingBundle\Context\Builder\ShippingContextBuilderInterfaceto make it work with\Oro\Bundle\ShippingBundle\Context\ShippingLineIteminstead of the removed\Oro\Bundle\PaymentBundle\Context\PaymentLineItemInterfaceand\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\ShippingLineItemCollectionInterface. - Changed
\Oro\Bundle\ShippingBundle\Converter\Basic\ShippingContextToRulesValuesConverterto take into account\Oro\Bundle\ShippingBundle\Context\ShippingKitItemLineItemmodels. - Changed
\Oro\Bundle\ShippingBundle\ExpressionLanguage\DecoratedProductLineItemFactoryto make it work with\Oro\Bundle\ShippingBundle\Context\ShippingKitItemLineItemmodels. - Changed
\Oro\Bundle\ShippingBundle\Context\ShippingKitItemLineItemto make it work with\Oro\Bundle\ShippingBundle\Model\Dimensionsand\Oro\Bundle\ShippingBundle\Model\Weight.
- Made use of
\Symfony\Component\Validator\Constraints\GroupSequencein\Oro\Bundle\ShoppingListBundle\Controller\Frontend\AjaxProductKitLineItemControllerwhen creating/updating a product kit line item. - Made use of nested validation groups transforming into
\Symfony\Component\Validator\Constraints\GroupSequenceforshoppinglistitemandshoppinglistkititemstorefront API resources. \Oro\Bundle\ShoppingListBundle\Storage\ProductDataStoragenow additionally puts kit item line items data into the product data storage.
- Added a new field
doNotRenderTitletoOro\Bundle\WebCatalogBundle\Entity\ContentVariant.
- Removed layout templates related to the old homepage functionality.
- Custom theme is removed
- Removed
\Oro\Bundle\CheckoutBundle\DataProvider\LineItem\CheckoutLineItemsDataProvider, added\Oro\Bundle\CheckoutBundle\DataProvider\CheckoutDataProviderinstead. - Removed
\Oro\Bundle\CheckoutBundle\EventListener\DatagridLineItemsDataViolationsListener, use\Oro\Bundle\ShoppingListBundle\EventListener\DatagridLineItemsDataValidationListenerinstead.[f] - Removed unused
\Oro\Bundle\CheckoutBundle\Event\CheckoutValidateEvent. - Removed
\Oro\Bundle\CheckoutBundle\Provider\CheckoutSubtotalProvider, added\Oro\Bundle\CheckoutBundle\Provider\SubtotalProviderinstead to make it work with product kit line items in checkout.[f] - Removed
\Oro\Bundle\CheckoutBundle\Helper\CheckoutWorkflowHelper::restartCheckout. - Removed checkout event
extendable_condition.checkout.
- WYSIWYG editor
Removed
patchDeviceModelmethod inDevidesManager. UseupdateCalcPreviewDeviceWidthfromDeviceManagerfor update device preview width instead.
- Removed
\Oro\Bundle\InventoryBundle\EventListener\CreateOrderEventListener::onBeforeOrderCreatethat checked the inventory level of the products present in checkout, added\Oro\Bundle\InventoryBundle\Validator\Constraints\HasEnoughInventoryLevelvalidation constraint instead. - Removed
\Oro\Bundle\InventoryBundle\EventListener\CreateOrderCheckUpcomingListenerthat checked if products upcoming dates comply with checkout Ship Until option. Moved to the validation.yml config in CheckoutBundle instead. - Removed
\Oro\Bundle\InventoryBundle\EventListener\CreateOrderLineItemValidationListener. - Removed
\Oro\Bundle\InventoryBundle\EventListener\LineItemValidationListenerthat checked the product line items quantity to order limits. Moved to the validation.yml config in CheckoutBundle instead. - Removed
\Oro\Bundle\InventoryBundle\EventListener\LowInventoryCheckoutLineItemValidationListenerthat checked if product inventory level is running low and added the corresponding warning. Moved to the validation.yml config in CheckoutBundle instead. - Removed
\Oro\Bundle\InventoryBundle\EventListener\QuantityToOrderConditionListenerthat checked the checkout line items quantity to order limits to prevent a checkout from starting. Moved to the validation.yml config in CheckoutBundle instead. - Removed
\Oro\Bundle\InventoryBundle\EventListener\UpcomingLabelCheckoutLineItemValidationListenerthat checked if product is upcoming low and added the corresponding warning. Moved to the validation.yml config in CheckoutBundle instead. - Removed
\Oro\Bundle\InventoryBundle\Validator\LowInventoryCheckoutLineItemValidator::isLineItemRunningLow, use\Oro\Bundle\InventoryBundle\Validator\LowInventoryCheckoutLineItemValidator::isRunningLowinstead.[f] - Removed
\Oro\Bundle\InventoryBundle\Validator\LowInventoryCheckoutLineItemValidator::getMessageIfLineItemRunningLow, use\Oro\Bundle\InventoryBundle\Validator\LowInventoryCheckoutLineItemValidator::getMessageIfRunningLowinstead.[f]
- Removed
\Oro\Bundle\OrderBundle\EventListener\Order\MatchingPriceEventListener, its responsibility is fulfilled by\Oro\Bundle\OrderBundle\Form\Type\EventListener\SubtotalSubscriber.[f] - Removed
\Oro\Bundle\OrderBundle\EventListener\Order\TierPriceEventListener, its responsibility is fulfilled by\Oro\Bundle\OrderBundle\EventListener\Order\OrderLineItemTierPricesEventListenernow that adds both tier prices for simple products and for product kits.[f] - Removed
getMatchingPrices,fillMatchingPricesmethods from\Oro\Bundle\OrderBundle\Pricing\PriceMatcher, useaddMatchingPricesinstead.[f]
- Removed
\Oro\Bundle\PaymentBundle\Context\PaymentLineItemInterface, use\Oro\Bundle\PaymentBundle\Context\PaymentLineIteminstead.[f] - Removed
\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\ShippingLineItemCollectionInterfaceand\Oro\Bundle\PaymentBundle\Context\LineItem\Collection\Doctrine\DoctrinePaymentLineItemCollection, use collection\Doctrine\Common\Collections\Collectionof\Oro\Bundle\PaymentBundle\Context\PaymentLineItementities instead.[f] - Removed
\Oro\Bundle\PaymentBundle\Context\LineItem\Collection\Factory\PaymentLineItemCollectionFactoryInterfaceand\Oro\Bundle\PaymentBundle\Context\LineItem\Collection\Doctrine\Factory\DoctrinePaymentLineItemCollectionFactory, use\Oro\Bundle\PaymentBundle\Context\LineItem\Factory\PaymentLineItemFromProductLineItemFactoryInterface::createCollectioninstead. - Removed
\Oro\Bundle\PaymentBundle\Context\LineItem\Builder\Factory\PaymentLineItemBuilderFactoryInterface,\Oro\Bundle\PaymentBundle\Context\LineItem\Builder\Basic\Factory\BasicPaymentLineItemBuilderFactory,\Oro\Bundle\PaymentBundle\Context\LineItem\Builder\PaymentLineItemBuilderInterface,\Oro\Bundle\PaymentBundle\Context\LineItem\Builder\Basic\BasicPaymentLineItemBuilder. Use\Oro\Bundle\PaymentBundle\Context\LineItem\Factory\PaymentLineItemFromProductLineItemFactoryinstead.
- Removed
products-prices-component.js, decoupled its dependent components.
- "list", "short", "two-columns" product templates were removed. Use "tabs" and "wide" templates instead. In case you have registered old templates in your theme - a default template will be applied.
- Removed
\Oro\Bundle\ProductBundle\ProductKit\EventListener\ProductStatusListener, added\Oro\Bundle\ProductBundle\ProductKit\EventListener\StatusListenerinstead.
- Removed unused
tierPrices,matchedPrices,isShippingAddressGrantedfrom\Oro\Bundle\SaleBundle\Form\QuoteFormTemplateDataProvider. - Removed
\Oro\Bundle\SaleBundle\Provider\QuoteProductPriceProvider(oro_sale.provider.quote_product_price), use\Oro\Bundle\SaleBundle\Provider\QuoteProductPricesProvider(oro_sale.provider.quote_product_prices) instead.[p] - Removed
\Oro\Bundle\SaleBundle\Quote\Pricing\QuotePriceComparator, use\Oro\Bundle\SaleBundle\Quote\Pricing\QuotePricesComparator(oro_sale.quote.pricing.comparator) instead.[p]
- Removed
\Oro\Bundle\ShippingBundle\Context\ShippingLineItemInterface, use\Oro\Bundle\ShippingBundle\Context\ShippingLineIteminstead.[f] - Removed
\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\ShippingLineItemCollectionInterfaceand\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\Doctrine\DoctrineShippingLineItemCollection, use collection\Doctrine\Common\Collections\Collectionof\Oro\Bundle\ShippingBundle\Context\ShippingLineItementities instead.[f] - Removed
\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\Factory\ShippingLineItemCollectionFactoryInterfaceand\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\Doctrine\Factory\DoctrineShippingLineItemCollectionFactory, use\Oro\Bundle\ShippingBundle\Context\LineItem\Factory\ShippingLineItemFromProductLineItemFactoryInterface::createCollectioninstead. - Removed
\Oro\Bundle\ShippingBundle\Context\LineItem\Builder\Factory\ShippingLineItemBuilderFactoryInterface,\Oro\Bundle\ShippingBundle\Context\LineItem\Builder\Basic\Factory\BasicShippingLineItemBuilderFactory,\Oro\Bundle\ShippingBundle\Context\LineItem\Builder\ShippingLineItemBuilderInterface,\Oro\Bundle\ShippingBundle\Context\LineItem\Builder\Basic\BasicShippingLineItemBuilder,Oro\Bundle\ShippingBundle\Context\LineItem\Builder\Basic\Factory\BasicLineItemBuilderByLineItemFactory. Use\Oro\Bundle\ShippingBundle\Context\LineItem\Factory\ShippingLineItemFromProductLineItemFactoryinstead. - Removed
\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\ShippingOptions\Factory\ShippingOptionsLineItemCollectionFactoryDecorator, use\Oro\Bundle\ShippingBundle\Context\LineItem\Factory\ShippingLineItemFromProductLineItemFactoryInterface::createCollectioninstead
- Removed option
productsMatchedPricesfrom shopping_lists_awere_container layout block type, added productLineItemsPricesByShoppingList instead - Removed methods
getMatchedPrices,getMatchedPricefrom\Oro\Bundle\ShoppingListBundle\Layout\DataProvider\FrontendShoppingListProductsProvider, addedgetProductLineItemPricesForShoppingListsinstead. - Removed
\Oro\Bundle\ShoppingListBundle\EventListener\DatagridLineItemsDataViolationsListener, use\Oro\Bundle\ShoppingListBundle\EventListener\DatagridLineItemsDataValidationListenerinstead.[f] - Removed
\Oro\Bundle\ShoppingListBundle\Event\LineItemValidateEvent,\Oro\Bundle\ShoppingListBundle\Validator\Constraints\LineItemCollection,\Oro\Bundle\ShoppingListBundle\Validator\Constraints\LineItemCollectionValidator,\Oro\Bundle\ShoppingListBundle\Validator\LineItemViolationsProvider. - Removed
\Oro\Bundle\ShoppingListBundle\ProductKit\Checksum\LineItemChecksumGeneratorInterfaceand implementations. Use\Oro\Bundle\ProductBundle\LineItemChecksumGenerator\LineItemChecksumGeneratorInterfaceinstead.[f] - Removed
\Oro\Bundle\ShoppinglistBundle\ProductKit\Checker\ProductKitAvailabilityChecker, use\Oro\Bundle\ProductBundle\ProductKit\Checker\ProductKitAvailabilityCheckerinstead.[f] - Removed
\Oro\Bundle\ShoppinglistBundle\ProductKit\Checker\ProductKitItemAvailabilityChecker, use\Oro\Bundle\ProductBundle\ProductKit\Checker\ProductKitItemAvailabilityCheckerinstead.[f] - Removed
\Oro\Bundle\ShoppinglistBundle\ProductKit\Checker\ProductKitItemProductAvailabilityChecker, use\Oro\Bundle\ProductBundle\ProductKit\Checker\ProductKitItemProductAvailabilityCheckerinstead.[f] - Removed
\Oro\Bundle\ShoppinglistBundle\ProductKit\Provider\ProductKitItemsProvider, use\Oro\Bundle\ProductBundle\ProductKit\Provider\ProductKitItemsProviderinstead.[f] - Removed
\Oro\Bundle\ShoppinglistBundle\ProductKit\Provider\ProductKitItemProductsProvider, use\Oro\Bundle\ProductBundle\ProductKit\Provider\ProductKitItemProductsProviderinstead.[f]
- Removed
\Oro\Bundle\ValidationBundle\Validator\Constraints\UniqueEntityvalidation constraint and validator. Use instead\Oro\Bundle\FormBundle\Validator\Constraints\UniqueEntity.
- Added
\Oro\Bundle\WebCatalogBundle\ContentNodeUtils\Loader\ResolvedContentNodesLoader,\Oro\Bundle\WebCatalogBundle\ContentNodeUtils\Loader\ResolvedContentVariantsLoaderto easily get resolved content nodes for specified content node ids. - Added
\Oro\Bundle\WebCatalogBundle\ContentNodeUtils\Factory\ResolvedContentNodeFactory,\Oro\Bundle\WebCatalogBundle\ContentNodeUtils\Factory\ResolvedContentVariantFactoryto easily create\Oro\Bundle\WebCatalogBundle\Cache\ResolvedData\ResolvedContentNodeand\Oro\Bundle\WebCatalogBundle\Cache\ResolvedData\ResolvedContentVariantmodels. - Added
\Oro\Bundle\WebCatalogBundle\Cache\ResolvedContentNodeNormalizerto decrease the complexity of\Oro\Bundle\WebCatalogBundle\Cache\ContentNodeTreeCache. - Added
\Oro\Bundle\WebCatalogBundle\ContentNodeUtils\Loader\ResolvedContentNodesLoaderto decrease the complexity of\Oro\Bundle\WebCatalogBundle\ContentNodeUtils\ContentNodeTreeResolver. - Added the ability to specify multiple scopes in
\Oro\Bundle\WebCatalogBundle\ContentNodeUtils\ContentNodeTreeResolverInterface::getResolvedContentNode. - Added
\Oro\Bundle\WebCatalogBundle\Cache\ContentNodeTreeMergingResolverthat merges resolved content nodes from multiple scopes. - Added
\Oro\Bundle\WebCatalogBundle\Cache\ResolvedContentNodesMergerto decrease the complexity of\Oro\Bundle\WebCatalogBundle\Cache\ContentNodeTreeMergingResolver. - Added
\Oro\Bundle\WebCatalogBundle\Menu\MenuContentNodesProviderInterface,\Oro\Bundle\WebCatalogBundle\Menu\MenuContentNodesProvider,\Oro\Bundle\WebCatalogBundle\Menu\StorefrontMenuContentNodesProviderand\Oro\Bundle\WebCatalogBundle\Menu\CompositeMenuContentNodesProviderto provide an ability of getting resolved content nodes for showing in menu.
- Added Organization ownership type to the
Oro\Bundle\PricingBundle\Entity\PriceListentity. All existing prices was moved to the first organization.
- Category. Added sort order management for Products in categories:
- New field
category_sort_orderin Product entity & website search index to manage sort orders in Categories - New input fields in Category edition grid in backend
- New default ordering behaviour for related frontend grids (
frontend-product-search-gridbased on Category)
- New field
- Added
\Oro\Bundle\CatalogBundle\Menu\MenuCategoriesProviderInterface,\Oro\Bundle\CatalogBundle\Menu\MenuCategoriesProvider,\Oro\Bundle\CatalogBundle\Menu\MenuCategoriesCachingProviderto provide an ability of getting categories data for showing in menu. - Added
\Oro\Bundle\CatalogBundle\Menu\MenuCategoriesCachethat encapsulates the normalization logic of categories data. - Added "category" field to
\Oro\Bundle\CommerceMenuBundle\Entity\MenuUpdate.
-
WYSIWYG editor.
- Added a new control option to add/remove cells and rows in the table.
- Added the
renderWysiwygContentTWIG macro and a layout block typewysiwyg_contentfor rendering WYSIWYG content on the storefront. See the How to Display WYSIWYG Field article for more information.
-
Added entity name provider for the
Pageentity.
- Added an entity name provider for the
Consententity. - Added
renderWysiwygContentTWIG macro and a layout block typewysiwyg_contentfor rendering WYSIWYG content on storefront. See article How to Display WYSIWYG Field for more information. - Updated WYSIWYG editor to v0.20.1.
- Added the possibility to define a model and a view for WYSIWYG component types with a function and an object.
-
The
Brandentity now has its own search result template for the backend search -
Added the
product_original_filenamesfeature. This feature is enabled whenoro_attachment.original_file_names_enabled. is disabled andoro_product.original_file_names_enabledis enabled. -
The
relevance_weightfield is added to the website search mapping for the Product entity. -
Product Collections. Added sort order management for Products in Product Collections:
- New entity
ProductCollectionSortOrderand website search fieldassigned_to_sort_order.ASSIGN_TYPE_ASSIGN_IDhave been added to link Products to Segments with a SortOrder to manage sort orders in Product Collections - New default ordering behaviour added for related frontend grids (
frontend-product-search-gridbased on ProductCollection)
- New entity
- Added entity name provider for the
Promotionentity.
- Enabled the
orphanRemovaloption for SEO fields: metaDescriptions, metaKeywords, metaTitles.
- ProductCollection ContentVariant. Added sort order management for Products in categories
- New input fields in ProductCollection ContentVariant edition grid
- Added strict types to
Oro\Bundle\ShippingBundle\Method\ShippingMethodInterfaceand all classes that implement this interface.[f] - Added strict types to
Oro\Bundle\ShippingBundle\Method\ShippingMethodTypeInterfaceand all classes that implement this interface.[f] - Added strict types to
Oro\Bundle\ShippingBundle\Method\ShippingMethodProviderInterfaceand all classes that implement this interface.[f] - Added strict types to
Oro\Bundle\ShippingBundle\Method\Factory\IntegrationShippingMethodFactoryInterfaceand all classes that implement this interface.[f] - Removed unneeded classes that implement
Oro\Bundle\ShippingBundle\Method\ShippingMethodProviderInterfaceand replace them withOro\Bundle\ShippingBundle\Method\Provider\Integration\ChannelShippingMethodProvider.
- Changed
\Oro\Bundle\WebCatalogBundle\Async\WebCatalogCacheProcessorso it builds cache starting always from the root content node. - Changed
\Oro\Bundle\WebCatalogBundle\Provider\ContentNodeProvider::getContentVariantIdsso the ordering of the loaded data follows the order of specified ids.
- Update Grapesjs to 0.19.5 version
- Changed the base-type component. Changed
modelMixintomodelPropsandviewMixintoviewProps. An object definition of the editor type model/view was passed. AddedModelTypeand ViewType properties to pass the constructor function - Changed component types naming from
text-type-builder.jstotext-type.js. Removed-builderin file names
- Inventory status website search index field has been renamed from
inventory_statustoinv_statusto avoid collision with the field name for the inventory status product attribute - Inventory website search index fields (inventory status, low inventory threshold, is upcoming,
availability date) have been moved to the separate
inventoryindexation group
- Price index fields have been renamed (pay attention to a dot notation):
minimal_price_CPL_ID_CURRENCY_UNITtominimal_price.CPL_ID_CURRENCY_UNIT,minimal_price_CPL_ID_CURRENCYtominimal_price.CPL_ID_CURRENCY,minimal_price_PRICE_LIST_ID_CURRENCY_UNITtominimal_price.PRICE_LIST_ID_CURRENCY_UNIT,minimal_price_PRICE_LIST_ID_CURRENCYtominimal_price.PRICE_LIST_ID_CURRENCY
- Product search index field
product_idhas been replaced withsystem_entity_id Oro\Bundle\ProductBundle\Provider\ProductImageFileNameProvideris applicable ifproduct_original_filenamesfeature is enabled.- Storefront product autocomplete now includes list of categories with found products
- ProcessAutocompleteDataEvent data format has been changed, now it includes full autocomplete data: products, categories, and total count
- Changed website search engine configuration:
website_search_engine_dsnparameter is used instead ofsearch_engine_name,search_engine_host,search_engine_port,search_engine_index_prefix,search_engine_username,search_engine_password,search_engine_ssl_verification,search_engine_ssl_cert,search_engine_ssl_cert_password,search_engine_ssl_key,search_engine_ssl_key_password,website_search_engine_index_prefix. - Separate setup via dedicated DSN-s allows splitting search engine's connections between back-office and storefront.
- Removed unneeded
Oro\Bundle\ShippingBundle\Provider\ShippingMethodChoicesProviderInterface.
- Removed block type
menu_item; It was updated and moved toCommerceMenuBundle - Removed
\Oro\Bundle\WebCatalogBundle\Cache\ContentNodeTreeCache::deleteForNode, the method is moved to\Oro\Bundle\WebCatalogBundle\Async\ContentNodeSlugsProcessor. - Removed
Oro\Bundle\WebCatalogBundle\Cache\ContentNodeTreeResolver. New resolvers are used instead -\Oro\Bundle\WebCatalogBundle\Cache\ContentNodeTreeCachingResolverand\Oro\Bundle\WebCatalogBundle\Cache\ContentNodeTreeMergingResolver.
- Removed block type
category_list - Removed
\Oro\Bundle\CatalogBundle\Layout\DataProvider\DTO\Category,\Oro\Bundle\CatalogBundle\Layout\DataProvider\CategoryProvider::getCategoryTree,\Oro\Bundle\CatalogBundle\Layout\DataProvider\CategoryProvider::getCategoryTreeArray,\Oro\Bundle\CatalogBundle\Layout\DataProvider\CategoryProvider::getRootCategoryas not needed for building a menu anymore. Instead, the\Oro\Bundle\CatalogBundle\Menu\MenuCategoriesCachingProvideris used.
- Removed
text_with_placeholders,wysiwyg_stylelayout block types. Usewysiwyg_contentinstead. - Removed app module
grapesjs-module.js.
- Listener
oro_order.event_listener.frontend_order_datagridis removed. Its responsibility is merged intooro_order.event_listener.order_datagrid.
- Added a few mediator events for the Single Page Checkout
single-page-checkout:before-layout-subtree-content-loading - triggered before the update of Layout Subtrees
single-page-checkout:after-layout-subtree-content-loading - triggered after the update of Layout Subtrees
single-page-checkout:layout-subtree-content-loading-fail - triggered when there was an error and the response failed
single-page-checkout:rendered - triggered when the form has rendered
single-page-checkout:before-change - triggered when the form changes
single-page-checkout:after-change - triggered after the form changes
single-page-checkout:before-force-change - triggered before the forced form change
single-page-checkout:after-force-change - triggered after the forced form change
- Created
optimizedlayout theme withlandingextra js build utilized on oro_cms_frontend_page_view page, see article How to Create Extra JS Build for a Landing Page.
- Website search field
category_path_CATEGORY_PATHhas been renamed tocategory_paths.CATEGORY_PATH[f]
- Website search field
assigned_to_ASSIGN_TYPE_ASSIGN_IDhas been renamed toassigned_to.ASSIGN_TYPE_ASSIGN_ID.CATEGORY_PATH[f] - Website search field
manually_added_to_ASSIGN_TYPE_ASSIGN_IDhas been renamed tomanually_added_to.ASSIGN_TYPE_ASSIGN_ID[f] - In order to improve page performance, some JS-components within product item blocks are initialized only on
clickandfocusinDOM-events. See Initialize Components on DOM events - Changes in
/admin/api/files/{id}REST API resource:- the attribute
filePathstructure was updated from ["product_original": "/path/to/image.jpeg"] to [{"url": "/path/to/image.jpeg", "dimension": "product_original"}]
- the attribute
- The hydration of Product entities the
frontend-product-search-griddatagrid was removed for simple products. - The datagrid extension
Oro\Bundle\ShoppingListBundle\Datagrid\Extension\FrontendMatrixProductGridExtension(service ID:oro_shopping_list.datagrid.extension.frontend_product_grid) was replaced with datagrid listenerOro\Bundle\ShoppingListBundle\Datagrid\EventListener\FrontendMatrixProductGridEventListener(service ID:oro_shopping_list.datagrid.event_listener.frontend_matrix_product_grid)
- Website search field
visibility_customer_CUSTOMER_IDhas been renamed tovisibility_customer.CUSTOMER_ID[f]
- Changed
oro_website_search.event_listener.orm.fulltext_index_listenerto usedoctrine.dbal.search_connection - Changed
oro_website_search.fulltext_index_managerto usedoctrine.dbal.search_connection
- Removed all deprecated code intended to run multiple Symfony applications on the same codebase.
- Removed
oro_website_search.tests.disable_listeners_for_data_fixtures, listeners disabled by default during fixtures loading.
- TEMPORARY (PostgreSQL)/CREATE TEMPORARY TABLES (MySQL) database privilege became required
- The format of the value for the
percentfield of theorderdiscountsAPI resource was changed. From now a percentage value is not multiplied by 100. It means that from now 100% is 1, not 100.
- Added the
oro_checkout.checkout_max_line_items_per_pageoption to the system configuration. - Added the following events:
Oro\Bundle\CheckoutBundle\Event\CheckoutTransitionBeforeEvent- dispatched before a checkout transition is started, contains workflow item and the transition.Oro\Bundle\CheckoutBundle\Event\CheckoutTransitionAfterEvent- dispatched after a checkout transition is finished, contains workflow item, the transition,isAllowedflag and collected errors if any.
- Added
is_checkout_state_validcondition. This condition compares a saved checkout state (retrieved by the provided token) to the current checkout state. - Added method
Oro\Bundle\CheckoutBundle\WorkflowState\Handler\CheckoutErrorHandler::getWorkflowErrors(). The method returns workflow-related errors from FromErrorIterator.
- OroAlternativeCheckoutBundle has been moved from oro/commerce package to oro/commerce-demo-checkouts package.
- Added the following datagrids:
frontend-checkout-line-items-gridfrontend-single-page-checkout-line-items-grid. For more details on datagrid customizations please see the datagrid documentation
oropricing/js/app/views/quick-add-item-price-viewjs module is re-developed and renamed tooropricing/js/app/views/quick-add-row-price-view
- The message queue topic
imageResizewas renamed tooro_product.image_resize. - Functionality of Quick Order Form is re-developed
oroproduct/js/app/components/quick-add-copy-paste-form-componentjs module is re-developed and renamed tooroproduct/js/app/views/quick-add-copy-paste-form-vieworoproduct/js/app/views/quick-add-item-viewjs module is re-developed and renamed tooroproduct/js/app/views/quick-add-row-vieworoproduct/js/app/views/quick-add-viewjs module is re-developed and renamed tooroproduct/js/app/views/quick-order-form-view- js mediator events
autocomplete:productFoundautocomplete:productNotFoundare replaced with custom DOM events
- The service
Oro\Bundle\PromotionBundle\Executor\PromotionExecutorcan be used without caching processed DiscountContext. Please refer tooro_promotion.promotion_executorandoro_promotion.shipping_promotion_executorexamples.
- The name for
/admin/api/requestsREST API resource was changed to/admin/api/rfqs. - The name for
/admin/api/requestproductsREST API resource was changed to/admin/api/rfqproducts. - The name for
/admin/api/requestproductitemsREST API resource was changed to/admin/api/rfqproductitems. - The name for
/admin/api/requestadditionalnotesREST API resource was changed to/admin/api/rfqadditionalnotes. - The name for
/admin/api/rfpcustomerstatusesREST API resource was changed to/admin/api/rfqcustomerstatuses. - The name for
/admin/api/rfpinternalstatusesREST API resource was changed to/admin/api/rfqinternalstatuses.
- The method
Oro\Bundle\ShippingBundle\Entity\Repository\ProductShippingOptionsRepository::findByProductsAndUnits()was renamed toOro\Bundle\ShippingBundle\Entity\Repository\ProductShippingOptionsRepository::findIndexedByProductsAndUnits()and now uses a plain DQL query without entity hydration.[f]
- The shopping list page has been completely redesigned. Removed all layout config, styles, javascript, translations, etc. related to the old design.
- Order tax recalculation check is not used on storefront.
- Changing the Order currency will no longer cause taxes to be recalculated, because changing the Order currency is not supported.
oro_website_search.event.website_search_mapping.configurationevent dispatches withOro\Bundle\SearchBundle\Event\SearchMappingCollectEventevent class that have configuration loaded from config files. So event have full access to configuration.- The merge of website search mapping config after the
oro_website_search.event.website_search_mapping.configurationevent was dispatched has been removed. At listeners please add full configuration that do not need additional processing with config processor.
- Removed long-unused
oro_customer_menulayout import from all bundles.
- Removed duplicated workflow preconditions/conditions checks.
- Removed duplicated checkout state generations and checks.
- Removed
order_line_item_has_countcondition. - Removed the following layout block types:
checkout_order_summary_line_items
- Method
Oro\Bundle\PaymentBundle\ExpressionLanguage\DecoratedProductLineItemFactory::createLineItemWithDecoratedProductByLineItem()is removed, useOro\Bundle\PaymentBundle\ExpressionLanguage\DecoratedProductLineItemFactory::createPaymentLineItemWithDecoratedProduct()instead.[f]
- Method
Oro\Bundle\ProductBundle\VirtualFields\VirtualFieldsProductDecoratorFactory::createDecoratedProductByProductHolders()is removed, useOro\Bundle\ProductBundle\VirtualFields\VirtualFieldsProductDecoratorFactory::createDecoratedProduct()instead.[f] - Removed the
oro_product.matrix_form_on_shopping_listoption from the system configuration.
- The
unique_job_slugoption was removed during sending the import price list MQ message.
- Method
Oro\Bundle\ShoppingListBundle\Entity\Repository\LineItemRepository::findDuplicate()is removed, useOro\Bundle\ShoppingListBundle\Entity\Repository\LineItemRepository::findDuplicateInShoppingList()instead.[f] - Methods
Oro\Bundle\ShoppingListBundle\Entity\Repository\LineItemRepository::deleteItemsByShoppingListAndInventoryStatuses(),Oro\Bundle\ShoppingListBundle\Entity\Repository\LineItemRepository::deleteDisabledItemsByShoppingList()are removed, useOro\Bundle\ShoppingListBundle\Entity\Repository\LineItemRepository::deleteNotAllowedLineItemsFromShoppingList()instead.[f] - Removed the following layout block types:
shopping_list_owner_select_blockshopping_list_line_items_listshopping_lists_menu
- Removed the following layout data providers:
oro_shopping_list_product_unit_code_visibilityshopping_list_form_availability_provideroro_shopping_list_matrix_grid_shopping_listoro_shopping_list_products_units
- Removed the
oro_shoppinglist_frontend_duplicateoperation. Theoro_shoppinglist_frontend_duplicate_actionoperation is now used.
- Removed
Oro\Bundle\WebsiteSearchBundle\Event\WebsiteSearchMappingEventevent class and usedOro\Bundle\SearchBundle\Event\SearchMappingCollectEventclass instead of.[f] - Removed
Oro\Bundle\WebsiteSearchBundle\Provider\WebsiteSearchMappingProviderand used\Oro\Bundle\SearchBundle\Provider\SearchMappingProviderclass instead of.[f]
- Added WYSIWYG field to Entity Manager. Read more in documentation how to change TextArea field to WYSIWYG field
- Methods
getApiResourceClassName()andgetApiResourceIdentifierDqlExpression()were added toOro\Bundle\WebCatalogBundle\ContentVariantType\SystemPageContentVariantType.
- A new "home-page-slider" content widget is added which makes possible to dynamically modify slider settings as well
as content of each slide. If you install application from a scratch new slider will be available out of the box. But
you should consider to upgrade custom slider while application update. For this you need to modify "home-page-slider"
widget to have same look as old one. And replace content of "home-page-slider" content block to
"{{ widget("home-page-slider") }}". It will render slider via widget.
- The
_web_content_scoperequest attribute was removed. UseOro\Bundle\WebCatalogBundle\Provider\RequestWebContentScopeProviderto get the current scope. This class loads the scope on demand. - The
_content_variantrequest attribute was removed. UseOro\Bundle\WebCatalogBundle\Provider\RequestWebContentVariantProviderto get the current content variant. This class loads the content variant on demand.
- The
current_websiterequest attribute was removed. To get the current website from HTTP requestOro\Bundle\WebsiteBundle\Provider\RequestWebsiteProviderwas added. This class loads the website on demand.
*.classparameters for all entities were removed from the dependency injection container. The entity class names should be used directly, e.g.'Oro\Bundle\EmailBundle\Entity\Email'instead of'%oro_email.email.entity.class%'(in service definitions, datagrid config files, placeholders, etc.), and\Oro\Bundle\EmailBundle\Entity\Email::classinstead of$container->getParameter('oro_email.email.entity.class')(in PHP code).
- The trait
Oro\Component\Cache\Layout\DataProviderCacheTraitwas removed as it added additional complexity to cacheable layout data providers instead of simplify them.[f] - The unneeded class
Oro\Component\Cache\Layout\DataProviderCacheCleanerwas removed.
- The
getName()method was removed fromOro\Bundle\PricingBundle\SubtotalProcessor\Model\SubtotalProviderInterface. Use thealiasattribute of theoro_pricing.subtotal_providerDIC tag instead.
- The handling of
priorityattribute fororo_promotion.discount_context_converter,oro_promotion.promotion_context_converterandoro_promotion.discount_strategyDIC tags was changed to correspond Symfony recommendations.[f] If you have services with these tags, change the sign of the priority value for them. E.g.{ name: oro_promotion.discount_context_converter, priority: 100 }should be changed to{ name: oro_promotion.discount_context_converter, priority: -100 }
- The
getProcessingClassName()method was removed fromOro\Bundle\TaxBundle\Mapper\TaxMapperInterface. Use theclassattribute of theoro_tax.tax_mapperDIC tag instead. - The
getName()method was removed fromOro\Bundle\TaxBundle\Provider\TaxProviderInterface. Use thealiasattribute of theoro_tax.tax_providerDIC tag instead.
- In
Oro\Bundle\PaymentBundle\Controller\Api\Rest\PaymentMethodsConfigsRuleController::enableAction(/paymentrules/{id}/enablepath) action the request method was changed to POST. - In
Oro\Bundle\PaymentBundle\Controller\Api\Rest\PaymentMethodsConfigsRuleController::disableAction(/paymentrules/{id}/disablepath) action the request method was changed to POST.
- In
Oro\Bundle\PricingBundle\Controller\AjaxPriceListController::defaultAction(oro_pricing_price_list_defaultroute) action the request method was changed to POST. - In
Oro\Bundle\PricingBundle\Controller\AjaxProductPriceController::deleteAction(oro_pricing_price_list_defaultroute) action the request method was changed to DELETE. - Introduced concept of import/export owner. Applied approach with role-based owner-based permissions to the export and import functionality.
- Option
--emailhas become required fororo:import:price-list:filecommand. Oro\Bundle\WebsiteSearchBundle\Attribute\Type\SearchAttributeTypeInterface:- all methods from the removed
Oro\Bundle\WebsiteSearchBundle\Attribute\Type\SearchableAttributeTypeInterfaceexceptgetFilterStorageFieldTypeandgetFilterableFieldNameare moved to this interface.
- all methods from the removed
- In
Oro\Bundle\SaleBundle\Controller\AjaxQuoteController::entryPointAction(oro_quote_entry_pointroute) action the request method was changed to POST.
- In
Oro\Bundle\ShippingBundle\Controller\Api\Rest\ShippingMethodsConfigsRuleController::enableAction(/shippingrules/{id}/enablepath) action the request method was changed to POST. - In
Oro\Bundle\ShippingBundle\Controller\Api\Rest\ShippingMethodsConfigsRuleController::disableAction(/shippingrules/{id}/disablepath) action the request method was changed to POST.
- The
removeProductFromViewActioninOro\Bundle\ShoppingListBundle\Controller\Frontend\AjaxLineItemController(oro_shopping_list_frontend_remove_productroute) now support onlyDELETEmethod insteadofPOST. - In
Oro\Bundle\ShoppingListBundle\Controller\Frontend\AjaxLineItemController::addProductFromViewAction(oro_shopping_list_frontend_add_productroute) action the request method was changed to POST.
- Event
oro_payment.event.extract_line_item_optionswill no longer be dispatched. Implementations ofOro\Bundle\PayPalBundle\OptionsProvider\OptionsProviderInterfacewill be used instead. - Event
oro_payment.event.extract_address_optionswill no longer be dispatched. ClassPaymentOrderShippingAddressOptionsProviderwill be used instead.
- Service
oro_website_search.async_messaging.search_message.processor.job_runnerwas removed, that trigger duplicated messages to the message queue with topics:oro.website.search.indexer.saveoro.website.search.indexer.deleteoro.website.search.indexer.reset_indexoro.website.search.indexer.reindex
- Changes in
/admin/api/orderaddressesREST API resource:- the attribute
createdwas renamed tocreatedAt - the attribute
updatedwas renamed toupdatedAt
- the attribute
- Functionality related to the currently active shopping list was moved from
Oro\Bundle\ShoppingListBundle\Manager\ShoppingListManagertoOro\Bundle\ShoppingListBundle\Manager\CurrentShoppingListManager. The service id for the CurrentShoppingListManager isoro_shopping_list.manager.current_shopping_list. - Service
oro_shopping_list.shopping_list.managerwas renamed tooro_shopping_list.manager.shopping_list.
- Method
validateReindexRequestatOro\Bundle\WebsiteSearchBundle\Engine\IndexerInputValidatorwas renamed tovalidateRequestParameters
- Added a listener to the
oro_product.display_simple_variationsconfig field that cleans the product and category layout cache when changes occur.
- Removed listener
oro_product.event_listener.restrict.display_product_variations. The serviceoro_product.config.event_listener.display_simple_variations_listeneris used instead. - Removed listener
oro_product.event_listener.datagrid.frontend_product_search.display_product_variations. The serviceoro_product.config.event_listener.display_simple_variations_listeneris used instead.
- Improved caching of home page, added
Oro\Component\Cache\Layout\DataProviderCacheTraitto the following layout data providers:Oro\Bundle\CatalogBundle\Layout\DataProvider\CategoriesProductsProvider(=data["featured_categories"].getAll())Oro\Bundle\CatalogBundle\Layout\DataProvider\FeaturedCategoriesProvider(=data["categories_products"].getCountByCategories())
- Improved security of pricing rules cache, added hash to stored data to track consistency. Old caches will be recalculated automatically.
- Class
Oro\Bundle\PricingBundle\Cache\RuleCache- method
__constructadded dependency onOro\Bundle\SecurityBundle\Encoder\SymmetricCrypterInterface
- method
- Class
Oro\Bundle\CatalogBundle\Model\ExtendProduct:- method
setCategorywas added - method
getCategorywas added - property
category_idwas added
- method
- Improved security of segment products provider cache, added hash to stored data to track consistency. Old caches should me removed as inconsistent.
- Class
Oro\Bundle\ProductBundle\Layout\DataProvider\AbstractSegmentProductsProvider- method
__constructadded dependency onOro\Bundle\SecurityBundle\Encoder\SymmetricCrypterInterface
- method
- Operation
oro_accept_quoterenamed tooro_sale_accept_quoteand moved toSaleBundle
- Layout data provider method
=data["featured_categories"].getAll()returns data in format[['id' => %d, 'title' => %s, 'small_image' => %s], [...], ...] - Relation between Category and Product has been changed from ManyToMany unidirectional with joining table to ManyToOne bidirectional.
- Class
Oro\Bundle\CatalogBundle\Entity\Category:- method
setProductswas moved toOro\Bundle\CatalogBundle\Model\ExtendCategory - method
getProductswas moved toOro\Bundle\CatalogBundle\Model\ExtendCategory - method
addProductwas moved toOro\Bundle\CatalogBundle\Model\ExtendCategory - method
removeProductswas moved toOro\Bundle\CatalogBundle\Model\ExtendCategory - property
productswas moved toOro\Bundle\CatalogBundle\Model\ExtendCategory
- method
- Operation
oro_checkout_frontend_quote_submit_to_orderrenamed tooro_sale_frontend_quote_submit_to_orderand moved toSaleBundle
- Now enabled tax provider in system config is a main point for tax calculation instead of TaxManager (look at the TaxProviderInterface). Read more in documentation how to setup custom tax provider.
- The
CategoryRepository::getCategoriesProductsCountQueryBuilderis deprecated. Not using.
- Removed
oro_category_to_productjoining table.
- Added
CheckoutLineItemandCheckoutSubtotalentities. They will be used inCheckoutentity to store data. Previously for these purposes used line items and subtotals of Checkout source entity (ShoppingListorQuoteDemandentities).
- Added Previously purchased products functionality. Documentation
- Added new email template
request_create_confirmation. It will be send when guest customer user create new request for quote. - Added new twig function
rfp_productsthat returns list of request products (formatted) for current request for quote. Can be used in email templates.
- Added interface
Oro\Bundle\WebsiteSearchBundle\Attribute\Type\SearchableAttributeTypeInterfacethat should be implemented in case new type of arguments added.
- Added interface
Oro\Bundle\RedirectBundle\Cache\UrlCacheInterfacethat should be implemented by URL cache services. - Added interface
Oro\Bundle\RedirectBundle\Provider\SluggableUrlProviderInterfacethat should be implemented by URL providers. - Added new URL caches:
key_valueandlocal. Previous implementation was registered withstoragekey and was set by default. - Added Sluggable URL providers which are used by URL generator. This service encapsulate logic related to semantic URL retrieval.
Was added 2 provider implementations:
databaseandcache.databaseis set by default. - Added DI parameter
oro_redirect.url_cache_typefor URL cache configuration - Added DI parameter
oro_redirect.url_provider_typefor URL provider configuration - Added DI parameter
oro_redirect.url_storage_cache.split_deepfor tuningstoragecache
- Entity
Oro\Bundle\CheckoutBundle\Entity\Checkout:- no longer implements
Oro\Bundle\PricingBundle\SubtotalProcessor\Model\LineItemsNotPricedAwareInterface; - implements
Oro\Bundle\CurrencyBundle\Entity\CurrencyAwareInterface.
- no longer implements
- Added Low Inventory Highlights functionality.Documentation
- Updated website search configuration file
Oro/Bundle/ProductBundle/Resources/config/oro/website_search.yml:- removed configuration for next fields:
name_LOCALIZATION_IDskunew_arrivalshort_description_LOCALIZATION_IDinventory_status
- all of this fields will be added to website search index as configuration for related product attributes
- now in website search index some fields have new names:
name_LOCALIZATION_ID=>names_LOCALIZATION_IDnew_arrival=>newArrivalshort_description_LOCALIZATION_ID=>shortDescriptions_LOCALIZATION_ID
- removed configuration for next fields:
- Class
Oro\Bundle\PromotionBundle\Handler\CouponValidationHandler- now extends from
Oro\Bundle\PromotionBundle\Handler\AbstractCouponHandler - changes in constructor:
- dependency on
Oro\Bundle\PromotionBundle\ValidationService\CouponApplicabilityValidationServicemoved tosetCouponApplicabilityValidationServicesetter
- dependency on
- now extends from
- Filtration services are now skippable. More details can be found in documentation.
- Service
oro_redirect.url_cachemust be used insteadoro_redirect.url_storage_cache - Interface
Oro\Bundle\RedirectBundle\Cache\UrlCacheInterfacemust be used as dependency instead ofOro\Bundle\RedirectBundle\Cache\UrlStorageCache - URL cache format for
storagecache type was improved to decrease files size and speed up caches loading. Old caches should be recalculated. Old caches format is still supported to simplify migration, to be able to use existing URL caches setoro_redirect.url_storage_cache.split_deepto 1. To improve page rendering speed and decrease memory usage recommended to recalculate caches withoro_redirect.url_storage_cache.split_deepset to 2 (default value) or 3. Value depends on number of slugs in system - By default if there are no pre-calculated URLs in cache them will be fetched from database on the fly and put to cache.
- Interface
Oro\Bundle\ShippingBundle\Context\Builder\ShippingContextBuilderInterface:- Interface lost his
addLineItemmethod. All line item collection should be processed withsetLineItemsand related interfaceOro\Bundle\ShippingBundle\Context\LineItem\Collection\Factory\ShippingLineItemCollectionFactoryInterface.
- Interface lost his
- Entity
Oro\Bundle\WebsiteSearchBundle\Entity\IndexDecimal:- changed decimal field
value:precisionchanged from10to21.scalechanged from2to6.
- changed decimal field
- Implementation can decorate original implementation of interface
Oro\Bundle\EntityConfigBundle\Attribute\Type\AttributeTypeInterfacethat as service with tagoro_entity_config.attribute_type. - Class
Oro\Bundle\SearchBundle\Engine\OrmIndexer- The construction signature of was changed and the constructor was updated -
DbalStorer $dbalStorerparameter removed.
- The construction signature of was changed and the constructor was updated -
- Class
Oro\Bundle\CatalogBundle\EventListener\DatagridListener:- method
addCategoryRelationflagged as deprecated.
- method
- Class
BaseProductPriceRepository[?] got an abstract method:getPriceListIdsByProduct(Product $product)- that should return array of Price Lists identifiers which contains price for given product
- Api for
ProductPrice[?] entity was added. In sharding mode product prices can't be managed withoutpriceListfield, that's why inget_listactionpriceListfilter is required and in all actions ID of entities has formatProductPriceID-PriceListID.- Class
PriceManagerDeleteHandler[?] was added to correctly remove prices in sharding mode - Interface
PriceListIDContextStorageInterface[?] was added to abstract the way of storing price list id in an api context - Class
PriceListIDInContextStorage[?] was added as a storage of price list id - Class
EnableShardingOnConfigProcessor[?] was added to set sharding query hints on config and 'price_list_id = :price_list_id' condition on query - Class
EnableShardingOnQueryProcessor[?] was added to set sharding query hints and 'price_list_id = :price_list_id' condition on query - Class
LoadNormalizedProductPriceWithNormalizedIdProcessor[?] was added to normalize an output of update/create requests - Class
NormalizeInputProductPriceIdProcessor[?] was added to transform id from request in 'guid-priceListId' format to 'guid' and save 'priceListId' to context - Class
NormalizeOutputProductPriceIdProcessor[?] was added to normalize entity ids that are returned in response - Class
SaveProductPriceProcessor[?] was added to correctly save price in sharding mode - Class
StorePriceListInContextByFilterProcessor[?] was added to save priceListId from filter to context - Class
StorePriceListInContextByProductPriceProcessor[?] was added to save priceListId from ProductPrice entity to context - Interface
ProductPriceIDByContextNormalizerInterface[?] was added to abstract the way of normalizing product price ids - Class
Oro\Component\ChainProcessor\ContextInterface\ProductPriceIDByPriceListIDNormalizerwas added to transform product price id toProductPriceID-PriceListIDformat - Class
ResetPriceRuleFieldOnUpdateProcessor[?] was added to reset product price rule when one of the fields:value,quantity,unit,currencychanges
- Class
- Enabled API for ProductImage and ProductImageType and added documentation of usage in Product API.
- Added method to
SlugRepository:getRawSlugmethod to retrieve slug URL data
- Added new interface:
SluggableUrlProviderInterface
- Added new URL providers:
SluggableUrlCacheAwareProvidertakes slug URLs from persistent cacheSluggableUrlDatabaseAwareProvidertakes slug URLs from the database
- Form type
OrderDiscountItemType[?] was changed for use in popup.
- Event
oro_payment.require_payment_redirect.PAYMENT_METHOD_IDENTIFIERis no more specifically dispatched for each payment method. Use genericoro_payment.require_payment_redirectevent instead.
- Some inline underscore templates were moved to separate .html file for each template.
- Required option for layout block type 'product_prices' renamed from 'productUnitSelectionVisible' to 'isPriceUnitsVisible'
- Product images and unit information for the grid are now part of the search index. In order to see image changes, for example, immediate reindexation is required.
- Some inline underscore templates were moved to separate .html file for each template.
- Interface
DiscountInterface[?] now is fluent, please make sure that all classes which implement it return$thisforsetPromotionandsetMatchingProductsmethods
MatchedUrlDecisionMakerclass should be used instead ofFrontendHelperto check that current URL should be processed by Slugable Url matcher or generator
- Class
FrontendProductDatagridListener[?]- dependency on
RegistryInterfacewill soon be removed.getProductRepositoryandgetProductUnitRepositoryflagged as deprecated.
- dependency on
- Form type
OrderDiscountItemsCollectionTypeand relatedoroorder/js/app/views/discount-items-viewJS view were removed, newOrderDiscountCollectionTableType[?] andoroorder/js/app/views/discount-collection-vieware introduced.
- Class
AppliedDiscountManager- class removed, logic was moved to
AppliedPromotionManager - service of this manager removed, new
oro_promotion.applied_promotion_managerservice was created
- class removed, logic was moved to
- Class
Router[?]- removed method
setFrontendHelper,setMatchedUrlDecisionMakermethod added instead.
- removed method
- new collection form type for schedule intervals was added
ScheduleIntervalsCollectionType - new form type for schedule interval was added
ScheduleIntervalType[?]
- added API for the following entities:
- added API processors:
HandlePriceListStatusChangeProcessor[?] to handle price list status changesUpdatePriceListLexemesProcessor[?] to update price rule lexemes while saving price listBuildCombinedPriceListOnScheduleDeleteListProcessor[?] to rebuild combined price list while deleting list of price list schedulesBuildCombinedPriceListOnScheduleDeleteProcessor[?] to rebuild combined price list while deleting single price list scheduleBuildCombinedPriceListOnScheduleSaveProcessor[?] to rebuild combined price list while saving price list scheduleUpdatePriceListContainsScheduleOnScheduleDeleteListProcessor[?] to change price list contains schedule field while deleting list of price list schedulesUpdatePriceListContainsScheduleOnScheduleDeleteProcessor[?] to change price list contains schedule field while deleting single price list scheduleUpdateLexemesOnPriceRuleDeleteListProcessor[?] to update price rule lexemes while deleting list of price rulesUpdateLexemesOnPriceRuleDeleteProcessor[?] to update price rule lexemes while deleting single price ruleUpdateLexemesPriceRuleProcessor[?] to update price rule lexemes while saving price rulePriceListRelationTriggerHandlerForWebsiteAndCustomerProcessorto rebuild price lists when customer aware relational entities are modifiedPriceListRelationTriggerHandlerForWebsiteAndCustomerGroupProcessorto rebuild price lists when customer group aware relational entities are modified
- added
AddSchedulesToPriceListApiFormSubscriber[?] for adding currently created schedule to price list
- new class
VariantFieldProvider[?] was added it introduces logic to fetch variant field for certain family callinggetVariantFields(AttributeFamily $attributeFamily)method - Brand functionality to ProductBundle was added
- adding skuUppercase to Product entity - the read-only property that consists uppercase version of sku, used to improve performance of searching by SKU
- metaTitles for
Product,Category,Page,WebCatalog,Brandwere added. MetaTitle is displayed as default view page title.
- added Voter
FrontendQuotePermissionVoter[?], Checks if given Quote contains internal status, triggered only for Commerce Application. - added Datagrid Listener
FrontendQuoteDatagridListener[?], appends frontend datagrid query with proper frontend internal statuses. - added Subscriber
QuoteFormSubscriber[?], discards price modifications and free form inputs, if there are no permissions for those operations - added new permission to
Quotecategory- oro_quote_prices_override
- oro_quote_review_and_approve
- oro_quote_add_free_form_items
- added
BlankOneOf[?] constraint andBlankOneOfValidator[?] validator for validating that one of some fields in a group should be blank
- added
DefaultWebsiteSubscriberto set Default website when not provided on form.
- AuthorizeNetBundle extracted to individual package. See https://github.com/orocommerce/OroAuthorizeNetBundle for details.
- inventory API has changed. Please, see documentation for more information.
- return value of method
Oro\Bundle\OrderBundle\Manager\AbstractAddressManager:getGroupedAddresseschanged fromarraytoTypedOrderAddressCollection
- class
PayflowIPCheckListener[?]- property
$allowedIPschanged fromprivatetoprotected
- property
- subtotal and currency of payment context and its line items are optional now:
- service
oro_pricing.listener.product_unit_precisionwas changed fromdoctrine.event_listenertodoctrine.orm.entity_listener- setter methods
setProductPriceClass,setEventDispatcher,setShardManagerwere removed. To set properties, constructor used instead.
- setter methods
- class
BooleanVariantFieldValueHandler[?]- changed signature of
__constructmethod. New dependency onSymfony\Contracts\Translation\TranslatorInterfacewas added.
- changed signature of
ProductPriceFormattermethodformatProductPricechanged to expectBaseProductPriceattribute instead ofProductPrice.
- service
oro_seo.event_listener.product_form_view- dependency on
@request_stackwas removed - dependency on
@oro_entity.doctrine_helperwas removed
- dependency on
- service
oro_seo.event_listener.category_form_view- dependency on
@request_stackwas removed - dependency on
@oro_entity.doctrine_helperwas removed
- dependency on
- service
oro_seo.event_listener.page_form_view- dependency on
@request_stackwas removed - dependency on
@oro_entity.doctrine_helperwas removed
- dependency on
- service
oro_seo.event_listener.content_node_form_view- dependency on
@request_stackwas removed - dependency on
@oro_entity.doctrine_helperwas removed
- dependency on
- updated entity
Quote[?]- Added constant
FRONTEND_INTERNAL_STATUSESthat holds all available internal statuses for Commerce Application - Added new property
pricesChanged, that indicates if prices were changed.
- Added constant
- following ACL permissions moved to
Quotecategory- oro_quote_address_shipping_customer_use_any
- oro_quote_address_shipping_customer_use_any_backend
- oro_quote_address_shipping_customer_user_use_default
- oro_quote_address_shipping_customer_user_use_default_backend
- oro_quote_address_shipping_customer_user_use_any
- oro_quote_address_shipping_customer_user_use_any_backend
- oro_quote_address_shipping_allow_manual
- oro_quote_address_shipping_allow_manual_backend
- oro_quote_payment_term_customer_can_override
- redesign of Shipping Rule edit/create pages - changed Shipping Method Configurations block templates and functionality
- subtotal and currency of shipping context and its line items are optional now:
- layout
oro_payment_method_order_reviewis deprecated since v1.3, will be removed in v1.6. Use 'oro_payment_method_order_submit' instead.
- class
CheckoutVoter[?]- method
getSecurityFacadewas removed,getAuthorizationCheckermethod was added instead
- method
- class
FlatRateMethodIdentifierGeneratoris removed in favor ofPrefixedIntegrationIdentifierGenerator. - previously deprecated
FlatRateMethodFromChannelBuilder[?] is removed now. UseFlatRateMethodFromChannelFactory[?] instead.
- removed protected method
AbstractOrderAddressType::getDefaultAddressKey[?]. Please, use methodTypedOrderAddressCollection::getDefaultAddressKeyinstead
- class
Gateway[?]- constants
PRODUCTION_HOST_ADDRESS,PILOT_HOST_ADDRESS,PRODUCTION_FORM_ACTION,PILOT_FORM_ACTIONremoved.
- constants
- previously deprecated
PayPalPasswordTypeis removed. UseOroEncodedPlaceholderPasswordTypeinstead. - previously deprecated interface
CardTypesDataProviderInterface[?] is removed. UseCreditCardTypesDataProviderInterface[?] instead.
- previously deprecated class
PaymentMethodProvidersRegistry[?] is removed,CompositePaymentMethodProvider[?] should be used instead. - previously deprecated method
PaymentStatusProvider::computeStatus[?] is removed. UsegetPaymentStatusinstead. - unused trait
CountryAwarePaymentConfigTrait[?] was removed.
- form type
PriceListScheduleType[?] was removed, useScheduleIntervalType[?] instead - constraint
SchedulesIntersection[?] was removed, useScheduleIntervalsIntersection[?] instead - validator
SchedulesIntersectionValidator[?] was removed, useScheduleIntervalsIntersectionValidator[?] instead - js
oropricing/js/app/views/price-list-schedule-viewview was removed, useorocron/js/app/views/schedule-intervals-viewinstead
- class
ProductStrategy[?]- method
setSecurityFacadewas removed,setTokenAccessormethod was added instead
- method
- removed protected method
QuoteAddressType::getDefaultAddressKey[?]. Please, use methodTypedOrderAddressCollection::getDefaultAddressKeyinstead
- service
oro_shipping.shipping_method.registrywas removed, neworo_shipping.shipping_method_providerservice is used instead - class
ShippingMethodRegistrywas removed, logic was moved toCompositeShippingMethodProvider[?]- method
getTrackingAwareShippingMethodsmoved to classTrackingAwareShippingMethodsProvider[?]
- method
- previously deprecated interface
IntegrationMethodIdentifierGeneratorInterfaceis removed along with its implementations and usages. UseIntegrationIdentifierGeneratorInterfaceinstead. - previously deprecated
ShippingMethodsConfigsRuleRepository::getConfigsWithEnabledRuleAndMethodmethod is removed now. UsegetEnabledRulesByMethodmethod instead. - previously deprecated
AbstractIntegrationRemovalListeneris removed now. UseIntegrationRemovalListenerinstead. OroShippingBundle:Form:type/result.html.twigandOroShippingBundle:Form:type/selection.html.twig- removed
- class
UPSMethodIdentifierGeneratoris removed in favor ofPrefixedIntegrationIdentifierGenerator.
- class
ReindexDemoDataListener[?] was removed,ReindexDemoDataFixturesListener[?] class is used instead
- content Blocks functionality was added. Please, see documentation for more information.
CHARGE_AUTHORIZED_PAYMENTSpermission was added for possibility to charge payment transaction- capture button for payment authorize transactions was added in Payment History section, Capture button for order was removed
- if you have implemented a form that helps configure your custom shipping method (like the UPS integration form that is designed for the system UPS shipping method), you might need your custom shipping method validation. The
ShippingMethodValidatorInterface[?] andoro_shipping.method_validator.basicservice were created to handle this. To add a custom logics, add a decorator for this service. Please refer tooro_shipping.method_validator.decorator.basic_enabled_shipping_methods_by_rulesexample. - the
ShippingRuleViewMethodTemplateListener[?] was created, and can be used for providing template of a shipping method on a shipping rule view page.
productUnitSelectionVisibleoption of theProductPricesType[?] is required now.
- the
CategoryRepository::getChildrenWithTitles[?] was deprecated, useCategoryRepository::getChildren[?] instead.
- the
FlatRateMethodFromChannelBuilder[?] was deprecated, useFlatRateMethodFromChannelFactory[?] instead.
- form type
PayPalPasswordType[?] is deprecated, will be removed in v1.3. Please useOroEncodedPlaceholderPasswordTypeinstead. - interface
CardTypesDataProviderInterface[?] is deprecated, will be removed in v1.3. UseCreditCardTypesDataProviderInterface[?] instead.
- for supporting same approaches for working with payment methods,
PaymentMethodProvidersRegistryInterface[?] and its implementation were deprecated. Related deprecation isPaymentMethodProvidersPass[?].CompositePaymentMethodProvider[?] which implementsPaymentMethodProviderInterface[?] was added instead.
ShippingMethodsConfigsRuleRepository::getConfigsWithEnabledRuleAndMethod[?] method deprecated because it completely duplicategetEnabledRulesByMethod- the
IntegrationMethodIdentifierGeneratorInterface[?] was deprecated, theIntegrationIdentifierGeneratorInterfaceshould be used instead.
- the class
MoneyOrder[?] constantTYPEwas removed.
oro_order_captureoperation was removed,oro_order_payment_transaction_captureshould be used instead
- JS credit card validators were moved to
PaymentBundle. List of moved components:oropaypal/js/lib/jquery-credit-card-validatororopaypal/js/validator/credit-card-expiration-dateoropaypal/js/validator/credit-card-expiration-date-not-blankoropaypal/js/validator/credit-card-numberoropaypal/js/validator/credit-card-typeoropaypal/js/adapter/credit-card-validator-adapter
- the
AjaxProductPriceController::getProductPricesByCustomer[?] method was removed, logic was moved togetProductPricesByCustomerAction - the
AjaxPriceListController::getPriceListCurrencyList[?] method was removed, logic was moved togetPriceListCurrencyListActionmethod
- the following methods in class
AjaxUPSController[?] were renamed: - the following properties in class
UPSTransport[?] were renamed:$testMode[?] is removed, use$upsTestModeinstead$apiUser[?] is removed, use$upsApiUserinstead$apiPassword[?] is removed, use$upsApiPasswordinstead$apiKey[?] is removed, use$upsApiKeyinstead$shippingAccountNumber[?] is removed, use$upsShippingAccountNumberinstead$shippingAccountName[?] is removed, use$upsShippingAccountNameinstead$pickupType[?] is removed, use$upsPickupTypeinstead$unitOfWeight[?] is removed, use$upsUnitOfWeightinstead$country[?] is removed, us$upsCountryinstead$invalidateCacheAt[?] is removed, use$upsInvalidateCacheAtinstead
- the
CategoryBreadcrumbProviderwas added as a data provider for breadcrumbs.
commerceconfigurable permission was added for View and Edit pages of the Customer Role in backend area (aka management console) (see configurable-permissions.md for details.commerce_frontendconfigurable permission was added for View and Edit pages of the Customer Role in frontend area (aka front store)(see configurable-permissions.md for details.
- added implementation of payment through integration.
- based on the changes in
PaymentBundle, the following classes were added:MoneyOrderMethodProviderthat provides Money Order payment methods.MoneyOrderMethodViewProviderthat provides Money Order payment method views.
- payment history section with payment transactions for current order was added to the order view page. The
VIEW_PAYMENT_HISTORYpermission was added for viewing payment history section.
- implementation was changed using IntegrationBundle (refer to PaymentBundle and IntegrationBundle for details):
- Class
PayPalSettings[?] was created instead ofConfiguration - Class
PayPalExpressCheckoutPaymentMethod[?] was added instead of removed classesPayflowExpressCheckout,PayPalPaymentsProExpressCheckout - Class
PayPalCreditCardPaymentMethod[?] was added instead of removed classesPayflowGateway,PayPalPaymentsPro - Class
PayPalExpressCheckoutPaymentMethodView[?] was added instead of removed classesPayflowExpressCheckout,PayPalPaymentsProExpressCheckout - Class
PayPalCreditCardPaymentMethodView[?] was added instead of removed classesPayflowGateway,PayPalPaymentsPro
- Class
- according to changes in PaymentBundle were added:
CreditCardMethodProvider[?] for providing PayPal Credit Card Payment MethodsCreditCardMethodViewProvider[?] for providing PayPal Credit Card Payment Method ViewsExpressCheckoutMethodProvider[?] for providing PayPal Express Checkout Payment MethodsExpressCheckoutMethodViewProvider[?] for providing PayPal Express Checkout Payment Method Views
- added implementation of payment through integration.
- the organization ownership type was added for the
PaymentMethodsConfigsRuleentity. - in order to have possibility to create more than one payment method of the same type, the PaymentBundle was significantly changed with backward compatibility break:
- A new
PaymentMethodProviderInterfaceinterface was added. This interface should be implemented in any payment method provider class that is responsible for providing of any payment method. - A new
PaymentMethodViewProviderInterfaceinterface was added. This interface should be implemented in any payment method view provider class that is responsible for providing of any payment method view. - Any payment method provider should be registered in the service definitions with tag oro_payment.payment_method_provider.
- Any payment method view provider should be registered in the service definitions with tag oro_payment.payment_method_view_provider.
- Each payment method provider should provide one or more payment methods which should implement
PaymentMethodInterface. - Each payment method view provider should provide one or more payment method views which should implement
PaymentMethodViewInterface. - To aggregate the shared logic of all payment method providers, the
AbstractPaymentMethodProviderwas created. Any new payment method provider should extend this class. - To aggregate the shared logic of all payment method view providers, the
AbstractPaymentMethodViewProviderwas created. Any new payment method view provider should extend this class.
- A new
- added implementation of payment through integration.
- class
PaymentTermView[?] now has two additional methods due to implementingPaymentMethodViewInterface[?]- getAdminLabel() is used to display labels in admin panel
- getPaymentMethodIdentifier() used to properly display different methods in frontend
- added classes that can decorate
Product[?] to have virtual fields:VirtualFieldsProductDecoratorFactory[?] is the class that should be used to create a decoratedProductVirtualFieldsProductDecorator[?] is the class that decoratesProductVirtualFieldsSelectQueryConverter[?] this converter is used inside ofVirtualFieldsProductDecoratorVirtualFieldsProductQueryDesigner[?] this query designer is used inside ofVirtualFieldsProductDecorator
- added
RuleInterface[?] this interface should now be used for injection instead ofRulein bundles that implementRuleBundlefunctionality - added classes for handling enable/disable
Ruleactions - use them to define corresponding services - added
RuleActionsVisibilityProviderthat should be used to define action visibility configuration in datagrids withRuleentity fields
IntegrationRemovalListenerclass was created to be used instead ofAbstractIntegrationRemovalListener
- Check UPS Connection button was added on UPS integration page. Please, see documentation for more information.
- new
WebCatalogAwareInterfacebecame available for entities which are aware ofWebCatalogs. - new
WebCatalogUsageProviderInterfaceinterface:- provides information about assigned
WebCatalogsto given entities (passed as an argument) - provides information about usage of
WebCatalogby id
- provides information about assigned
- the
WebCatalogBreadcrumbDataProviderclass was created.getItemsmethod returns breadcrumbs array
- the
CategoryExtensionclass changed:- The construction signature of was changed and the constructor was updated with the new
ContainerInterface $containerparameter.
- The construction signature of was changed and the constructor was updated with the new
- the bundle [?] was moved from the
OroCommercepackage into theOroCRM Customer Portalpackage. - the
MenuExtensionclass was updated with the following change:- The construction signature of was changed and the constructor accepts only one
ContainerInterface $containerparameter.
- The construction signature of was changed and the constructor accepts only one
-
the bundle moved from the
OroCommercepackage into theOroCRM Customer Portalpackage. -
the
FrontendOwnerTreeProvider::_constructmethod was added with the following signature:__construct( ManagerRegistry $doctrine, DatabaseChecker $databaseChecker, CacheProvider $cache, MetadataProviderInterface $ownershipMetadataProvider, TokenStorageInterface $tokenStorage ) -
the construction signature of the
CustomerExtensionclass was changed and the constructor accepts only oneContainerInterface $containerparameter.
- the bundle [?] was renamed to
FlatRateShippingBundle
- the bundle [?] moved from the
OroCommercepackage into theOroCRM Customer Portalpackage.
- the service definition for
oro_frontend_localization.extension.transtation_packages_providerwas updated in a following way:- the class changed to
UPSTransport - the publicity set to
false
- the class changed to
- the bundle [?] implementation was changed using
IntegrationBundle(refer toPaymentBundleandIntegrationBundlefor details).
- implementation was changed using IntegrationBundle (refer to PaymentBundle and IntegrationBundle for details).
- implementation was changed using IntegrationBundle (refer to PaymentBundle and IntegrationBundle for details).
- PaymentTerm implementation was changed using IntegrationBundle (refer to PaymentBundle and IntegrationBundle for details).
- class
CombinedPriceListRepository[?] changes:- changed the return type of
getCombinedPriceListsByPriceListmethod fromBufferedQueryResultIteratortoBufferedQueryResultIteratorInterface - changed the return type of
getCombinedPriceListsByPriceListsmethod fromBufferedQueryResultIteratortoBufferedQueryResultIteratorInterface - changed the return type of
getCPLsForPriceCollectByTimeOffsetmethod fromBufferedQueryResultIteratortoBufferedQueryResultIteratorInterface
- changed the return type of
- class
PriceListCustomerFallbackRepository[?] changes:- changed the return type of
getCustomerIdentityByGroupmethod fromBufferedQueryResultIteratortoBufferedQueryResultIteratorInterface
- changed the return type of
- class
PriceListCustomerGroupFallbackRepository[?] changes:- changed the return type of
getCustomerIdentityByWebsitemethod fromBufferedQueryResultIteratortoBufferedQueryResultIteratorInterface
- changed the return type of
- class
PriceListRepository[?] changes:- changed the return type of
getPriceListsWithRulesmethod fromBufferedQueryResultIteratortoBufferedQueryResultIteratorInterface
- changed the return type of
- class
PriceListToCustomerGroupRepository[?] changes:- changed the return type of
getCustomerGroupIteratorByDefaultFallbackmethod fromBufferedQueryResultIteratortoBufferedQueryResultIteratorInterface - changed the return type of
getIteratorByPriceListmethod fromBufferedQueryResultIteratortoBufferedQueryResultIteratorInterface
- changed the return type of
- class
PriceListToCustomerRepository[?] changes:- changed the return type of
getCustomerIteratorByDefaultFallbackmethod fromBufferedQueryResultIteratortoBufferedQueryResultIteratorInterface - changed the return type of
getCustomerWebsitePairsByCustomerGroupIteratormethod fromBufferedQueryResultIteratortoBufferedQueryResultIteratorInterface - changed the return type of
getIteratorByPriceListmethod fromBufferedQueryResultIteratortoBufferedQueryResultIteratorInterface
- changed the return type of
- class
PriceListToWebsiteRepository[?] changes:- changed the return type of
getWebsiteIteratorByDefaultFallbackmethod fromBufferedQueryResultIteratortoBufferedQueryResultIteratorInterface
- changed the return type of
- the following methods were updated:
AbstractTaxCode::setCreatedAt(pass\DateTimeas a first argument of the method instead ofmixed)AbstractTaxCode::setUpdatedAt(pass\DateTimeas a first argument of the method instead ofmixed)Tax::setCreatedAt(pass\DateTimeas a first argument of the method instead ofmixed)Tax::setUpdatedAt(pass\DateTimeas a first argument of the method instead ofmixed)TaxJurisdiction::setCreatedAt(pass\DateTimeas a first argument of the method instead ofmixed)TaxJurisdiction::setUpdatedAt(pass\DateTimeas a first argument of the method instead ofmixed)TaxRule::setCreatedAt(pass\DateTimeas a first argument of the method instead ofmixed)TaxRule::setUpdatedAt(pass\DateTimeas a first argument of the method instead ofmixed)ZipCode::setCreatedAt(pass\DateTimeas a first argument of the method instead ofmixed)ZipCode::setUpdatedAt(pass\DateTimeas a first argument of the method instead ofmixed)
- in
AbstractCustomerPartialUpdateDriver, the return type of thegetCustomerVisibilityIteratormethod changed fromBufferedQueryResultIteratortoBufferedQueryResultIteratorInterface.
- the bundle [?] moved from the
OroCommercepackage into theOroCRM Customer Portalpackage. - the
WebsiteBundlemoved from theOroCommercepackage into theOroCRM Customer Portalpackage. - the
OroWebsiteExtensionclass changed:- The construction signature of was changed and the constructor was updated to have only one parameter:
ContainerInterface $container.
- The construction signature of was changed and the constructor was updated to have only one parameter:
- the
WebsitePathExtensionclass changed:- The construction signature of was changed and the constructor was updated to have only one parameter:
ContainerInterface $container.
- The construction signature of was changed and the constructor was updated to have only one parameter:
- the
Driver::writeItemandDriver::flushWritesshould be used instead ofDriver::saveItems
- the
CategoryProvider::getBreadcrumbsmethod is deprecated. Please use CategoryBreadcrumbProvider::getItems()` instead.
- in the
/api/inventorylevelsREST API resource, theproductUnitPrecision.unit.codefilter was marked as deprecated. TheproductUnitPrecision.unit.idfilter should be used instead.
AbstractIntegrationRemovalListenerwas deprecated,IntegrationRemovalListenerwas created instead.
- the
CategoryExtension::setContainermethod was removed. - the
CategoryExtensionclass changed:- The
setContainermethod was removed.
- The
- the
CategoryPageVariantTypewas removed and the logic moved toPageVariantTypeExtension
- the property
protected $securityProviderwas removed from theCustomerExtensionclass. - the
FrontendCustomerUserRoleOptionsProviderclass was removed and replaced with:- FrontendCustomerUserRoleCapabilitySetOptionsProvider` for getting capability set options
FrontendCustomerUserRoleTabOptionsProviderfor getting tab options
- the
Configurationclass was removed. UseMoneyOrderSettingsentity that extends theTransportclass to store payment integration properties.
- implementation was changed using IntegrationBundle (refer to PaymentBundle and IntegrationBundle for details):
- Class
Configurationwas removed and insteadPayPalSettings[?] was created - entity that implementsTransport[?] to store paypal payment integration properties - Classes
PayflowExpressCheckoutConfig,PayPalPaymentsProExpressCheckoutConfigwere removed and instead simple parameter bag objectPayPalExpressCheckoutConfig[?] is being used for holding payment integration properties that are stored in PayPalSettings - Classes
PayflowGatewayConfig,PayPalPaymentsProConfigwere removed and instead simple parameter bag objectPayPalCreditCardConfig[?] is being used for holding payment integration properties that are stored in PayPalSettings - Classes
PayflowExpressCheckout,PayPalPaymentsProExpressCheckoutwere removed and instead was addedPayPalExpressCheckoutPaymentMethod[?] - Classes
PayflowGateway,PayPalPaymentsProwere removed and instead was addedPayPalCreditCardPaymentMethod[?] - Classes
PayflowExpressCheckout,PayPalPaymentsProExpressCheckoutwere removed and instead was addedPayPalExpressCheckoutPaymentMethodView[?] - Classes
PayflowGateway,PayPalPaymentsProwere removed and instead was addedPayPalCreditCardPaymentMethodView[?]
- Class
- in order to have possibility to create more than one payment method of same type PaymentBundle was significantly changed with breaking backwards compatibility.
- Class
PaymentMethodRegistrywas removed, logic was moved toPaymentMethodProvidersRegistry[?] which implementsPaymentMethodProvidersRegistryInterface[?] and this registry is responsible for collecting data from all payment method providers - Class
PaymentMethodViewRegistrywas removed, logic was moved toCompositePaymentMethodViewProvider[?] which implementsPaymentMethodViewProviderInterface[?] this composite provider is single point to provide data from all payment method view providers
- Class
- the following classes (that are related to the actions that disable/enable
PaymentMethodsConfigsRule) were abstracted and moved to theRuleBundle(see theRuleBundle) section for more information):StatusDisableMassAction(is replaced withStatusEnableMassActionin theRuleBundle)StatusEnableMassAction(is replaced withStatusEnableMassActionin theRuleBundle)StatusMassActionHandler(is replaced withStatusMassActionHandlerin theRuleBundle)PaymentRuleActionsVisibilityProvider(is replaced withPaymentRuleActionsVisibilityProviderin theRuleBundle)
- the following classes (that are related to decorating
Productwith virtual fields) were abstracted and moved to theProductBundle(see theProductBundlesection for more information): - in order to have possibility to create more than one payment method of the same type, the PaymentBundle was significantly changed with backward compatibility break:
- The
PaymentMethodRegistryclass was replaced with thePaymentMethodProvidersRegistrywhich implements aPaymentMethodProvidersRegistryInterfaceand this registry is responsible for collecting data from all payment method providers. - The
PaymentMethodViewRegistryclass was replaced with theCompositePaymentMethodViewProviderwhich implements aPaymentMethodViewProviderInterface. This composite provider is a single point to provide data from all payment method view providers.
- The
- Class
Configurationis removed,PaymentTermSettings[?] was created instead - PaymentTerm implementation was changed using IntegrationBundle (refer to PaymentBundle and IntegrationBundle for details).
- Class
Configurationwas removed and insteadPaymentTermSettings[?] was created - entity that implementsTransportto store payment integration properties - Class
PaymentTermConfigwas removed and instead simple parameter bag objectParameterBagPaymentTermConfigis used for holding payment integration properties that are stored in PaymentTermSettings
- Class
- class
PriceListConfigConverter[?] changes:- constant
PRIORITY_KEYwas removed, useSORT_ORDER_KEYinstead
- constant
- class
BasePriceListRelation[?] changes:- property
$prioritywas removed, use$sortOrderinstead - methods
getPriorityandsetPrioritywere removed, usegetSortOrderandsetSortOrderinstead accordingly
- property
- class
PriceListConfig[?] changes:- property
$prioritywas removed, use$sortOrderinstead - methods
getPriorityandsetPrioritywere removed, usegetSortOrderandsetSortOrderinstead accordingly
- property
- interface
PriceListAwareInterface[?] changes:- method
getPrioritywas removed, usegetSortOrderinstead
- method
- class
PriceListSelectWithPriorityType[?] changes:- field
prioritywas removed. Field_positionfromSortableExtensionis used instead.
- field
- removed constructor of
ProductPageVariantType[?].- corresponding logic moved to
PageVariantTypeExtension[?]
- corresponding logic moved to
- removed property
websitein favour ofscopescollection using fromRedirect[?] class
- the following classes that are related to decorating
Productwith virtual fields) were abstracted and moved to theProductBundle(see theProductBundlesection for more information):SelectQueryConverterShippingProductQueryDesignerProductDecorator- In the
DecoratedProductLineItemFactoryclass, the only dependency is nowVirtualFieldsProductDecoratorFactory.
- the classes that are related to actions that disable/enable
ShippingMethodsConfigsRulewere abstracted and moved to theRuleBundle(see theRuleBundle) section for more information):- Removed
StatusDisableMassActionand switched definition toStatusEnableMassActionin theRuleBundle StatusEnableMassActionand switched definition toStatusEnableMassActionin theRuleBundleStatusMassActionHandlerand switched definition toStatusMassActionHandlerin theRuleBundleShippingRuleActionsVisibilityProviderand switched definition toRuleActionsVisibilityProviderin theRuleBundle
- Removed
- the class
InvalidateCacheScheduleCommandwas removed,InvalidateCacheScheduleCommandshould be used instead - the class
InvalidateCacheAtHandlerwas removed,InvalidateCacheActionHandlershould be used instead - resource
invalidateCache.html.twigwas removed, use corresponding resource from CacheBundle - resource
invalidate-cache-button-component.jswas removed , use corresponding resource from CacheBundle
- the
protected $websiteManagerproperty was removed fromOroWebsiteExtension - the
protected $websiteUrlResolverproperty was removed fromWebsitePathExtension
- the following method
IndexationRequestListener::getEntitiesWithUpdatedIndexedFieldswas removed
[f] - Fully covered with oro/upgrade-toolkit
[p] - Partially covered with oro/upgrade-toolkit