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.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 a new backend
ordersubtotals
API resource representing calculated subtotals for a specific order. - Added an
orderSubtotals
relation for the backendorders
API resource. - Enabled an
enable_validation
flag for the backendorders
API resource.
- Added a new frontend
inventory-switcher
filter.
- Added a new backend
customerprices
API resource. - Added a new backend
productkitprices
API resource.
- Added the ability to show users in the search autocomplete field on the storefront suggestions
- Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Entity\Suggestion
entity class; - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Entity\ProductSuggestion
entity class;
- Added
- Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Async\Generation\GenerateSuggestionsProcessor
for 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\GenerateSuggestionPhrasesProcessor
for 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\PersistSuggestionPhrasesProcessor
for 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\PersistSuggestionProductRelationProcessor
for processing MQ sent messages by processor(see above) to persist relation between suggestion and product to the database. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Async\Deletion\DeleteIrrelevantSuggestionsProcessor
for 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\DeleteIrrelevantProductSuggestionsChunk
for processing MQ messages to remove product suggestions by their ids from the database. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Async\Deletion\DeleteOrphanSuggestionsProcessor
for 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\DeleteOrphanSuggestionsChunkProcessor
for processing MQ messages to remove suggestions by their ids from the database. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Event\SuggestionPersistEvent
dispatching inoro_website_search_suggestion.suggestion_persister
service. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Event\ProductSuggestionPersistEvent
dispatching inoro_website_search_suggestion.product_suggestion_persister
service. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Event\SuggestionDeletedEvent
dispatching inoro_website_search_suggestion.async.delete_orphan_suggestions_chunk_processor
processor. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\Event\ProductSuggestionDeletedEvent
dispatching inoro_website_search_suggestion.async.delete_irrelevant_product_suggestions_chunk_processor
processor. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\EventListener\SuggestionIndexationListener
that handles Suggestion persisting and deleting events to start search reindex operation for search engine. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\EventListener\Doctrine\CreateProductSuggestionListener
that 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\SuggestionIndexationListener
take into account suggestion fields for the search engine for the storefront. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\EventListener\WebsiteSearch\ProductSuggestionRestrictIndexListener
filter suggestions by organization and localization for every website for storefront search engine. - Added
\Oro\Bundle\WebsiteSearchSuggestionBundle\EventListener\WebsiteSearchSuggestionFeatureToggleListener
listen to feature status changes and send messages to MQ for suggestions generation when feature has been enabled.
- 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_as
system configuration option.
- Changed entity config fallback logic - substituted system config fallback on theme configuration fallback as default.
- Filtering for the
inventory status
product attribute was enabled.
- Changed the type of
oro_web_catalog.empty_search_result_page
system config setting fromarray
toscalar
to get rid of serialized objects inoro_config_value
table.
- Added the ability to start and finish checkout with product kit line items:
- Added
\Oro\Bundle\CheckoutBundle\Entity\CheckoutProductKitItemLineItem
entity class; - added
\Oro\Bundle\CheckoutBundle\Entity\CheckoutLineItem::$kitItemLineItems
association and\Oro\Bundle\CheckoutBundle\Entity\CheckoutLineItem::$checksum
.
- Added
- Added
\Oro\Bundle\CheckoutBundle\EventListener\ValidateCheckoutOnStartEventListener
,\Oro\Bundle\CheckoutBundle\EventListener\ValidateCheckoutPreOrderCreateEventListener
,\Oro\Bundle\CheckoutBundle\EventListener\ValidateCheckoutBeforeOrderCreateEventListener
checkout 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\CheckoutProductKitItemLineItem
that are checked in the listeners mentioned above. - Added constraint validator decorator
\Oro\Bundle\CheckoutBundle\Validator\Constraints\CheckoutAwareValidatorDecorator
providing the ability to restrict the decorated validator of a checkout or checkout line item by certain checkout steps. - The
Oro\Bundle\CheckoutBundle\Entity\Checkout::$lineItemGroupShippingData
was 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\Order
entity class:- Added
\Oro\Bundle\OrderBundle\Entity\OrderProductKitItemLineItem
entity class; - added
\Oro\Bundle\OrderBundle\Entity\OrderLineItem::$kitItemLineItems
association and\Oro\Bundle\OrderBundle\Entity\OrderLineItem::$checksum
.
- Added
- Added
\Oro\Bundle\OrderBundle\Entity\OrderProductKitItemLineItem
to backoffice and storefront API. - Added
\Oro\Bundle\OrderBundle\Entity\OrderHolderInterface
to represent order holder classes. - Added the
readonly
attribute 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
orderlineitems
andorderproductkititemlineitems
API 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\ProductPriceCriteriaFactory
as 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\MatchedProductPriceProviderInterface
implemented in\Oro\Bundle\PricingBundle\Provider\ProductPriceProvider::getMatchedProductPrices
to get a collection of\Oro\Bundle\PricingBundle\Model\ProductPriceInterface
product prices. - Added
\Oro\Bundle\PricingBundle\ProductKit\ProductPriceCriteria\ProductKitPriceCriteria
and\Oro\Bundle\PricingBundle\ProductKit\ProductPriceCriteria\ProductKitItemPriceCriteria
product price criteria models for passing to the product price provider. - Added
\Oro\Bundle\PricingBundle\ProductKit\ProductPrice\ProductKitPriceDTO
and\Oro\Bundle\PricingBundle\ProductKit\ProductPrice\ProductKitItemPriceDTO
as the DTO representing a product kit price. - Added
\Oro\Bundle\PricingBundle\Provider\PriceByMatchingCriteria\ProductPriceByMatchingCriteriaProvider
as 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\ProductLineItemPriceProvider
as the main entry point for getting product line item prices.
- Added
\Oro\Bundle\ProductBundle\Event\DatagridKitItemLineItemsDataEvent
as the event for collecting product kit item line items data for the product line items storefront datagrids. - Added
\Oro\Bundle\ProductBundle\Filter\ComposedSkuStringFilter
for 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\ProductStatusListener
that switches status and inventory status of a product kit depending on its kit item products. - Added
\Oro\Bundle\ProductBundle\ProductKit\EventListener\SearchProductKitListener
that schedule index operation for the product kit for the back-office. - Added
\Oro\Bundle\ProductBundle\ProductKit\EventListener\WebsiteSearchReindexProductKitListener
that schedule index operation for the product kit for the storefront. - Added
\Oro\Bundle\ProductBundle\EventListener\WebsiteSearchProductPreloadingIndexerListener
that 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_view
option from the system configuration is not used anymore. - Added new options fields to
product_segment
content 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\ProductUnitChoiceType
form 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\PaymentKitItemLineItem
model to make\Oro\Bundle\PaymentBundle\Context\PaymentLineItem
store payment kit item line items.
- Added
\Oro\Bundle\RFPBundle\Provider\ProductRFPAvailabilityProvider
instead of the deprecated\Oro\Bundle\RFPBundle\Provider\ProductAvailabilityProvider
. - 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\RequestProductKitItemLineItem
to represent product kit item line item in\Oro\Bundle\RFPBundle\Entity\RequestProduct
. - Added
\Oro\Bundle\RFPBundle\Form\Type\Frontend\RequestProductItemType
form type to decouple it from the form type used in back-office. - Added
\Oro\Bundle\RFPBundle\Provider\RequestProductLineItemTierPricesProvider
that provides tier product prices for the request product items of the specified request entity. - Updated
request_create_confirmation
email template to extend it frombase_storefront
email 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\QuoteProductKitItemLineItem
to 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::$checksum
property as a part of allowing to add the same product with the same unit code multiple times. - Added
Oro\Bundle\SaleBundle\Entity\QuoteProductDemand::$checksum
property as a part of allowing to add the same product with the same unit code multiple times. - Updated
quote_email_link
,quote_email_link_guest
email templates to extend them frombase_storefront
email template. - Added the
readonly
attribute 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\RestrictSitemapCmsPageByUrlSlugsListener
that 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\ProductKitItemLineItem
entity to the storefront API asshoppinglistkititem
resource. - Added
\Oro\Bundle\ShoppingListBundle\Entity\ProductKitItemLineItem
entity to the back-office API. - Added
\Oro\Bundle\ShoppingListBundle\EventListener\DatagridLineItemsDataValidationListener
instead of the deprecated\Oro\Bundle\CheckoutBundle\EventListener\DatagridLineItemsDataViolationsListener
. - Added
\Oro\Bundle\ShoppingListBundle\Validator\Constraints\ProductKitItemProductHasPrice
validation constraint for checking if product kit item product has price. - Added
Oro\Bundle\ShoppingListBundle\Entity\LineItem::$checksum
property as a part of allowing to add the same product with the same unit code multiple times. - Added
Oro\Bundle\ShoppingListBundle\Entity\ShoppingList::$currency
property. - Added
Oro\Bundle\ShoppingListBundle\Entity\ShoppingListTotal::$customerUser
relation 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\KitAdjustResolver
resolver to adjust tax amount for product kits.
- Added
\Oro\Bundle\VisibilityBundle\EventListener\DatagridLineItemsDataVisibilityListener
and\Oro\Bundle\VisibilityBundle\EventListener\DatagridLineItemsDataVisibilityPrefetchListener
for adding visibility data to the product line items storefront datagrids. - Added
is_visible_product
TWIG function for checking if a product is visible.
- Added a new localizable
labels
field 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
header
field to\Oro\Bundle\CMSBundle\Entity\ImageSlide
. - Added a new twig function
oro_cms_image_slide_image
that returns the URL to the slider image using a predefined fallback strategy. - Added the
Oro\Bundle\CMSBundle\Validator\Constraints\HasAtLeastOneSizeImage
constraint and\Oro\Bundle\CMSBundle\Validator\Constraints\HasAtLeastOneSizeImageValidator
validator to ensure at least one size of image is selected in a group. - Added the
Oro\Bundle\CMSBundle\Acl\Voter\LandingPageDeleteVoter
voter 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_page
option to the system configuration. - Added a new
doNotRenderTitle
field toOro\Bundle\CMSBundle\Form\Type\CmsPageVariantType
. - Added a new
createUrlSlug
field toOro\Bundle\CMSBundle\Form\Type\PageType
. - Added a landing page "Homepage".
- Changed
\Oro\Bundle\UPSBundle\Factory\PriceRequestFactory
to make it work with\Oro\Bundle\ShippingBundle\Entity\ProductShippingOptionsInterface
models.
- Changed
\Oro\Bundle\CheckoutBundle\Converter\ShoppingListLineItemConverter
,\Oro\Bundle\CheckoutBundle\DataProvider\Converter\CheckoutLineItemsConverter
,\Oro\Bundle\CheckoutBundle\WorkflowState\Mapper\ShoppingListLineItemDiffMapper
to take into account\Oro\Bundle\CheckoutBundle\Entity\CheckoutProductKitItemLineItem
entities. - Changed
\Oro\Bundle\CheckoutBundle\Datagrid\FrontendLineItemsGridExtension
,\Oro\Bundle\CheckoutBundle\Provider\MultiShipping\GroupedCheckoutLineItemsProvider
,\Oro\Bundle\CheckoutBundle\Provider\CheckoutLineItemsProvider
to take into account checkout line item checksum. - Changed
b2b_flow_checkout
workflow: enabled the check fororder_line_items_not_empty
action group inplace_order_definition
transition definition. - Changed
frontend-checkout-line-items-grid
checkout line items datagrid to make it show checkout product kit line items, update related frontend templates. - Updated
order_confirmation_email
email notification template to include kit item line items data.
- The action
oro_frontend_root
renders home page landing page from the System Configuration.
- Changed
\Oro\Bundle\FedexShippingBundle\Builder\ShippingPackagesByLineItemBuilderInterface::addLineItem
so it expects\Oro\Bundle\ShippingBundle\Context\ShippingLineItem
argument instead of the removed\Oro\Bundle\ShippingBundle\Context\ShippingLineItemInterface
. - Changed
\Oro\Bundle\FedexShippingBundle\Factory\FedexPackagesByLineItemsAndPackageSettingsFactoryInterface::create
so it expects a collection\Doctrine\Common\Collections\Collection
of\Oro\Bundle\ShippingBundle\Context\ShippingLineItem
entities instead of the removed\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\ShippingLineItemCollectionInterface
. - Changed
\Oro\Bundle\FedexShippingBundle\Modifier\ShippingLineItemCollectionBySettingsModifierInterface::modify
so it expects a collection\Doctrine\Common\Collections\Collection
of\Oro\Bundle\ShippingBundle\Context\ShippingLineItem
entities instead of the removed\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\ShippingLineItemCollectionInterface
.
- Changed
\Oro\Bundle\FixedProductShippingBundle\Provider\ShippingCostProvider::getCalculatedProductShippingCost
so it expects a collection\Doctrine\Common\Collections\Collection
of\Oro\Bundle\ShippingBundle\Context\ShippingLineItem
entities 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\OrderPaymentLineItemConverterInterface
so it returns a collection\Doctrine\Common\Collections\Collection
of\Oro\Bundle\PaymentBundle\Context\PaymentLineItem
instead of the removed\Oro\Bundle\PaymentBundle\Context\LineItem\Collection\PaymentLineItemCollectionInterface
. - Changed
\Oro\Bundle\OrderBundle\Converter\OrderShippingLineItemConverterInterface
so it returns a collection\Doctrine\Common\Collections\Collection
of\Oro\Bundle\ShippingBundle\Context\ShippingLineItem
instead of the removed\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\ShippingLineItemCollectionInterface
. - Changed
\Oro\Bundle\OrderBundle\Converter\BasicOrderShippingLineItemConverter
to make it work with the new shipping line item factory\Oro\Bundle\ShippingBundle\Context\LineItem\Factory\ShippingLineItemFromProductLineItemFactory
. - Changed
\Oro\Bundle\OrderBundle\Converter\BasicOrderPaymentLineItemConverter
to make it work with the new payment line item factory\Oro\Bundle\PaymentBundle\Context\LineItem\Factory\PaymentLineItemFromProductLineItemFactory
. - Updated
\Oro\Bundle\CheckoutBundle\Converter\OrderLineItemConverter
to make it create order line items with kit item line items. - Updated
\Oro\Bundle\OrderBundle\Form\Type\OrderLineItemType
to addkitItemLineItems
form 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\OrderDataStorageExtension
now 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\PaymentContextBuilderInterface
to make it work with\Oro\Bundle\PaymentBundle\Context\PaymentLineItem
instead of the removed\Oro\Bundle\PaymentBundle\Context\PaymentLineItemInterface
and\Oro\Bundle\PaymentBundle\Context\LineItem\Collection\PaymentLineItemCollectionInterface
. - Changed
\Oro\Bundle\PaymentBundle\Context\Converter\Basic\BasicPaymentContextToRulesValueConverter
to take into account\Oro\Bundle\PaymentBundle\Context\PaymentKitItemLineItem
entities. - Changed
\Oro\Bundle\PaymentBundle\Context\PaymentContextInterface::getLineItems
so it returns collection\Doctrine\Common\Collections\Collection
of\Oro\Bundle\PaymentBundle\Context\PaymentLineItem
entities 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\DecoratedProductLineItemFactory
to make it work with\Oro\Bundle\PaymentBundle\Context\PaymentKitItemLineItem
models.
\Oro\Bundle\PricingBundle\Provider\ProductLineItemProductPriceProvider
now returns prices for all enabled product units.
- Decomposed
\Oro\Bundle\ProductBundle\Model\ProductKitItemLineItemInterface
into\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_autoplay
renamed toautoplay
- field
autoplay_speed
renamed toautoplaySpeed
- field
show_dots
renamed todots
- field
enable_infinite_scroll
renamed toinfinite
- field
autoplay_speed
renamed toautoplaySpeed
- field
- Decomposed
\Oro\Bundle\ProductBundle\Model\ProductKitItemLineItemsAwareInterface
into\Oro\Bundle\ProductBundle\Model\ProductLineItemChecksumAwareInterface
. - Decomposed
\Oro\Bundle\ProductBundle\Model\ProductLineItemInterface
into\Oro\Bundle\ProductBundle\Model\ParentProductAwareInterface
. - Added product type to the response of the autocomplete search handler
\Oro\Bundle\ProductBundle\Autocomplete\ProductVisibilityLimitedSearchHandler
. - Added
getProduct
to\Oro\Bundle\ProductBundle\Model\ProductKitItemLineItemsAwareInterface
. - Added the ability to specify product unit precision property path in validation constraint
\Oro\Bundle\ProductBundle\Validator\Constraints\ProductKitItemLineItemQuantityUnitPrecision
and its validator
\Oro\Bundle\PromotionBundle\OrderTax\Mapper\OrderLineItemAfterDiscountsMapper
now 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\ProductKitItemLineItemsAwareInterface
in\Oro\Bundle\RFPBundle\Entity\RequestProduct
so it has the field$kitItemLineItems
with a collection of kit item line items. - Implemented
\Oro\Bundle\ProductBundle\Model\ProductKitItemLineItemsAwareInterface
,\Oro\Bundle\ProductBundle\Model\ProductLineItemChecksumAwareInterface
in\Oro\Bundle\RFPBundle\Entity\RequestProductItem
so it has the property$kitItemLineItems
with a collection of kit item line items and a checksum. \Oro\Bundle\RFPBundle\Form\Extension\RequestDataStorageExtension
now takes into account kit item line items when creating an RFQ from the product data storage.- Decoupled
\Oro\Bundle\RFPBundle\Form\Type\Frontend\RequestProductType
form type from the form type used in back-office. - Added additional validation groups
frontend_request_create
,frontend_request_update
to\Oro\Bundle\RFPBundle\Layout\DataProvider\RFPFormProvider
that creates an RFQ form for a storefront. - Updated email template
request_create_confirmation
with the ability to show kit item line items. - Updated
\Oro\Bundle\RFPBundle\Twig\RequestProductsExtension
to add kit item line items data to therfp_products
TWIG function used in email templates.
- Changed
\Oro\Bundle\SaleBundle\Quote\Shipping\LineItem\Converter\FirstOffers\FirstOffersQuoteToShippingLineItemConverter
and\Oro\Bundle\SaleBundle\Quote\Shipping\LineItem\Converter\SelectedOffers\SelectedOffersQuoteToShippingLineItemConverter
to 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::convertLineItems
so it returns a collection\Doctrine\Common\Collections\Collection
of\Oro\Bundle\ShippingBundle\Context\ShippingLineItem
instead of the removed\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\ShippingLineItemCollectionInterface
. - Updated
\Oro\Bundle\SaleBundle\Converter\QuoteDemandLineItemConverter
to enable the start of a checkout from a quote with product kits. - Implemented
\Oro\Bundle\ProductBundle\Model\ProductKitItemLineItemsAwareInterface
in\Oro\Bundle\SaleBundle\Entity\QuoteProduct
so it has the field$kitItemLineItems
with a collection of kit item line items. - Implemented
\Oro\Bundle\ProductBundle\Model\ProductKitItemLineItemsAwareInterface
,\Oro\Bundle\ProductBundle\Model\ProductLineItemChecksumAwareInterface
in\Oro\Bundle\SaleBundle\Model\BaseQuoteProductItem
so it has the property$kitItemLineItems
with a collection of kit item line items and a checksum. - Implemented
\Oro\Bundle\ProductBundle\Model\ProductKitItemLineItemsAwareInterface
,\Oro\Bundle\ProductBundle\Model\ProductLineItemChecksumAwareInterface
in\Oro\Bundle\SaleBundle\Entity\QuoteProductDemand
so it has the property$kitItemLineItems
with a collection of kit item line items and a checksum. \Oro\Bundle\SaleBundle\Form\Extension\QuoteDataStorageExtension
now takes into account kit item line items when creating a quote from the product data storage.- Added
verify_transition
to theb2b_quote_backoffice_default
to check a quote could be sent to a customer. orosale/js/app/components/dependent-field-component
js module supportsdata-disable-element
element 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\ShippingContextBuilderInterface
to make it work with\Oro\Bundle\ShippingBundle\Context\ShippingLineItem
instead of the removed\Oro\Bundle\PaymentBundle\Context\PaymentLineItemInterface
and\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\ShippingLineItemCollectionInterface
. - Changed
\Oro\Bundle\ShippingBundle\Converter\Basic\ShippingContextToRulesValuesConverter
to take into account\Oro\Bundle\ShippingBundle\Context\ShippingKitItemLineItem
models. - Changed
\Oro\Bundle\ShippingBundle\ExpressionLanguage\DecoratedProductLineItemFactory
to make it work with\Oro\Bundle\ShippingBundle\Context\ShippingKitItemLineItem
models. - Changed
\Oro\Bundle\ShippingBundle\Context\ShippingKitItemLineItem
to make it work with\Oro\Bundle\ShippingBundle\Model\Dimensions
and\Oro\Bundle\ShippingBundle\Model\Weight
.
- Made use of
\Symfony\Component\Validator\Constraints\GroupSequence
in\Oro\Bundle\ShoppingListBundle\Controller\Frontend\AjaxProductKitLineItemController
when creating/updating a product kit line item. - Made use of nested validation groups transforming into
\Symfony\Component\Validator\Constraints\GroupSequence
forshoppinglistitem
andshoppinglistkititem
storefront API resources. \Oro\Bundle\ShoppingListBundle\Storage\ProductDataStorage
now additionally puts kit item line items data into the product data storage.
- Renamed field
title
toaltImageText
. - Renamed field
mainImage
toextraLargeImage
.
- Added a new field
doNotRenderTitle
toOro\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\CheckoutDataProvider
instead. - Removed
\Oro\Bundle\CheckoutBundle\EventListener\DatagridLineItemsDataViolationsListener
, use\Oro\Bundle\ShoppingListBundle\EventListener\DatagridLineItemsDataValidationListener
instead. - Removed unused
\Oro\Bundle\CheckoutBundle\Event\CheckoutValidateEvent
. - Removed
\Oro\Bundle\CheckoutBundle\Provider\CheckoutSubtotalProvider
, added\Oro\Bundle\CheckoutBundle\Provider\SubtotalProvider
instead to make it work with product kit line items in checkout. - Removed
\Oro\Bundle\CheckoutBundle\Helper\CheckoutWorkflowHelper::restartCheckout
. - Removed checkout event
extendable_condition.checkout
.
- WYSIWYG editor
Removed
patchDeviceModel
method inDevidesManager
. UseupdateCalcPreviewDeviceWidth
fromDeviceManager
for update device preview width instead.
- Removed
\Oro\Bundle\InventoryBundle\EventListener\CreateOrderEventListener::onBeforeOrderCreate
that checked the inventory level of the products present in checkout, added\Oro\Bundle\InventoryBundle\Validator\Constraints\HasEnoughInventoryLevel
validation constraint instead. - Removed
\Oro\Bundle\InventoryBundle\EventListener\CreateOrderCheckUpcomingListener
that 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\LineItemValidationListener
that checked the product line items quantity to order limits. Moved to the validation.yml config in CheckoutBundle instead. - Removed
\Oro\Bundle\InventoryBundle\EventListener\LowInventoryCheckoutLineItemValidationListener
that 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\QuantityToOrderConditionListener
that 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\UpcomingLabelCheckoutLineItemValidationListener
that 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::isRunningLow
instead. - Removed
\Oro\Bundle\InventoryBundle\Validator\LowInventoryCheckoutLineItemValidator::getMessageIfLineItemRunningLow
, use\Oro\Bundle\InventoryBundle\Validator\LowInventoryCheckoutLineItemValidator::getMessageIfRunningLow
instead.
- Removed
\Oro\Bundle\OrderBundle\EventListener\Order\MatchingPriceEventListener
, its responsibility is fulfilled by\Oro\Bundle\OrderBundle\Form\Type\EventListener\SubtotalSubscriber
. - Removed
\Oro\Bundle\OrderBundle\EventListener\Order\TierPriceEventListener
, its responsibility is fulfilled by\Oro\Bundle\OrderBundle\EventListener\Order\OrderLineItemTierPricesEventListener
now that adds both tier prices for simple products and for product kits. - Removed
getMatchingPrices
,fillMatchingPrices
methods from\Oro\Bundle\OrderBundle\Pricing\PriceMatcher
, useaddMatchingPrices
instead.
- Removed
\Oro\Bundle\PaymentBundle\Context\PaymentLineItemInterface
, use\Oro\Bundle\PaymentBundle\Context\PaymentLineItem
instead. - Removed
\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\ShippingLineItemCollectionInterface
and\Oro\Bundle\PaymentBundle\Context\LineItem\Collection\Doctrine\DoctrinePaymentLineItemCollection
, use collection\Doctrine\Common\Collections\Collection
of\Oro\Bundle\PaymentBundle\Context\PaymentLineItem
entities instead. - Removed
\Oro\Bundle\PaymentBundle\Context\LineItem\Collection\Factory\PaymentLineItemCollectionFactoryInterface
and\Oro\Bundle\PaymentBundle\Context\LineItem\Collection\Doctrine\Factory\DoctrinePaymentLineItemCollectionFactory
, use\Oro\Bundle\PaymentBundle\Context\LineItem\Factory\PaymentLineItemFromProductLineItemFactoryInterface::createCollection
instead. - 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\PaymentLineItemFromProductLineItemFactory
instead.
- 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\StatusListener
instead.
- Removed unused
tierPrices
,matchedPrices
,isShippingAddressGranted
from\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. - Removed
\Oro\Bundle\SaleBundle\Quote\Pricing\QuotePriceComparator
, use\Oro\Bundle\SaleBundle\Quote\Pricing\QuotePricesComparator
(oro_sale.quote.pricing.comparator
) instead.
- Removed
\Oro\Bundle\ShippingBundle\Context\ShippingLineItemInterface
, use\Oro\Bundle\ShippingBundle\Context\ShippingLineItem
instead. - Removed
\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\ShippingLineItemCollectionInterface
and\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\Doctrine\DoctrineShippingLineItemCollection
, use collection\Doctrine\Common\Collections\Collection
of\Oro\Bundle\ShippingBundle\Context\ShippingLineItem
entities instead. - Removed
\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\Factory\ShippingLineItemCollectionFactoryInterface
and\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\Doctrine\Factory\DoctrineShippingLineItemCollectionFactory
, use\Oro\Bundle\ShippingBundle\Context\LineItem\Factory\ShippingLineItemFromProductLineItemFactoryInterface::createCollection
instead. - 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\ShippingLineItemFromProductLineItemFactory
instead. - Removed
\Oro\Bundle\ShippingBundle\Context\LineItem\Collection\ShippingOptions\Factory\ShippingOptionsLineItemCollectionFactoryDecorator
, use\Oro\Bundle\ShippingBundle\Context\LineItem\Factory\ShippingLineItemFromProductLineItemFactoryInterface::createCollection
instead
- Removed option
productsMatchedPrices
from shopping_lists_awere_container layout block type, added productLineItemsPricesByShoppingList instead - Removed methods
getMatchedPrices
,getMatchedPrice
from\Oro\Bundle\ShoppingListBundle\Layout\DataProvider\FrontendShoppingListProductsProvider
, addedgetProductLineItemPricesForShoppingLists
instead. - Removed
\Oro\Bundle\ShoppingListBundle\EventListener\DatagridLineItemsDataViolationsListener
, use\Oro\Bundle\ShoppingListBundle\EventListener\DatagridLineItemsDataValidationListener
instead. - 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\LineItemChecksumGeneratorInterface
and implementations. Use\Oro\Bundle\ProductBundle\LineItemChecksumGenerator\LineItemChecksumGeneratorInterface
instead. - Removed
\Oro\Bundle\ShoppinglistBundle\ProductKit\Checker\ProductKitAvailabilityChecker
, use\Oro\Bundle\ProductBundle\ProductKit\Checker\ProductKitAvailabilityChecker
instead. - Removed
\Oro\Bundle\ShoppinglistBundle\ProductKit\Checker\ProductKitItemAvailabilityChecker
, use\Oro\Bundle\ProductBundle\ProductKit\Checker\ProductKitItemAvailabilityChecker
instead. - Removed
\Oro\Bundle\ShoppinglistBundle\ProductKit\Checker\ProductKitItemProductAvailabilityChecker
, use\Oro\Bundle\ProductBundle\ProductKit\Checker\ProductKitItemProductAvailabilityChecker
instead. - Removed
\Oro\Bundle\ShoppinglistBundle\ProductKit\Provider\ProductKitItemsProvider
, use\Oro\Bundle\ProductBundle\ProductKit\Provider\ProductKitItemsProvider
instead. - Removed
\Oro\Bundle\ShoppinglistBundle\ProductKit\Provider\ProductKitItemProductsProvider
, use\Oro\Bundle\ProductBundle\ProductKit\Provider\ProductKitItemProductsProvider
instead.
- Removed
\Oro\Bundle\ValidationBundle\Validator\Constraints\UniqueEntity
validation constraint and validator. Use instead\Oro\Bundle\FormBundle\Validator\Constraints\UniqueEntity
.
- Added
\Oro\Bundle\WebCatalogBundle\ContentNodeUtils\Loader\ResolvedContentNodesLoader
,\Oro\Bundle\WebCatalogBundle\ContentNodeUtils\Loader\ResolvedContentVariantsLoader
to easily get resolved content nodes for specified content node ids. - Added
\Oro\Bundle\WebCatalogBundle\ContentNodeUtils\Factory\ResolvedContentNodeFactory
,\Oro\Bundle\WebCatalogBundle\ContentNodeUtils\Factory\ResolvedContentVariantFactory
to easily create\Oro\Bundle\WebCatalogBundle\Cache\ResolvedData\ResolvedContentNode
and\Oro\Bundle\WebCatalogBundle\Cache\ResolvedData\ResolvedContentVariant
models. - Added
\Oro\Bundle\WebCatalogBundle\Cache\ResolvedContentNodeNormalizer
to decrease the complexity of\Oro\Bundle\WebCatalogBundle\Cache\ContentNodeTreeCache
. - Added
\Oro\Bundle\WebCatalogBundle\ContentNodeUtils\Loader\ResolvedContentNodesLoader
to 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\ContentNodeTreeMergingResolver
that merges resolved content nodes from multiple scopes. - Added
\Oro\Bundle\WebCatalogBundle\Cache\ResolvedContentNodesMerger
to decrease the complexity of\Oro\Bundle\WebCatalogBundle\Cache\ContentNodeTreeMergingResolver
. - Added
\Oro\Bundle\WebCatalogBundle\Menu\MenuContentNodesProviderInterface
,\Oro\Bundle\WebCatalogBundle\Menu\MenuContentNodesProvider
,\Oro\Bundle\WebCatalogBundle\Menu\StorefrontMenuContentNodesProvider
and\Oro\Bundle\WebCatalogBundle\Menu\CompositeMenuContentNodesProvider
to provide an ability of getting resolved content nodes for showing in menu.
- Added Organization ownership type to the
Oro\Bundle\PricingBundle\Entity\PriceList
entity. All existing prices was moved to the first organization.
- Category. Added sort order management for Products in categories:
- New field
category_sort_order
in 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-grid
based on Category)
- New field
- Added
\Oro\Bundle\CatalogBundle\Menu\MenuCategoriesProviderInterface
,\Oro\Bundle\CatalogBundle\Menu\MenuCategoriesProvider
,\Oro\Bundle\CatalogBundle\Menu\MenuCategoriesCachingProvider
to provide an ability of getting categories data for showing in menu. - Added
\Oro\Bundle\CatalogBundle\Menu\MenuCategoriesCache
that 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
renderWysiwygContent
TWIG macro and a layout block typewysiwyg_content
for rendering WYSIWYG content on the storefront. See the How to Display WYSIWYG Field article for more information.
-
Added entity name provider for the
Page
entity.
- Added an entity name provider for the
Consent
entity. - Added
renderWysiwygContent
TWIG macro and a layout block typewysiwyg_content
for 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
Brand
entity now has its own search result template for the backend search -
Added the
product_original_filenames
feature. This feature is enabled whenoro_attachment.original_file_names_enabled
. is disabled andoro_product.original_file_names_enabled
is enabled. -
The
relevance_weight
field is added to the website search mapping for the Product entity. -
Product Collections. Added sort order management for Products in Product Collections:
- New entity
ProductCollectionSortOrder
and website search fieldassigned_to_sort_order.ASSIGN_TYPE_ASSIGN_ID
have 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-grid
based on ProductCollection)
- New entity
- Added entity name provider for the
Promotion
entity.
- Enabled the
orphanRemoval
option 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\ShippingMethodInterface
and all classes that implement this interface. - Added strict types to
Oro\Bundle\ShippingBundle\Method\ShippingMethodTypeInterface
and all classes that implement this interface. - Added strict types to
Oro\Bundle\ShippingBundle\Method\ShippingMethodProviderInterface
and all classes that implement this interface. - Added strict types to
Oro\Bundle\ShippingBundle\Method\Factory\IntegrationShippingMethodFactoryInterface
and all classes that implement this interface. - Removed unneeded classes that implement
Oro\Bundle\ShippingBundle\Method\ShippingMethodProviderInterface
and replace them withOro\Bundle\ShippingBundle\Method\Provider\Integration\ChannelShippingMethodProvider
.
- Changed
\Oro\Bundle\WebCatalogBundle\Async\WebCatalogCacheProcessor
so it builds cache starting always from the root content node. - Changed
\Oro\Bundle\WebCatalogBundle\Provider\ContentNodeProvider::getContentVariantIds
so 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
modelMixin
tomodelProps
andviewMixin
toviewProps
. An object definition of the editor type model/view was passed. AddedModelType
and ViewType properties to pass the constructor function - Changed component types naming from
text-type-builder.js
totext-type.js
. Removed-builder
in file names
- Inventory status website search index field has been renamed from
inventory_status
toinv_status
to 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
inventory
indexation group
- Price index fields have been renamed (pay attention to a dot notation):
minimal_price_CPL_ID_CURRENCY_UNIT
tominimal_price.CPL_ID_CURRENCY_UNIT
,minimal_price_CPL_ID_CURRENCY
tominimal_price.CPL_ID_CURRENCY
,minimal_price_PRICE_LIST_ID_CURRENCY_UNIT
tominimal_price.PRICE_LIST_ID_CURRENCY_UNIT
,minimal_price_PRICE_LIST_ID_CURRENCY
tominimal_price.PRICE_LIST_ID_CURRENCY
- Product search index field
product_id
has been replaced withsystem_entity_id
Oro\Bundle\ProductBundle\Provider\ProductImageFileNameProvider
is applicable ifproduct_original_filenames
feature 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_dsn
parameter 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\ContentNodeTreeCachingResolver
and\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::getRootCategory
as not needed for building a menu anymore. Instead, the\Oro\Bundle\CatalogBundle\Menu\MenuCategoriesCachingProvider
is used.
- Removed
text_with_placeholders
,wysiwyg_style
layout block types. Usewysiwyg_content
instead. - Removed app module
grapesjs-module.js
.
- Listener
oro_order.event_listener.frontend_order_datagrid
is 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
optimized
layout theme withlanding
extra 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_PATH
has been renamed tocategory_paths.CATEGORY_PATH
- Website search field
assigned_to_ASSIGN_TYPE_ASSIGN_ID
has been renamed toassigned_to.ASSIGN_TYPE_ASSIGN_ID.CATEGORY_PATH
- Website search field
manually_added_to_ASSIGN_TYPE_ASSIGN_ID
has been renamed tomanually_added_to.ASSIGN_TYPE_ASSIGN_ID
- In order to improve page performance, some JS-components within product item blocks are initialized only on
click
andfocusin
DOM-events. See Initialize Components on DOM events - Changes in
/admin/api/files/{id}
REST API resource:- the attribute
filePath
structure 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-grid
datagrid 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_ID
has been renamed tovisibility_customer.CUSTOMER_ID
- Changed
oro_website_search.event_listener.orm.fulltext_index_listener
to usedoctrine.dbal.search_connection
- Changed
oro_website_search.fulltext_index_manager
to 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
percent
field of theorderdiscounts
API 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_page
option 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,isAllowed
flag and collected errors if any.
- Added
is_checkout_state_valid
condition. 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-grid
frontend-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-view
js module is re-developed and renamed tooropricing/js/app/views/quick-add-row-price-view
- The message queue topic
imageResize
was renamed tooro_product.image_resize
. - Functionality of Quick Order Form is re-developed
oroproduct/js/app/components/quick-add-copy-paste-form-component
js module is re-developed and renamed tooroproduct/js/app/views/quick-add-copy-paste-form-view
oroproduct/js/app/views/quick-add-item-view
js module is re-developed and renamed tooroproduct/js/app/views/quick-add-row-view
oroproduct/js/app/views/quick-add-view
js module is re-developed and renamed tooroproduct/js/app/views/quick-order-form-view
- js mediator events
autocomplete:productFound
autocomplete:productNotFound
are replaced with custom DOM events
- The service
Oro\Bundle\PromotionBundle\Executor\PromotionExecutor
can be used without caching processed DiscountContext. Please refer tooro_promotion.promotion_executor
andoro_promotion.shipping_promotion_executor
examples.
- The name for
/admin/api/requests
REST API resource was changed to/admin/api/rfqs
. - The name for
/admin/api/requestproducts
REST API resource was changed to/admin/api/rfqproducts
. - The name for
/admin/api/requestproductitems
REST API resource was changed to/admin/api/rfqproductitems
. - The name for
/admin/api/requestadditionalnotes
REST API resource was changed to/admin/api/rfqadditionalnotes
. - The name for
/admin/api/rfpcustomerstatuses
REST API resource was changed to/admin/api/rfqcustomerstatuses
. - The name for
/admin/api/rfpinternalstatuses
REST 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.
- 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.configuration
event dispatches withOro\Bundle\SearchBundle\Event\SearchMappingCollectEvent
event 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.configuration
event 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_menu
layout import from all bundles.
- Removed duplicated workflow preconditions/conditions checks.
- Removed duplicated checkout state generations and checks.
- Removed
order_line_item_has_count
condition. - 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.
- Method
Oro\Bundle\ProductBundle\VirtualFields\VirtualFieldsProductDecoratorFactory::createDecoratedProductByProductHolders()
is removed, useOro\Bundle\ProductBundle\VirtualFields\VirtualFieldsProductDecoratorFactory::createDecoratedProduct()
instead. - Removed the
oro_product.matrix_form_on_shopping_list
option from the system configuration.
- The
unique_job_slug
option 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. - 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. - Removed the following layout block types:
shopping_list_owner_select_block
shopping_list_line_items_list
shopping_lists_menu
- Removed the following layout data providers:
oro_shopping_list_product_unit_code_visibility
shopping_list_form_availability_provider
oro_shopping_list_matrix_grid_shopping_list
oro_shopping_list_products_units
- Removed the
oro_shoppinglist_frontend_duplicate
operation. Theoro_shoppinglist_frontend_duplicate_action
operation is now used.
- Removed
Oro\Bundle\WebsiteSearchBundle\Event\WebsiteSearchMappingEvent
event class and usedOro\Bundle\SearchBundle\Event\SearchMappingCollectEvent
class instead of. - Removed
Oro\Bundle\WebsiteSearchBundle\Provider\WebsiteSearchMappingProvider
and used\Oro\Bundle\SearchBundle\Provider\SearchMappingProvider
class instead of.
- 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_scope
request attribute was removed. UseOro\Bundle\WebCatalogBundle\Provider\RequestWebContentScopeProvider
to get the current scope. This class loads the scope on demand. - The
_content_variant
request attribute was removed. UseOro\Bundle\WebCatalogBundle\Provider\RequestWebContentVariantProvider
to get the current content variant. This class loads the content variant on demand.
- The
current_website
request attribute was removed. To get the current website from HTTP requestOro\Bundle\WebsiteBundle\Provider\RequestWebsiteProvider
was added. This class loads the website on demand.
*.class
parameters 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::class
instead of$container->getParameter('oro_email.email.entity.class')
(in PHP code).
- The trait
Oro\Component\Cache\Layout\DataProviderCacheTrait
was removed as it added additional complexity to cacheable layout data providers instead of simplify them. - The unneeded class
Oro\Component\Cache\Layout\DataProviderCacheCleaner
was removed.
- The
getName()
method was removed fromOro\Bundle\PricingBundle\SubtotalProcessor\Model\SubtotalProviderInterface
. Use thealias
attribute of theoro_pricing.subtotal_provider
DIC tag instead.
- The handling of
priority
attribute fororo_promotion.discount_context_converter
,oro_promotion.promotion_context_converter
andoro_promotion.discount_strategy
DIC tags was changed to correspond Symfony recommendations. 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 theclass
attribute of theoro_tax.tax_mapper
DIC tag instead. - The
getName()
method was removed fromOro\Bundle\TaxBundle\Provider\TaxProviderInterface
. Use thealias
attribute of theoro_tax.tax_provider
DIC tag instead.
- In
Oro\Bundle\PaymentBundle\Controller\Api\Rest\PaymentMethodsConfigsRuleController::enableAction
(/paymentrules/{id}/enable
path) action the request method was changed to POST. - In
Oro\Bundle\PaymentBundle\Controller\Api\Rest\PaymentMethodsConfigsRuleController::disableAction
(/paymentrules/{id}/disable
path) action the request method was changed to POST.
- In
Oro\Bundle\PricingBundle\Controller\AjaxPriceListController::defaultAction
(oro_pricing_price_list_default
route) action the request method was changed to POST. - In
Oro\Bundle\PricingBundle\Controller\AjaxProductPriceController::deleteAction
(oro_pricing_price_list_default
route) 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
--email
has become required fororo:import:price-list:file
command. Oro\Bundle\WebsiteSearchBundle\Attribute\Type\SearchAttributeTypeInterface
:- all methods from the removed
Oro\Bundle\WebsiteSearchBundle\Attribute\Type\SearchableAttributeTypeInterface
exceptgetFilterStorageFieldType
andgetFilterableFieldName
are moved to this interface.
- all methods from the removed
- In
Oro\Bundle\SaleBundle\Controller\AjaxQuoteController::entryPointAction
(oro_quote_entry_point
route) action the request method was changed to POST.
- In
Oro\Bundle\ShippingBundle\Controller\Api\Rest\ShippingMethodsConfigsRuleController::enableAction
(/shippingrules/{id}/enable
path) action the request method was changed to POST. - In
Oro\Bundle\ShippingBundle\Controller\Api\Rest\ShippingMethodsConfigsRuleController::disableAction
(/shippingrules/{id}/disable
path) action the request method was changed to POST.
- The
removeProductFromViewAction
inOro\Bundle\ShoppingListBundle\Controller\Frontend\AjaxLineItemController
(oro_shopping_list_frontend_remove_product
route) now support onlyDELETE
method insteadofPOST
. - In
Oro\Bundle\ShoppingListBundle\Controller\Frontend\AjaxLineItemController::addProductFromViewAction
(oro_shopping_list_frontend_add_product
route) action the request method was changed to POST.
- Event
oro_payment.event.extract_line_item_options
will no longer be dispatched. Implementations ofOro\Bundle\PayPalBundle\OptionsProvider\OptionsProviderInterface
will be used instead. - Event
oro_payment.event.extract_address_options
will no longer be dispatched. ClassPaymentOrderShippingAddressOptionsProvider
will be used instead.
- Service
oro_website_search.async_messaging.search_message.processor.job_runner
was removed, that trigger duplicated messages to the message queue with topics:oro.website.search.indexer.save
oro.website.search.indexer.delete
oro.website.search.indexer.reset_index
oro.website.search.indexer.reindex
- Changes in
/admin/api/orderaddresses
REST API resource:- the attribute
created
was renamed tocreatedAt
- the attribute
updated
was renamed toupdatedAt
- the attribute
- Functionality related to the currently active shopping list was moved from
Oro\Bundle\ShoppingListBundle\Manager\ShoppingListManager
toOro\Bundle\ShoppingListBundle\Manager\CurrentShoppingListManager
. The service id for the CurrentShoppingListManager isoro_shopping_list.manager.current_shopping_list
. - Service
oro_shopping_list.shopping_list.manager
was renamed tooro_shopping_list.manager.shopping_list
.
- Method
validateReindexRequest
atOro\Bundle\WebsiteSearchBundle\Engine\IndexerInputValidator
was renamed tovalidateRequestParameters
- Added a listener to the
oro_product.display_simple_variations
config 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_listener
is used instead. - Removed listener
oro_product.event_listener.datagrid.frontend_product_search.display_product_variations
. The serviceoro_product.config.event_listener.display_simple_variations_listener
is used instead.
- Improved caching of home page, added
Oro\Component\Cache\Layout\DataProviderCacheTrait
to 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
__construct
added dependency onOro\Bundle\SecurityBundle\Encoder\SymmetricCrypterInterface
- method
- Class
Oro\Bundle\CatalogBundle\Model\ExtendProduct
:- method
setCategory
was added - method
getCategory
was added - property
category_id
was 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
__construct
added dependency onOro\Bundle\SecurityBundle\Encoder\SymmetricCrypterInterface
- method
- Operation
oro_accept_quote
renamed tooro_sale_accept_quote
and 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
setProducts
was moved toOro\Bundle\CatalogBundle\Model\ExtendCategory
- method
getProducts
was moved toOro\Bundle\CatalogBundle\Model\ExtendCategory
- method
addProduct
was moved toOro\Bundle\CatalogBundle\Model\ExtendCategory
- method
removeProducts
was moved toOro\Bundle\CatalogBundle\Model\ExtendCategory
- property
products
was moved toOro\Bundle\CatalogBundle\Model\ExtendCategory
- method
- Operation
oro_checkout_frontend_quote_submit_to_order
renamed tooro_sale_frontend_quote_submit_to_order
and 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::getCategoriesProductsCountQueryBuilder
is deprecated. Not using.
- Removed
oro_category_to_product
joining table.
- Added
CheckoutLineItem
andCheckoutSubtotal
entities. They will be used inCheckout
entity to store data. Previously for these purposes used line items and subtotals of Checkout source entity (ShoppingList
orQuoteDemand
entities).
- 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_products
that returns list of request products (formatted) for current request for quote. Can be used in email templates.
- Added interface
Oro\Bundle\WebsiteSearchBundle\Attribute\Type\SearchableAttributeTypeInterface
that should be implemented in case new type of arguments added.
- Added interface
Oro\Bundle\RedirectBundle\Cache\UrlCacheInterface
that should be implemented by URL cache services. - Added interface
Oro\Bundle\RedirectBundle\Provider\SluggableUrlProviderInterface
that should be implemented by URL providers. - Added new URL caches:
key_value
andlocal
. Previous implementation was registered withstorage
key 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:
database
andcache
.database
is set by default. - Added DI parameter
oro_redirect.url_cache_type
for URL cache configuration - Added DI parameter
oro_redirect.url_provider_type
for URL provider configuration - Added DI parameter
oro_redirect.url_storage_cache.split_deep
for tuningstorage
cache
- 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_ID
sku
new_arrival
short_description_LOCALIZATION_ID
inventory_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_ID
new_arrival
=>newArrival
short_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\CouponApplicabilityValidationService
moved tosetCouponApplicabilityValidationService
setter
- dependency on
- now extends from
- Filtration services are now skippable. More details can be found in documentation.
- Service
oro_redirect.url_cache
must be used insteadoro_redirect.url_storage_cache
- Interface
Oro\Bundle\RedirectBundle\Cache\UrlCacheInterface
must be used as dependency instead ofOro\Bundle\RedirectBundle\Cache\UrlStorageCache
- URL cache format for
storage
cache 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_deep
to 1. To improve page rendering speed and decrease memory usage recommended to recalculate caches withoro_redirect.url_storage_cache.split_deep
set 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
addLineItem
method. All line item collection should be processed withsetLineItems
and related interfaceOro\Bundle\ShippingBundle\Context\LineItem\Collection\Factory\ShippingLineItemCollectionFactoryInterface
.
- Interface lost his
- Entity
Oro\Bundle\WebsiteSearchBundle\Entity\IndexDecimal
:- changed decimal field
value
:precision
changed from10
to21
.scale
changed from2
to6
.
- changed decimal field
- Implementation can decorate original implementation of interface
Oro\Bundle\EntityConfigBundle\Attribute\Type\AttributeTypeInterface
that 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 $dbalStorer
parameter removed.
- The construction signature of was changed and the constructor was updated -
- Class
Oro\Bundle\CatalogBundle\EventListener\DatagridListener
:- method
addCategoryRelation
flagged 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 withoutpriceList
field, that's why inget_list
actionpriceList
filter 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\ProductPriceIDByPriceListIDNormalizer
was added to transform product price id toProductPriceID-PriceListID
format - Class
ResetPriceRuleFieldOnUpdateProcessor
[?] was added to reset product price rule when one of the fields:value
,quantity
,unit
,currency
changes
- Class
- Enabled API for ProductImage and ProductImageType and added documentation of usage in Product API.
- Added method to
SlugRepository
:getRawSlug
method to retrieve slug URL data
- Added new interface:
SluggableUrlProviderInterface
- Added new URL providers:
SluggableUrlCacheAwareProvider
takes slug URLs from persistent cacheSluggableUrlDatabaseAwareProvider
takes slug URLs from the database
- Form type
OrderDiscountItemType
[?] was changed for use in popup.
- Event
oro_payment.require_payment_redirect.PAYMENT_METHOD_IDENTIFIER
is no more specifically dispatched for each payment method. Use genericoro_payment.require_payment_redirect
event 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$this
forsetPromotion
andsetMatchingProducts
methods
MatchedUrlDecisionMaker
class should be used instead ofFrontendHelper
to check that current URL should be processed by Slugable Url matcher or generator
- Class
FrontendProductDatagridListener
[?]- dependency on
RegistryInterface
will soon be removed.getProductRepository
andgetProductUnitRepository
flagged as deprecated.
- dependency on
- Form type
OrderDiscountItemsCollectionType
and relatedoroorder/js/app/views/discount-items-view
JS view were removed, newOrderDiscountCollectionTableType
[?] andoroorder/js/app/views/discount-collection-view
are introduced.
- Class
AppliedDiscountManager
- class removed, logic was moved to
AppliedPromotionManager
- service of this manager removed, new
oro_promotion.applied_promotion_manager
service was created
- class removed, logic was moved to
- Class
Router
[?]- removed method
setFrontendHelper
,setMatchedUrlDecisionMaker
method 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 rulePriceListRelationTriggerHandlerForWebsiteAndCustomerProcessor
to rebuild price lists when customer aware relational entities are modifiedPriceListRelationTriggerHandlerForWebsiteAndCustomerGroupProcessor
to 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
,Brand
were 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
Quote
category- 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
DefaultWebsiteSubscriber
to 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:getGroupedAddresses
changed fromarray
toTypedOrderAddressCollection
- class
PayflowIPCheckListener
[?]- property
$allowedIPs
changed fromprivate
toprotected
- property
- subtotal and currency of payment context and its line items are optional now:
- service
oro_pricing.listener.product_unit_precision
was changed fromdoctrine.event_listener
todoctrine.orm.entity_listener
- setter methods
setProductPriceClass
,setEventDispatcher
,setShardManager
were removed. To set properties, constructor used instead.
- setter methods
- class
BooleanVariantFieldValueHandler
[?]- changed signature of
__construct
method. New dependency onSymfony\Contracts\Translation\TranslatorInterface
was added.
- changed signature of
ProductPriceFormatter
methodformatProductPrice
changed to expectBaseProductPrice
attribute instead ofProductPrice
.
- service
oro_seo.event_listener.product_form_view
- dependency on
@request_stack
was removed - dependency on
@oro_entity.doctrine_helper
was removed
- dependency on
- service
oro_seo.event_listener.category_form_view
- dependency on
@request_stack
was removed - dependency on
@oro_entity.doctrine_helper
was removed
- dependency on
- service
oro_seo.event_listener.page_form_view
- dependency on
@request_stack
was removed - dependency on
@oro_entity.doctrine_helper
was removed
- dependency on
- service
oro_seo.event_listener.content_node_form_view
- dependency on
@request_stack
was removed - dependency on
@oro_entity.doctrine_helper
was removed
- dependency on
- updated entity
Quote
[?]- Added constant
FRONTEND_INTERNAL_STATUSES
that 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
Quote
category- 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_review
is deprecated since v1.3, will be removed in v1.6. Use 'oro_payment_method_order_submit' instead.
- class
CheckoutVoter
[?]- method
getSecurityFacade
was removed,getAuthorizationChecker
method was added instead
- method
- class
FlatRateMethodIdentifierGenerator
is removed in favor ofPrefixedIntegrationIdentifierGenerator
. - previously deprecated
FlatRateMethodFromChannelBuilder
[?] is removed now. UseFlatRateMethodFromChannelFactory
[?] instead.
- removed protected method
AbstractOrderAddressType::getDefaultAddressKey
[?]. Please, use methodTypedOrderAddressCollection::getDefaultAddressKey
instead
- class
Gateway
[?]- constants
PRODUCTION_HOST_ADDRESS
,PILOT_HOST_ADDRESS
,PRODUCTION_FORM_ACTION
,PILOT_FORM_ACTION
removed.
- constants
- previously deprecated
PayPalPasswordType
is removed. UseOroEncodedPlaceholderPasswordType
instead. - 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. UsegetPaymentStatus
instead. - 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-view
view was removed, useorocron/js/app/views/schedule-intervals-view
instead
- class
ProductStrategy
[?]- method
setSecurityFacade
was removed,setTokenAccessor
method was added instead
- method
- removed protected method
QuoteAddressType::getDefaultAddressKey
[?]. Please, use methodTypedOrderAddressCollection::getDefaultAddressKey
instead
- service
oro_shipping.shipping_method.registry
was removed, neworo_shipping.shipping_method_provider
service is used instead - class
ShippingMethodRegistry
was removed, logic was moved toCompositeShippingMethodProvider
[?]- method
getTrackingAwareShippingMethods
moved to classTrackingAwareShippingMethodsProvider
[?]
- method
- previously deprecated interface
IntegrationMethodIdentifierGeneratorInterface
is removed along with its implementations and usages. UseIntegrationIdentifierGeneratorInterface
instead. - previously deprecated
ShippingMethodsConfigsRuleRepository::getConfigsWithEnabledRuleAndMethod
method is removed now. UsegetEnabledRulesByMethod
method instead. - previously deprecated
AbstractIntegrationRemovalListener
is removed now. UseIntegrationRemovalListener
instead. OroShippingBundle:Form:type/result.html.twig
andOroShippingBundle:Form:type/selection.html.twig
- removed
- class
UPSMethodIdentifierGenerator
is 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_PAYMENTS
permission 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.basic
service 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_rules
example. - the
ShippingRuleViewMethodTemplateListener
[?] was created, and can be used for providing template of a shipping method on a shipping rule view page.
productUnitSelectionVisible
option 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 useOroEncodedPlaceholderPasswordType
instead. - 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, theIntegrationIdentifierGeneratorInterface
should be used instead.
- the class
MoneyOrder
[?] constantTYPE
was removed.
oro_order_capture
operation was removed,oro_order_payment_transaction_capture
should be used instead
- JS credit card validators were moved to
PaymentBundle
. List of moved components:oropaypal/js/lib/jquery-credit-card-validator
oropaypal/js/validator/credit-card-expiration-date
oropaypal/js/validator/credit-card-expiration-date-not-blank
oropaypal/js/validator/credit-card-number
oropaypal/js/validator/credit-card-type
oropaypal/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 togetPriceListCurrencyListAction
method
- the following methods in class
AjaxUPSController
[?] were renamed: - the following properties in class
UPSTransport
[?] were renamed:$testMode
[?] is removed, use$upsTestMode
instead$apiUser
[?] is removed, use$upsApiUser
instead$apiPassword
[?] is removed, use$upsApiPassword
instead$apiKey
[?] is removed, use$upsApiKey
instead$shippingAccountNumber
[?] is removed, use$upsShippingAccountNumber
instead$shippingAccountName
[?] is removed, use$upsShippingAccountName
instead$pickupType
[?] is removed, use$upsPickupType
instead$unitOfWeight
[?] is removed, use$upsUnitOfWeight
instead$country
[?] is removed, us$upsCountry
instead$invalidateCacheAt
[?] is removed, use$upsInvalidateCacheAt
instead
- the
CategoryBreadcrumbProvider
was added as a data provider for breadcrumbs.
commerce
configurable 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_frontend
configurable 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:MoneyOrderMethodProvider
that provides Money Order payment methods.MoneyOrderMethodViewProvider
that 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_HISTORY
permission 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
PaymentMethodsConfigsRule
entity. - 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
PaymentMethodProviderInterface
interface was added. This interface should be implemented in any payment method provider class that is responsible for providing of any payment method. - A new
PaymentMethodViewProviderInterface
interface 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
AbstractPaymentMethodProvider
was created. Any new payment method provider should extend this class. - To aggregate the shared logic of all payment method view providers, the
AbstractPaymentMethodViewProvider
was 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 decoratedProduct
VirtualFieldsProductDecorator
[?] is the class that decoratesProduct
VirtualFieldsSelectQueryConverter
[?] this converter is used inside ofVirtualFieldsProductDecorator
VirtualFieldsProductQueryDesigner
[?] this query designer is used inside ofVirtualFieldsProductDecorator
- added
RuleInterface
[?] this interface should now be used for injection instead ofRule
in bundles that implementRuleBundle
functionality - added classes for handling enable/disable
Rule
actions - use them to define corresponding services - added
RuleActionsVisibilityProvider
that should be used to define action visibility configuration in datagrids withRule
entity fields
IntegrationRemovalListener
class was created to be used instead ofAbstractIntegrationRemovalListener
- Check UPS Connection button was added on UPS integration page. Please, see documentation for more information.
- new
WebCatalogAwareInterface
became available for entities which are aware ofWebCatalogs
. - new
WebCatalogUsageProviderInterface
interface:- provides information about assigned
WebCatalogs
to given entities (passed as an argument) - provides information about usage of
WebCatalog
by id
- provides information about assigned
- the
WebCatalogBreadcrumbDataProvider
class was created.getItems
method returns breadcrumbs array
- the
CategoryExtension
class changed:- The construction signature of was changed and the constructor was updated with the new
ContainerInterface $container
parameter.
- The construction signature of was changed and the constructor was updated with the new
- the bundle [?] was moved from the
OroCommerce
package into theOroCRM Customer Portal
package. - the
MenuExtension
class was updated with the following change:- The construction signature of was changed and the constructor accepts only one
ContainerInterface $container
parameter.
- The construction signature of was changed and the constructor accepts only one
-
the bundle moved from the
OroCommerce
package into theOroCRM Customer Portal
package. -
the
FrontendOwnerTreeProvider::_construct
method was added with the following signature:__construct( ManagerRegistry $doctrine, DatabaseChecker $databaseChecker, CacheProvider $cache, MetadataProviderInterface $ownershipMetadataProvider, TokenStorageInterface $tokenStorage )
-
the construction signature of the
CustomerExtension
class was changed and the constructor accepts only oneContainerInterface $container
parameter.
- the bundle [?] was renamed to
FlatRateShippingBundle
- the bundle [?] moved from the
OroCommerce
package into theOroCRM Customer Portal
package.
- the service definition for
oro_frontend_localization.extension.transtation_packages_provider
was 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 toPaymentBundle
andIntegrationBundle
for 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
getCombinedPriceListsByPriceList
method fromBufferedQueryResultIterator
toBufferedQueryResultIteratorInterface
- changed the return type of
getCombinedPriceListsByPriceLists
method fromBufferedQueryResultIterator
toBufferedQueryResultIteratorInterface
- changed the return type of
getCPLsForPriceCollectByTimeOffset
method fromBufferedQueryResultIterator
toBufferedQueryResultIteratorInterface
- changed the return type of
- class
PriceListCustomerFallbackRepository
[?] changes:- changed the return type of
getCustomerIdentityByGroup
method fromBufferedQueryResultIterator
toBufferedQueryResultIteratorInterface
- changed the return type of
- class
PriceListCustomerGroupFallbackRepository
[?] changes:- changed the return type of
getCustomerIdentityByWebsite
method fromBufferedQueryResultIterator
toBufferedQueryResultIteratorInterface
- changed the return type of
- class
PriceListRepository
[?] changes:- changed the return type of
getPriceListsWithRules
method fromBufferedQueryResultIterator
toBufferedQueryResultIteratorInterface
- changed the return type of
- class
PriceListToCustomerGroupRepository
[?] changes:- changed the return type of
getCustomerGroupIteratorByDefaultFallback
method fromBufferedQueryResultIterator
toBufferedQueryResultIteratorInterface
- changed the return type of
getIteratorByPriceList
method fromBufferedQueryResultIterator
toBufferedQueryResultIteratorInterface
- changed the return type of
- class
PriceListToCustomerRepository
[?] changes:- changed the return type of
getCustomerIteratorByDefaultFallback
method fromBufferedQueryResultIterator
toBufferedQueryResultIteratorInterface
- changed the return type of
getCustomerWebsitePairsByCustomerGroupIterator
method fromBufferedQueryResultIterator
toBufferedQueryResultIteratorInterface
- changed the return type of
getIteratorByPriceList
method fromBufferedQueryResultIterator
toBufferedQueryResultIteratorInterface
- changed the return type of
- class
PriceListToWebsiteRepository
[?] changes:- changed the return type of
getWebsiteIteratorByDefaultFallback
method fromBufferedQueryResultIterator
toBufferedQueryResultIteratorInterface
- changed the return type of
- the following methods were updated:
AbstractTaxCode::setCreatedAt
(pass\DateTime
as a first argument of the method instead ofmixed
)AbstractTaxCode::setUpdatedAt
(pass\DateTime
as a first argument of the method instead ofmixed
)Tax::setCreatedAt
(pass\DateTime
as a first argument of the method instead ofmixed
)Tax::setUpdatedAt
(pass\DateTime
as a first argument of the method instead ofmixed
)TaxJurisdiction::setCreatedAt
(pass\DateTime
as a first argument of the method instead ofmixed
)TaxJurisdiction::setUpdatedAt
(pass\DateTime
as a first argument of the method instead ofmixed
)TaxRule::setCreatedAt
(pass\DateTime
as a first argument of the method instead ofmixed
)TaxRule::setUpdatedAt
(pass\DateTime
as a first argument of the method instead ofmixed
)ZipCode::setCreatedAt
(pass\DateTime
as a first argument of the method instead ofmixed
)ZipCode::setUpdatedAt
(pass\DateTime
as a first argument of the method instead ofmixed
)
- in
AbstractCustomerPartialUpdateDriver
, the return type of thegetCustomerVisibilityIterator
method changed fromBufferedQueryResultIterator
toBufferedQueryResultIteratorInterface
.
- the bundle [?] moved from the
OroCommerce
package into theOroCRM Customer Portal
package. - the
WebsiteBundle
moved from theOroCommerce
package into theOroCRM Customer Portal
package. - the
OroWebsiteExtension
class 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
WebsitePathExtension
class 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::writeItem
andDriver::flushWrites
should be used instead ofDriver::saveItems
- the
CategoryProvider::getBreadcrumbs
method is deprecated. Please use CategoryBreadcrumbProvider::getItems()` instead.
- in the
/api/inventorylevels
REST API resource, theproductUnitPrecision.unit.code
filter was marked as deprecated. TheproductUnitPrecision.unit.id
filter should be used instead.
AbstractIntegrationRemovalListener
was deprecated,IntegrationRemovalListener
was created instead.
- the
CategoryExtension::setContainer
method was removed. - the
CategoryExtension
class changed:- The
setContainer
method was removed.
- The
- the
CategoryPageVariantType
was removed and the logic moved toPageVariantTypeExtension
- the property
protected $securityProvider
was removed from theCustomerExtension
class. - the
FrontendCustomerUserRoleOptionsProvider
class was removed and replaced with:- FrontendCustomerUserRoleCapabilitySetOptionsProvider` for getting capability set options
FrontendCustomerUserRoleTabOptionsProvider
for getting tab options
- the
Configuration
class was removed. UseMoneyOrderSettings
entity that extends theTransport
class to store payment integration properties.
- implementation was changed using IntegrationBundle (refer to PaymentBundle and IntegrationBundle for details):
- Class
Configuration
was removed and insteadPayPalSettings
[?] was created - entity that implementsTransport
[?] to store paypal payment integration properties - Classes
PayflowExpressCheckoutConfig
,PayPalPaymentsProExpressCheckoutConfig
were removed and instead simple parameter bag objectPayPalExpressCheckoutConfig
[?] is being used for holding payment integration properties that are stored in PayPalSettings - Classes
PayflowGatewayConfig
,PayPalPaymentsProConfig
were removed and instead simple parameter bag objectPayPalCreditCardConfig
[?] is being used for holding payment integration properties that are stored in PayPalSettings - Classes
PayflowExpressCheckout
,PayPalPaymentsProExpressCheckout
were removed and instead was addedPayPalExpressCheckoutPaymentMethod
[?] - Classes
PayflowGateway
,PayPalPaymentsPro
were removed and instead was addedPayPalCreditCardPaymentMethod
[?] - Classes
PayflowExpressCheckout
,PayPalPaymentsProExpressCheckout
were removed and instead was addedPayPalExpressCheckoutPaymentMethodView
[?] - Classes
PayflowGateway
,PayPalPaymentsPro
were 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
PaymentMethodRegistry
was removed, logic was moved toPaymentMethodProvidersRegistry
[?] which implementsPaymentMethodProvidersRegistryInterface
[?] and this registry is responsible for collecting data from all payment method providers - Class
PaymentMethodViewRegistry
was 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 withStatusEnableMassAction
in theRuleBundle
)StatusEnableMassAction
(is replaced withStatusEnableMassAction
in theRuleBundle
)StatusMassActionHandler
(is replaced withStatusMassActionHandler
in theRuleBundle
)PaymentRuleActionsVisibilityProvider
(is replaced withPaymentRuleActionsVisibilityProvider
in theRuleBundle
)
- the following classes (that are related to decorating
Product
with virtual fields) were abstracted and moved to theProductBundle
(see theProductBundle
section 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
PaymentMethodRegistry
class was replaced with thePaymentMethodProvidersRegistry
which implements aPaymentMethodProvidersRegistryInterface
and this registry is responsible for collecting data from all payment method providers. - The
PaymentMethodViewRegistry
class was replaced with theCompositePaymentMethodViewProvider
which implements aPaymentMethodViewProviderInterface
. This composite provider is a single point to provide data from all payment method view providers.
- The
- Class
Configuration
is removed,PaymentTermSettings
[?] was created instead - PaymentTerm implementation was changed using IntegrationBundle (refer to PaymentBundle and IntegrationBundle for details).
- Class
Configuration
was removed and insteadPaymentTermSettings
[?] was created - entity that implementsTransport
to store payment integration properties - Class
PaymentTermConfig
was removed and instead simple parameter bag objectParameterBagPaymentTermConfig
is used for holding payment integration properties that are stored in PaymentTermSettings
- Class
- class
PriceListConfigConverter
[?] changes:- constant
PRIORITY_KEY
was removed, useSORT_ORDER_KEY
instead
- constant
- class
BasePriceListRelation
[?] changes:- property
$priority
was removed, use$sortOrder
instead - methods
getPriority
andsetPriority
were removed, usegetSortOrder
andsetSortOrder
instead accordingly
- property
- class
PriceListConfig
[?] changes:- property
$priority
was removed, use$sortOrder
instead - methods
getPriority
andsetPriority
were removed, usegetSortOrder
andsetSortOrder
instead accordingly
- property
- interface
PriceListAwareInterface
[?] changes:- method
getPriority
was removed, usegetSortOrder
instead
- method
- class
PriceListSelectWithPriorityType
[?] changes:- field
priority
was removed. Field_position
fromSortableExtension
is used instead.
- field
- removed constructor of
ProductPageVariantType
[?].- corresponding logic moved to
PageVariantTypeExtension
[?]
- corresponding logic moved to
- removed property
website
in favour ofscopes
collection using fromRedirect
[?] class
- the following classes that are related to decorating
Product
with virtual fields) were abstracted and moved to theProductBundle
(see theProductBundle
section for more information):SelectQueryConverter
ShippingProductQueryDesigner
ProductDecorator
- In the
DecoratedProductLineItemFactory
class, the only dependency is nowVirtualFieldsProductDecoratorFactory
.
- the classes that are related to actions that disable/enable
ShippingMethodsConfigsRule
were abstracted and moved to theRuleBundle
(see theRuleBundle
) section for more information):- Removed
StatusDisableMassAction
and switched definition toStatusEnableMassAction
in theRuleBundle
StatusEnableMassAction
and switched definition toStatusEnableMassAction
in theRuleBundle
StatusMassActionHandler
and switched definition toStatusMassActionHandler
in theRuleBundle
ShippingRuleActionsVisibilityProvider
and switched definition toRuleActionsVisibilityProvider
in theRuleBundle
- Removed
- the class
InvalidateCacheScheduleCommand
was removed,InvalidateCacheScheduleCommand
should be used instead - the class
InvalidateCacheAtHandler
was removed,InvalidateCacheActionHandler
should be used instead - resource
invalidateCache.html.twig
was removed, use corresponding resource from CacheBundle - resource
invalidate-cache-button-component.js
was removed , use corresponding resource from CacheBundle
- the
protected $websiteManager
property was removed fromOroWebsiteExtension
- the
protected $websiteUrlResolver
property was removed fromWebsitePathExtension
- the following method
IndexationRequestListener::getEntitiesWithUpdatedIndexedFields
was removed