gitextract_qqbczboj/ ├── .github/ │ ├── oxid-esales/ │ │ ├── install.sh │ │ └── shop_ce.yaml │ └── workflows/ │ ├── dispatch-manual.yaml │ └── trigger.yaml ├── .gitignore ├── CHANGELOG-8.0.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── bin/ │ └── oe-console ├── composer.json ├── phpcs.xml.dist ├── phpunit.xml ├── source/ │ ├── .htaccess │ ├── Application/ │ │ ├── Component/ │ │ │ ├── BasketComponent.php │ │ │ ├── CategoriesComponent.php │ │ │ ├── CurrencyComponent.php │ │ │ ├── LanguageComponent.php │ │ │ ├── Locator.php │ │ │ ├── ShopComponent.php │ │ │ ├── UserComponent.php │ │ │ ├── UtilsComponent.php │ │ │ └── Widget/ │ │ │ ├── Actions.php │ │ │ ├── ArticleBox.php │ │ │ ├── ArticleDetails.php │ │ │ ├── CategoryTree.php │ │ │ ├── CookieNote.php │ │ │ ├── CurrencyList.php │ │ │ ├── Information.php │ │ │ ├── LanguageList.php │ │ │ ├── ManufacturerList.php │ │ │ ├── MiniBasket.php │ │ │ ├── Rating.php │ │ │ ├── Recommendation.php │ │ │ ├── Review.php │ │ │ ├── ServiceList.php │ │ │ ├── ServiceMenu.php │ │ │ ├── VendorList.php │ │ │ └── WidgetController.php │ │ ├── Controller/ │ │ │ ├── AccountController.php │ │ │ ├── AccountDownloadsController.php │ │ │ ├── AccountNewsletterController.php │ │ │ ├── AccountNoticeListController.php │ │ │ ├── AccountOrderController.php │ │ │ ├── AccountPasswordController.php │ │ │ ├── AccountRecommlistController.php │ │ │ ├── AccountReviewController.php │ │ │ ├── AccountUserController.php │ │ │ ├── AccountWishlistController.php │ │ │ ├── Admin/ │ │ │ │ ├── ActionsArticleAjax.php │ │ │ │ ├── ActionsController.php │ │ │ │ ├── ActionsGroupsAjax.php │ │ │ │ ├── ActionsList.php │ │ │ │ ├── ActionsMain.php │ │ │ │ ├── ActionsMainAjax.php │ │ │ │ ├── ActionsOrderAjax.php │ │ │ │ ├── AdminContent.php │ │ │ │ ├── AdminController.php │ │ │ │ ├── AdminDetailsController.php │ │ │ │ ├── AdminLinks.php │ │ │ │ ├── AdminListController.php │ │ │ │ ├── AdminNewsletter.php │ │ │ │ ├── AdminOrder.php │ │ │ │ ├── AdminPayment.php │ │ │ │ ├── AdminPriceAlarm.php │ │ │ │ ├── AdminStart.php │ │ │ │ ├── AdminUser.php │ │ │ │ ├── AdminWrapping.php │ │ │ │ ├── AdminlinksList.php │ │ │ │ ├── AdminlinksMain.php │ │ │ │ ├── ArticleAccessoriesAjax.php │ │ │ │ ├── ArticleAttribute.php │ │ │ │ ├── ArticleAttributeAjax.php │ │ │ │ ├── ArticleBundleAjax.php │ │ │ │ ├── ArticleController.php │ │ │ │ ├── ArticleCrossselling.php │ │ │ │ ├── ArticleCrosssellingAjax.php │ │ │ │ ├── ArticleExtend.php │ │ │ │ ├── ArticleExtendAjax.php │ │ │ │ ├── ArticleFiles.php │ │ │ │ ├── ArticleList.php │ │ │ │ ├── ArticleMain.php │ │ │ │ ├── ArticleOverview.php │ │ │ │ ├── ArticlePictures.php │ │ │ │ ├── ArticlePicturesAjax.php │ │ │ │ ├── ArticleReview.php │ │ │ │ ├── ArticleSelectionAjax.php │ │ │ │ ├── ArticleSeo.php │ │ │ │ ├── ArticleStock.php │ │ │ │ ├── ArticleUserdef.php │ │ │ │ ├── ArticleVariant.php │ │ │ │ ├── AttributeCategory.php │ │ │ │ ├── AttributeCategoryAjax.php │ │ │ │ ├── AttributeController.php │ │ │ │ ├── AttributeList.php │ │ │ │ ├── AttributeMain.php │ │ │ │ ├── AttributeMainAjax.php │ │ │ │ ├── AttributeOrderAjax.php │ │ │ │ ├── CategoryController.php │ │ │ │ ├── CategoryList.php │ │ │ │ ├── CategoryMain.php │ │ │ │ ├── CategoryMainAjax.php │ │ │ │ ├── CategoryOrder.php │ │ │ │ ├── CategoryOrderAjax.php │ │ │ │ ├── CategoryPictures.php │ │ │ │ ├── CategorySeo.php │ │ │ │ ├── CategoryText.php │ │ │ │ ├── CategoryUpdate.php │ │ │ │ ├── ContentList.php │ │ │ │ ├── ContentMain.php │ │ │ │ ├── ContentSeo.php │ │ │ │ ├── CountryController.php │ │ │ │ ├── CountryList.php │ │ │ │ ├── CountryMain.php │ │ │ │ ├── DeliveryArticles.php │ │ │ │ ├── DeliveryArticlesAjax.php │ │ │ │ ├── DeliveryCategoriesAjax.php │ │ │ │ ├── DeliveryController.php │ │ │ │ ├── DeliveryGroupsAjax.php │ │ │ │ ├── DeliveryList.php │ │ │ │ ├── DeliveryMain.php │ │ │ │ ├── DeliveryMainAjax.php │ │ │ │ ├── DeliverySetController.php │ │ │ │ ├── DeliverySetCountryAjax.php │ │ │ │ ├── DeliverySetGroupsAjax.php │ │ │ │ ├── DeliverySetList.php │ │ │ │ ├── DeliverySetMain.php │ │ │ │ ├── DeliverySetMainAjax.php │ │ │ │ ├── DeliverySetPayment.php │ │ │ │ ├── DeliverySetPaymentAjax.php │ │ │ │ ├── DeliverySetRdfa.php │ │ │ │ ├── DeliverySetUsers.php │ │ │ │ ├── DeliverySetUsersAjax.php │ │ │ │ ├── DeliveryUsers.php │ │ │ │ ├── DeliveryUsersAjax.php │ │ │ │ ├── DiagnosticsController.php │ │ │ │ ├── DiagnosticsList.php │ │ │ │ ├── DiagnosticsMain.php │ │ │ │ ├── DiscountArticles.php │ │ │ │ ├── DiscountArticlesAjax.php │ │ │ │ ├── DiscountCategoriesAjax.php │ │ │ │ ├── DiscountController.php │ │ │ │ ├── DiscountGroupsAjax.php │ │ │ │ ├── DiscountItemAjax.php │ │ │ │ ├── DiscountList.php │ │ │ │ ├── DiscountMain.php │ │ │ │ ├── DiscountMainAjax.php │ │ │ │ ├── DiscountUsers.php │ │ │ │ ├── DiscountUsersAjax.php │ │ │ │ ├── DynamicExportBaseController.php │ │ │ │ ├── GenericExport.php │ │ │ │ ├── GenericExportDo.php │ │ │ │ ├── GenericExportMain.php │ │ │ │ ├── GenericImport.php │ │ │ │ ├── GenericImportMain.php │ │ │ │ ├── LanguageController.php │ │ │ │ ├── LanguageList.php │ │ │ │ ├── LanguageMain.php │ │ │ │ ├── ListComponentAjax.php │ │ │ │ ├── ListReview.php │ │ │ │ ├── ListUser.php │ │ │ │ ├── LoginController.php │ │ │ │ ├── ManufacturerController.php │ │ │ │ ├── ManufacturerList.php │ │ │ │ ├── ManufacturerMain.php │ │ │ │ ├── ManufacturerMainAjax.php │ │ │ │ ├── ManufacturerPicture.php │ │ │ │ ├── ManufacturerSeo.php │ │ │ │ ├── ModuleConfiguration.php │ │ │ │ ├── ModuleController.php │ │ │ │ ├── ModuleList.php │ │ │ │ ├── ModuleMain.php │ │ │ │ ├── ModuleSortList.php │ │ │ │ ├── NavigationController.php │ │ │ │ ├── NavigationTree.php │ │ │ │ ├── ObjectSeo.php │ │ │ │ ├── OrderAddress.php │ │ │ │ ├── OrderArticle.php │ │ │ │ ├── OrderDownloads.php │ │ │ │ ├── OrderList.php │ │ │ │ ├── OrderMain.php │ │ │ │ ├── OrderOverview.php │ │ │ │ ├── OrderRemark.php │ │ │ │ ├── PaymentCountry.php │ │ │ │ ├── PaymentCountryAjax.php │ │ │ │ ├── PaymentList.php │ │ │ │ ├── PaymentMain.php │ │ │ │ ├── PaymentMainAjax.php │ │ │ │ ├── PaymentRdfa.php │ │ │ │ ├── PriceAlarmList.php │ │ │ │ ├── PriceAlarmMail.php │ │ │ │ ├── PriceAlarmMain.php │ │ │ │ ├── PriceAlarmSend.php │ │ │ │ ├── SelectListController.php │ │ │ │ ├── SelectListList.php │ │ │ │ ├── SelectListMain.php │ │ │ │ ├── SelectListMainAjax.php │ │ │ │ ├── SelectListOrderAjax.php │ │ │ │ ├── ShopConfiguration.php │ │ │ │ ├── ShopController.php │ │ │ │ ├── ShopCountries.php │ │ │ │ ├── ShopDefaultCategoryAjax.php │ │ │ │ ├── ShopLicense.php │ │ │ │ ├── ShopList.php │ │ │ │ ├── ShopMain.php │ │ │ │ ├── ShopPerformance.php │ │ │ │ ├── ShopRdfa.php │ │ │ │ ├── ShopSeo.php │ │ │ │ ├── ShopSystem.php │ │ │ │ ├── SystemInfoController.php │ │ │ │ ├── SystemRequirements.php │ │ │ │ ├── SystemRequirementsList.php │ │ │ │ ├── SystemRequirementsMain.php │ │ │ │ ├── ThemeConfiguration.php │ │ │ │ ├── ThemeController.php │ │ │ │ ├── ThemeList.php │ │ │ │ ├── ThemeMain.php │ │ │ │ ├── ToolsController.php │ │ │ │ ├── ToolsList.php │ │ │ │ ├── ToolsMain.php │ │ │ │ ├── UserAddress.php │ │ │ │ ├── UserArticle.php │ │ │ │ ├── UserExtend.php │ │ │ │ ├── UserGroupController.php │ │ │ │ ├── UserGroupList.php │ │ │ │ ├── UserGroupMain.php │ │ │ │ ├── UserGroupMainAjax.php │ │ │ │ ├── UserList.php │ │ │ │ ├── UserMain.php │ │ │ │ ├── UserMainAjax.php │ │ │ │ ├── UserOverview.php │ │ │ │ ├── UserPayment.php │ │ │ │ ├── UserRemark.php │ │ │ │ ├── VendorController.php │ │ │ │ ├── VendorList.php │ │ │ │ ├── VendorMain.php │ │ │ │ ├── VendorMainAjax.php │ │ │ │ ├── VendorSeo.php │ │ │ │ ├── VoucherSerieController.php │ │ │ │ ├── VoucherSerieExport.php │ │ │ │ ├── VoucherSerieGenerate.php │ │ │ │ ├── VoucherSerieGroups.php │ │ │ │ ├── VoucherSerieGroupsAjax.php │ │ │ │ ├── VoucherSerieList.php │ │ │ │ ├── VoucherSerieMain.php │ │ │ │ ├── WrappingList.php │ │ │ │ └── WrappingMain.php │ │ │ ├── ArticleDetailsController.php │ │ │ ├── ArticleListController.php │ │ │ ├── BasketController.php │ │ │ ├── ClearCookiesController.php │ │ │ ├── CompareController.php │ │ │ ├── ContactController.php │ │ │ ├── ContentController.php │ │ │ ├── CreditsController.php │ │ │ ├── DownloadController.php │ │ │ ├── ExceptionErrorController.php │ │ │ ├── ForgotPasswordController.php │ │ │ ├── FrontendController.php │ │ │ ├── LinksController.php │ │ │ ├── ManufacturerListController.php │ │ │ ├── MoreDetailsController.php │ │ │ ├── NewsletterController.php │ │ │ ├── OrderController.php │ │ │ ├── OxidStartController.php │ │ │ ├── PaymentController.php │ │ │ ├── PriceAlarmController.php │ │ │ ├── RecommListController.php │ │ │ ├── RecommendationAddController.php │ │ │ ├── RegisterController.php │ │ │ ├── ReviewController.php │ │ │ ├── SearchController.php │ │ │ ├── StartController.php │ │ │ ├── TemplateController.php │ │ │ ├── TextEditorHandler.php │ │ │ ├── ThankYouController.php │ │ │ ├── UserController.php │ │ │ ├── VendorListController.php │ │ │ ├── WishListController.php │ │ │ └── WrappingController.php │ │ ├── Enum/ │ │ │ ├── NewsletterSubscriptionStatus.php │ │ │ └── SubscriptionOptedInStatus.php │ │ ├── Model/ │ │ │ ├── ActionList.php │ │ │ ├── Actions.php │ │ │ ├── Address.php │ │ │ ├── AmountPriceList.php │ │ │ ├── Article.php │ │ │ ├── ArticleList.php │ │ │ ├── Attribute.php │ │ │ ├── AttributeList.php │ │ │ ├── Basket.php │ │ │ ├── BasketContentMarkGenerator.php │ │ │ ├── BasketItem.php │ │ │ ├── BasketReservation.php │ │ │ ├── Category.php │ │ │ ├── CategoryList.php │ │ │ ├── CompanyVatIn.php │ │ │ ├── Content.php │ │ │ ├── ContentList.php │ │ │ ├── Contract/ │ │ │ │ └── ArticleInterface.php │ │ │ ├── Country.php │ │ │ ├── CountryList.php │ │ │ ├── Delivery.php │ │ │ ├── DeliveryList.php │ │ │ ├── DeliverySet.php │ │ │ ├── DeliverySetList.php │ │ │ ├── Diagnostics.php │ │ │ ├── DiagnosticsOutput.php │ │ │ ├── Discount.php │ │ │ ├── DiscountList.php │ │ │ ├── File.php │ │ │ ├── FileCollector.php │ │ │ ├── Groups.php │ │ │ ├── Links.php │ │ │ ├── ListObject.php │ │ │ ├── Maintenance.php │ │ │ ├── Manufacturer.php │ │ │ ├── ManufacturerList.php │ │ │ ├── MdVariant.php │ │ │ ├── MediaUrl.php │ │ │ ├── NewsSubscribed.php │ │ │ ├── Object2Category.php │ │ │ ├── Object2Group.php │ │ │ ├── Order.php │ │ │ ├── OrderArticle.php │ │ │ ├── OrderArticleList.php │ │ │ ├── OrderFile.php │ │ │ ├── OrderFileList.php │ │ │ ├── Payment.php │ │ │ ├── PaymentGateway.php │ │ │ ├── PaymentList.php │ │ │ ├── PriceAlarm.php │ │ │ ├── Rating.php │ │ │ ├── RecommendationList.php │ │ │ ├── Remark.php │ │ │ ├── RequiredAddressFields.php │ │ │ ├── RequiredFieldValidator.php │ │ │ ├── RequiredFieldsValidator.php │ │ │ ├── Review.php │ │ │ ├── Search.php │ │ │ ├── SelectList.php │ │ │ ├── Selection.php │ │ │ ├── SeoEncoderArticle.php │ │ │ ├── SeoEncoderCategory.php │ │ │ ├── SeoEncoderContent.php │ │ │ ├── SeoEncoderManufacturer.php │ │ │ ├── SeoEncoderRecomm.php │ │ │ ├── SeoEncoderVendor.php │ │ │ ├── Shop.php │ │ │ ├── ShopList.php │ │ │ ├── ShopViewValidator.php │ │ │ ├── SimpleVariant.php │ │ │ ├── SimpleVariantList.php │ │ │ ├── State.php │ │ │ ├── User/ │ │ │ │ ├── UserShippingAddressUpdatableFields.php │ │ │ │ └── UserUpdatableFields.php │ │ │ ├── User.php │ │ │ ├── UserAddressList.php │ │ │ ├── UserBasket.php │ │ │ ├── UserBasketItem.php │ │ │ ├── UserList.php │ │ │ ├── UserPayment.php │ │ │ ├── VariantHandler.php │ │ │ ├── VariantSelectList.php │ │ │ ├── VatSelector.php │ │ │ ├── Vendor.php │ │ │ ├── VendorList.php │ │ │ ├── Voucher.php │ │ │ ├── VoucherList.php │ │ │ ├── VoucherSerie.php │ │ │ └── Wrapping.php │ │ └── translations/ │ │ ├── de/ │ │ │ ├── cust_lang.php.dist │ │ │ ├── lang.php │ │ │ └── translit_lang.php │ │ └── en/ │ │ ├── cust_lang.php.dist │ │ ├── lang.php │ │ └── translit_lang.php │ ├── Core/ │ │ ├── AdminLogSqlDecorator.php │ │ ├── Autoload/ │ │ │ ├── BackwardsCompatibilityAutoload.php │ │ │ ├── BackwardsCompatibilityClassMap.php │ │ │ ├── BackwardsCompatibilityClassMapProvider.php │ │ │ ├── ModuleAutoload.php │ │ │ └── UnifiedNameSpaceClassMap.php │ │ ├── BackwardsCompatibleClassNameProvider.php │ │ ├── Base.php │ │ ├── CompanyVatInChecker.php │ │ ├── CompanyVatInCountryChecker.php │ │ ├── CompanyVatInValidator.php │ │ ├── Config.php │ │ ├── Contract/ │ │ │ ├── AbstractUpdatableFields.php │ │ │ ├── ClassNameResolverInterface.php │ │ │ ├── ControllerMapProviderInterface.php │ │ │ ├── IConfigurable.php │ │ │ ├── ICountryAware.php │ │ │ ├── IDisplayError.php │ │ │ ├── ISelectList.php │ │ │ └── IUrl.php │ │ ├── Controller/ │ │ │ └── BaseController.php │ │ ├── Counter.php │ │ ├── Curl.php │ │ ├── Dao/ │ │ │ ├── ApplicationServerDao.php │ │ │ ├── ApplicationServerDaoInterface.php │ │ │ └── BaseDaoInterface.php │ │ ├── DataObject/ │ │ │ └── ApplicationServer.php │ │ ├── Database/ │ │ │ └── Adapter/ │ │ │ ├── DatabaseInterface.php │ │ │ ├── Doctrine/ │ │ │ │ ├── Database.php │ │ │ │ └── ResultSet.php │ │ │ └── ResultSetInterface.php │ │ ├── DatabaseProvider.php │ │ ├── DbMetaDataHandler.php │ │ ├── DebugInfo.php │ │ ├── Decryptor.php │ │ ├── Di/ │ │ │ └── ContainerFacade.php │ │ ├── DisplayError.php │ │ ├── DynamicImageGenerator.php │ │ ├── Email.php │ │ ├── EmailBuilder.php │ │ ├── Encryptor.php │ │ ├── Exception/ │ │ │ ├── ArticleException.php │ │ │ ├── ArticleInputException.php │ │ │ ├── ConnectionException.php │ │ │ ├── CookieException.php │ │ │ ├── DatabaseConnectionException.php │ │ │ ├── DatabaseErrorException.php │ │ │ ├── DatabaseException.php │ │ │ ├── ExceptionHandler.php │ │ │ ├── ExceptionToDisplay.php │ │ │ ├── FileException.php │ │ │ ├── InputException.php │ │ │ ├── LanguageNotFoundException.php │ │ │ ├── ModuleValidationException.php │ │ │ ├── NoArticleException.php │ │ │ ├── NoResultException.php │ │ │ ├── ObjectException.php │ │ │ ├── OutOfStockException.php │ │ │ ├── RoutingException.php │ │ │ ├── ShopException.php │ │ │ ├── StandardException.php │ │ │ ├── SystemComponentException.php │ │ │ ├── UserException.php │ │ │ └── VoucherException.php │ │ ├── Field.php │ │ ├── FileSystem/ │ │ │ └── FileSystem.php │ │ ├── Form/ │ │ │ ├── FormFields.php │ │ │ ├── FormFieldsCleaner.php │ │ │ ├── FormFieldsTrimmer.php │ │ │ ├── FormFieldsTrimmerInterface.php │ │ │ └── UpdatableFieldsConstructor.php │ │ ├── GenericImport/ │ │ │ ├── GenericImport.php │ │ │ └── ImportObject/ │ │ │ ├── Accessories2Article.php │ │ │ ├── Article.php │ │ │ ├── Article2Action.php │ │ │ ├── Article2Category.php │ │ │ ├── ArticleExtends.php │ │ │ ├── Category.php │ │ │ ├── Country.php │ │ │ ├── CrossSelling.php │ │ │ ├── ImportObject.php │ │ │ ├── Order.php │ │ │ ├── OrderArticle.php │ │ │ ├── ScalePrice.php │ │ │ ├── User.php │ │ │ └── Vendor.php │ │ ├── Hasher.php │ │ ├── Header.php │ │ ├── InputValidator.php │ │ ├── Language.php │ │ ├── Model/ │ │ │ ├── BaseModel.php │ │ │ ├── FieldNameHelper.php │ │ │ ├── ListModel.php │ │ │ └── MultiLanguageModel.php │ │ ├── Module/ │ │ │ ├── Module.php │ │ │ ├── ModuleChainsGenerator.php │ │ │ └── ModuleList.php │ │ ├── NamespaceInformationProvider.php │ │ ├── NoJsValidator.php │ │ ├── OnlineCaller.php │ │ ├── OnlineLicenseCheck.php │ │ ├── OnlineLicenseCheckCaller.php │ │ ├── OnlineLicenseCheckRequest.php │ │ ├── OnlineLicenseCheckResponse.php │ │ ├── OnlineModuleVersionNotifier.php │ │ ├── OnlineModuleVersionNotifierCaller.php │ │ ├── OnlineModulesNotifierRequest.php │ │ ├── OnlineRequest.php │ │ ├── OnlineServerEmailBuilder.php │ │ ├── OnlineVatIdCheck.php │ │ ├── OpenSSLFunctionalityChecker.php │ │ ├── Output.php │ │ ├── Oxid.php │ │ ├── PasswordHasher.php │ │ ├── PictureHandler.php │ │ ├── Price.php │ │ ├── PriceList.php │ │ ├── Registry.php │ │ ├── Request.php │ │ ├── Routing/ │ │ │ ├── ControllerClassNameResolver.php │ │ │ └── ShopControllerMapProvider.php │ │ ├── SeoDecoder.php │ │ ├── SeoEncoder.php │ │ ├── SepaBICValidator.php │ │ ├── SepaIBANValidator.php │ │ ├── SepaValidator.php │ │ ├── Service/ │ │ │ ├── ApplicationServerExporter.php │ │ │ ├── ApplicationServerExporterInterface.php │ │ │ ├── ApplicationServerService.php │ │ │ └── ApplicationServerServiceInterface.php │ │ ├── Session.php │ │ ├── SettingsHandler.php │ │ ├── Sha512Hasher.php │ │ ├── ShopControl.php │ │ ├── ShopIdCalculator.php │ │ ├── ShopVersion.php │ │ ├── SimpleXml.php │ │ ├── SortingValidator.php │ │ ├── Str.php │ │ ├── StrMb.php │ │ ├── StrRegular.php │ │ ├── SystemEventHandler.php │ │ ├── SystemRequirements.php │ │ ├── TableViewNameGenerator.php │ │ ├── Theme.php │ │ ├── UniversallyUniqueIdGenerator.php │ │ ├── UserCounter.php │ │ ├── Utils.php │ │ ├── UtilsCount.php │ │ ├── UtilsDate.php │ │ ├── UtilsFile.php │ │ ├── UtilsObject.php │ │ ├── UtilsPic.php │ │ ├── UtilsServer.php │ │ ├── UtilsString.php │ │ ├── UtilsUrl.php │ │ ├── UtilsView.php │ │ ├── UtilsXml.php │ │ ├── ViewConfig.php │ │ ├── ViewHelper/ │ │ │ ├── BaseRegistrator.php │ │ │ ├── JavaScriptRegistrator.php │ │ │ ├── JavaScriptRenderer.php │ │ │ ├── StyleRegistrator.php │ │ │ └── StyleRenderer.php │ │ ├── WidgetControl.php │ │ └── utils/ │ │ └── oxpicgenerator.php │ ├── Internal/ │ │ ├── Container/ │ │ │ ├── BootstrapContainerBuilder.php │ │ │ ├── BootstrapContainerFactory.php │ │ │ ├── ContainerFactory.php │ │ │ ├── ContainerProviderInterface.php │ │ │ ├── Event/ │ │ │ │ └── ConfigurationChangedEventSubscriber.php │ │ │ ├── bootstrap-services.yaml │ │ │ └── services.yaml │ │ ├── Domain/ │ │ │ ├── Admin/ │ │ │ │ ├── Command/ │ │ │ │ │ ├── CreateUserCommand.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── Dao/ │ │ │ │ │ ├── AdminDao.php │ │ │ │ │ ├── AdminDaoInterface.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── DataObject/ │ │ │ │ │ └── Admin.php │ │ │ │ ├── Event/ │ │ │ │ │ └── AdminModeChangedEvent.php │ │ │ │ ├── Exception/ │ │ │ │ │ ├── EmailAlreadyTakenException.php │ │ │ │ │ ├── InvalidEmailException.php │ │ │ │ │ ├── InvalidRightsException.php │ │ │ │ │ └── InvalidShopException.php │ │ │ │ ├── Factory/ │ │ │ │ │ ├── AdminFactory.php │ │ │ │ │ ├── AdminFactoryInterface.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── Service/ │ │ │ │ │ ├── AdminUserService.php │ │ │ │ │ ├── AdminUserServiceInterface.php │ │ │ │ │ └── services.yaml │ │ │ │ └── services.yaml │ │ │ ├── Authentication/ │ │ │ │ ├── Bridge/ │ │ │ │ │ ├── PasswordServiceBridge.php │ │ │ │ │ ├── PasswordServiceBridgeInterface.php │ │ │ │ │ ├── RandomTokenGeneratorBridge.php │ │ │ │ │ └── RandomTokenGeneratorBridgeInterface.php │ │ │ │ ├── Exception/ │ │ │ │ │ └── UnavailableSourceOfRandomnessException.php │ │ │ │ ├── Generator/ │ │ │ │ │ ├── RandomTokenGenerator.php │ │ │ │ │ └── RandomTokenGeneratorInterface.php │ │ │ │ ├── Service/ │ │ │ │ │ ├── PasswordVerificationService.php │ │ │ │ │ └── PasswordVerificationServiceInterface.php │ │ │ │ └── services.yaml │ │ │ ├── Contact/ │ │ │ │ ├── Form/ │ │ │ │ │ ├── ContactFormBridge.php │ │ │ │ │ ├── ContactFormBridgeInterface.php │ │ │ │ │ ├── ContactFormConfigurationFactory.php │ │ │ │ │ ├── ContactFormEmailValidator.php │ │ │ │ │ ├── ContactFormFactory.php │ │ │ │ │ ├── ContactFormFieldsConfigurationDataProvider.php │ │ │ │ │ ├── ContactFormMessageBuilder.php │ │ │ │ │ └── ContactFormMessageBuilderInterface.php │ │ │ │ └── services.yaml │ │ │ ├── Media/ │ │ │ │ ├── Dao/ │ │ │ │ │ ├── MediaDao.php │ │ │ │ │ └── MediaDaoInterface.php │ │ │ │ ├── DataMapper/ │ │ │ │ │ ├── DataMapper.php │ │ │ │ │ └── DataMapperInterface.php │ │ │ │ ├── DataObject/ │ │ │ │ │ ├── Media.php │ │ │ │ │ ├── MediaPath.php │ │ │ │ │ └── MediaType.php │ │ │ │ ├── MediaUploader.php │ │ │ │ ├── MediaUploaderInterface.php │ │ │ │ ├── MediaUrlGenerator.php │ │ │ │ ├── MediaUrlGeneratorInterface.php │ │ │ │ ├── Validator/ │ │ │ │ │ ├── Exception/ │ │ │ │ │ │ ├── FileExtensionMismatchException.php │ │ │ │ │ │ ├── FileSizeTooLargeException.php │ │ │ │ │ │ ├── FileSizeTooSmallException.php │ │ │ │ │ │ ├── MediaValidationException.php │ │ │ │ │ │ ├── MimeBaseTypeMismatchException.php │ │ │ │ │ │ ├── MimeGuessMismatchException.php │ │ │ │ │ │ ├── MimeTypeGuessFailedException.php │ │ │ │ │ │ └── UploadInvalidException.php │ │ │ │ │ ├── FileExtensionConstraintValidator.php │ │ │ │ │ ├── FileSizeConstraintValidator.php │ │ │ │ │ ├── MediaConstraintValidatorInterface.php │ │ │ │ │ ├── MimeTypeConstraintValidator.php │ │ │ │ │ └── UploadValidityConstraintValidator.php │ │ │ │ └── services.yaml │ │ │ ├── Newsletter/ │ │ │ │ ├── Bridge/ │ │ │ │ │ ├── NewsletterRecipientsDaoBridge.php │ │ │ │ │ └── NewsletterRecipientsDaoBridgeInterface.php │ │ │ │ ├── Dao/ │ │ │ │ │ ├── NewsletterRecipientsDao.php │ │ │ │ │ └── NewsletterRecipientsDaoInterface.php │ │ │ │ ├── DataMapper/ │ │ │ │ │ ├── NewsletterRecipientsDataMapper.php │ │ │ │ │ └── NewsletterRecipientsDataMapperInterface.php │ │ │ │ ├── DataObject/ │ │ │ │ │ └── NewsletterRecipient.php │ │ │ │ └── services.yaml │ │ │ ├── Product/ │ │ │ │ ├── Media/ │ │ │ │ │ ├── Dao/ │ │ │ │ │ │ ├── ProductMediaDao.php │ │ │ │ │ │ └── ProductMediaDaoInterface.php │ │ │ │ │ ├── DataMapper/ │ │ │ │ │ │ ├── DataMapper.php │ │ │ │ │ │ └── DataMapperInterface.php │ │ │ │ │ ├── DataObject/ │ │ │ │ │ │ ├── ProductMedia.php │ │ │ │ │ │ ├── ProductMediaRole.php │ │ │ │ │ │ ├── ProductMediaRoleSet.php │ │ │ │ │ │ ├── ProductMediaSorting.php │ │ │ │ │ │ └── ProductMediaView.php │ │ │ │ │ ├── Exception/ │ │ │ │ │ │ └── EmptyProductMediaRoleException.php │ │ │ │ │ ├── Factory/ │ │ │ │ │ │ ├── ProductMediaFactory.php │ │ │ │ │ │ └── ProductMediaFactoryInterface.php │ │ │ │ │ ├── Service/ │ │ │ │ │ │ ├── ProductMediaPathResolver.php │ │ │ │ │ │ ├── ProductMediaPathResolverInterface.php │ │ │ │ │ │ ├── ProductMediaService.php │ │ │ │ │ │ ├── ProductMediaServiceInterface.php │ │ │ │ │ │ ├── ProductMediaUploadProcessor.php │ │ │ │ │ │ ├── ProductMediaUploadProcessorInterface.php │ │ │ │ │ │ ├── ProductMediaViewService.php │ │ │ │ │ │ ├── ProductMediaViewServiceInterface.php │ │ │ │ │ │ ├── ProductVariantMediaService.php │ │ │ │ │ │ └── ProductVariantMediaServiceInterface.php │ │ │ │ │ ├── Validator/ │ │ │ │ │ │ └── ProductMediaValidator.php │ │ │ │ │ ├── parameters.yaml │ │ │ │ │ └── services.yaml │ │ │ │ └── Search/ │ │ │ │ ├── Event/ │ │ │ │ │ ├── AfterProductSearchEvent.php │ │ │ │ │ └── BeforeProductSearchEvent.php │ │ │ │ ├── ProductSearchCriteria.php │ │ │ │ ├── ProductSearchException.php │ │ │ │ ├── ProductSearchResult.php │ │ │ │ ├── ProductSearchServiceInterface.php │ │ │ │ ├── parameters.yaml │ │ │ │ └── services.yaml │ │ │ ├── Review/ │ │ │ │ ├── Bridge/ │ │ │ │ │ ├── ProductRatingBridge.php │ │ │ │ │ ├── ProductRatingBridgeInterface.php │ │ │ │ │ ├── UserRatingBridge.php │ │ │ │ │ ├── UserRatingBridgeInterface.php │ │ │ │ │ ├── UserReviewAndRatingBridge.php │ │ │ │ │ ├── UserReviewAndRatingBridgeInterface.php │ │ │ │ │ ├── UserReviewBridge.php │ │ │ │ │ ├── UserReviewBridgeInterface.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── Dao/ │ │ │ │ │ ├── ProductRatingDao.php │ │ │ │ │ ├── ProductRatingDaoInterface.php │ │ │ │ │ ├── RatingDao.php │ │ │ │ │ ├── RatingDaoInterface.php │ │ │ │ │ ├── ReviewDao.php │ │ │ │ │ ├── ReviewDaoInterface.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── DataMapper/ │ │ │ │ │ ├── ProductRatingDataMapper.php │ │ │ │ │ ├── ProductRatingDataMapperInterface.php │ │ │ │ │ ├── RatingDataMapper.php │ │ │ │ │ ├── RatingDataMapperInterface.php │ │ │ │ │ ├── ReviewDataMapper.php │ │ │ │ │ ├── ReviewDataMapperInterface.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── DataObject/ │ │ │ │ │ ├── ProductRating.php │ │ │ │ │ ├── Rating.php │ │ │ │ │ └── Review.php │ │ │ │ ├── Exception/ │ │ │ │ │ ├── RatingPermissionException.php │ │ │ │ │ ├── ReviewAndRatingObjectTypeException.php │ │ │ │ │ └── ReviewPermissionException.php │ │ │ │ ├── Service/ │ │ │ │ │ ├── ProductRatingService.php │ │ │ │ │ ├── ProductRatingServiceInterface.php │ │ │ │ │ ├── RatingCalculatorService.php │ │ │ │ │ ├── RatingCalculatorServiceInterface.php │ │ │ │ │ ├── ReviewAndRatingMergingService.php │ │ │ │ │ ├── ReviewAndRatingMergingServiceInterface.php │ │ │ │ │ ├── UserRatingService.php │ │ │ │ │ ├── UserRatingServiceInterface.php │ │ │ │ │ ├── UserReviewAndRatingService.php │ │ │ │ │ ├── UserReviewAndRatingServiceInterface.php │ │ │ │ │ ├── UserReviewService.php │ │ │ │ │ ├── UserReviewServiceInterface.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── ViewDataObject/ │ │ │ │ │ └── ReviewAndRating.php │ │ │ │ └── services.yaml │ │ │ ├── parameter.yaml │ │ │ └── services.yaml │ │ ├── Framework/ │ │ │ ├── Api/ │ │ │ │ ├── Api.php │ │ │ │ ├── AttributeRouteControllerLoader.php │ │ │ │ ├── ExceptionHandler.php │ │ │ │ ├── HttpExceptionListener.php │ │ │ │ └── services.yaml │ │ │ ├── Cache/ │ │ │ │ ├── Adapter/ │ │ │ │ │ ├── FilesystemTagAwareAdapterFactory.php │ │ │ │ │ ├── TagAwareAdapterFactoryInterface.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── Command/ │ │ │ │ │ ├── ClearCacheCommand.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── Event/ │ │ │ │ │ └── ClearShopCacheEvent.php │ │ │ │ ├── ShopCacheCleanerInterface.php │ │ │ │ ├── ShopCacheFacade.php │ │ │ │ └── services.yaml │ │ │ ├── Config/ │ │ │ │ ├── Dao/ │ │ │ │ │ ├── ShopConfigurationSettingDao.php │ │ │ │ │ └── ShopConfigurationSettingDaoInterface.php │ │ │ │ ├── DataObject/ │ │ │ │ │ ├── ShopConfigurationSetting.php │ │ │ │ │ └── ShopSettingType.php │ │ │ │ ├── Event/ │ │ │ │ │ └── ShopConfigurationChangedEvent.php │ │ │ │ ├── Exception/ │ │ │ │ │ └── InvalidShopSettingValueException.php │ │ │ │ └── Utility/ │ │ │ │ ├── ShopSettingEncoder.php │ │ │ │ └── ShopSettingEncoderInterface.php │ │ │ ├── Console/ │ │ │ │ └── services.yaml │ │ │ ├── Controller/ │ │ │ │ ├── AbstractControllerDecorator.php │ │ │ │ └── ViewControllerInterface.php │ │ │ ├── DIContainer/ │ │ │ │ ├── CompilerPass/ │ │ │ │ │ ├── RoutePass.php │ │ │ │ │ └── ViewControllerPass.php │ │ │ │ ├── ContainerBuilder.php │ │ │ │ ├── Dao/ │ │ │ │ │ ├── ContainerAwareProjectYamlDao.php │ │ │ │ │ ├── ParameterDao.php │ │ │ │ │ ├── ParameterDaoInterface.php │ │ │ │ │ ├── ProjectYamlDao.php │ │ │ │ │ ├── ProjectYamlDaoInterface.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── DataObject/ │ │ │ │ │ └── DIConfigWrapper.php │ │ │ │ ├── Event/ │ │ │ │ │ └── ProjectYamlChangedEvent.php │ │ │ │ ├── Exception/ │ │ │ │ │ ├── MissingServiceException.php │ │ │ │ │ ├── MissingUpdateCallException.php │ │ │ │ │ ├── NoServiceYamlException.php │ │ │ │ │ └── SystemServiceOverwriteException.php │ │ │ │ ├── Service/ │ │ │ │ │ ├── ContainerCacheInterface.php │ │ │ │ │ ├── FilesystemContainerCache.php │ │ │ │ │ ├── ProjectYamlImportService.php │ │ │ │ │ ├── ProjectYamlImportServiceInterface.php │ │ │ │ │ └── services.yaml │ │ │ │ └── services.yaml │ │ │ ├── Dao/ │ │ │ │ ├── EntryDoesNotExistDaoException.php │ │ │ │ └── InvalidObjectIdDaoException.php │ │ │ ├── Database/ │ │ │ │ ├── Configuration/ │ │ │ │ │ ├── DataObject/ │ │ │ │ │ │ └── DatabaseConfiguration.php │ │ │ │ │ └── InvalidDatabaseConfigurationException.php │ │ │ │ ├── ConnectionFactory.php │ │ │ │ ├── ConnectionFactoryInterface.php │ │ │ │ ├── ConnectionParameterProvider.php │ │ │ │ ├── ConnectionParameterProviderInterface.php │ │ │ │ ├── Id.php │ │ │ │ ├── Logger/ │ │ │ │ │ ├── QueryLogContextExtender.php │ │ │ │ │ ├── QueryLogContextExtenderInterface.php │ │ │ │ │ ├── QueryLogFilter.php │ │ │ │ │ ├── QueryLogFilterInterface.php │ │ │ │ │ ├── QueryLogger.php │ │ │ │ │ ├── QueryLoggerFactory.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── QueryBuilderFactory.php │ │ │ │ ├── QueryBuilderFactoryInterface.php │ │ │ │ └── services.yaml │ │ │ ├── Edition/ │ │ │ │ ├── Edition.php │ │ │ │ ├── EditionDirectoriesLocator.php │ │ │ │ ├── EditionPaths.php │ │ │ │ └── EditionResolver.php │ │ │ ├── Env/ │ │ │ │ ├── DotenvLoader.php │ │ │ │ └── EnvUrlFormatter.php │ │ │ ├── Event/ │ │ │ │ └── services.yaml │ │ │ ├── FileSystem/ │ │ │ │ ├── Bridge/ │ │ │ │ │ ├── MasterImageHandlerBridge.php │ │ │ │ │ └── MasterImageHandlerBridgeInterface.php │ │ │ │ ├── DirectoryNotExistentException.php │ │ │ │ ├── DirectoryNotReadableException.php │ │ │ │ ├── FileGenerator/ │ │ │ │ │ ├── Bridge/ │ │ │ │ │ │ ├── CsvFileGeneratorBridge.php │ │ │ │ │ │ └── FileGeneratorBridgeInterface.php │ │ │ │ │ ├── CsvFileGenerator.php │ │ │ │ │ └── FileGeneratorInterface.php │ │ │ │ ├── ImageHandlerInterface.php │ │ │ │ ├── MasterImageHandler.php │ │ │ │ ├── ProjectDirectoriesLocator.php │ │ │ │ ├── ProjectRootLocator.php │ │ │ │ ├── Validator/ │ │ │ │ │ ├── FileValidator.php │ │ │ │ │ ├── FileValidatorBridge.php │ │ │ │ │ ├── FileValidatorBridgeInterface.php │ │ │ │ │ ├── FileValidatorInterface.php │ │ │ │ │ └── ImageValidationException.php │ │ │ │ ├── bootstrap-services.yaml │ │ │ │ └── services.yaml │ │ │ ├── Form/ │ │ │ │ ├── Form.php │ │ │ │ ├── FormFactoryInterface.php │ │ │ │ ├── FormField.php │ │ │ │ ├── FormFieldInterface.php │ │ │ │ ├── FormInterface.php │ │ │ │ ├── FormValidatorInterface.php │ │ │ │ ├── RequiredFieldsValidator.php │ │ │ │ └── services.yaml │ │ │ ├── FormConfiguration/ │ │ │ │ ├── FieldConfiguration.php │ │ │ │ ├── FieldConfigurationInterface.php │ │ │ │ ├── FormConfiguration.php │ │ │ │ ├── FormConfigurationFactoryInterface.php │ │ │ │ ├── FormConfigurationInterface.php │ │ │ │ └── FormFieldsConfigurationDataProviderInterface.php │ │ │ ├── Html/ │ │ │ │ ├── AllowAllHtmlSanitizer.php │ │ │ │ ├── HtmlSanitizer.php │ │ │ │ ├── HtmlSanitizerConfigFactory.php │ │ │ │ ├── HtmlSanitizerConfigFactoryInterface.php │ │ │ │ ├── HtmlSanitizerFactory.php │ │ │ │ ├── HtmlSanitizerInterface.php │ │ │ │ ├── parameters.yaml │ │ │ │ └── services.yaml │ │ │ ├── Logger/ │ │ │ │ ├── Factory/ │ │ │ │ │ ├── LoggerFactoryInterface.php │ │ │ │ │ └── MonologLoggerFactory.php │ │ │ │ ├── LoggerServiceFactory.php │ │ │ │ └── services.yaml │ │ │ ├── Mailing/ │ │ │ │ ├── Factory/ │ │ │ │ │ ├── TransportFactory.php │ │ │ │ │ └── TransportFactoryInterface.php │ │ │ │ ├── parameters.yaml │ │ │ │ └── services.yaml │ │ │ ├── Migration/ │ │ │ │ ├── MigrationExecutor.php │ │ │ │ ├── MigrationExecutorInterface.php │ │ │ │ └── services.yaml │ │ │ ├── Module/ │ │ │ │ ├── Cache/ │ │ │ │ │ ├── CacheNotFoundException.php │ │ │ │ │ ├── InvalidateModuleCacheEventSubscriber.php │ │ │ │ │ ├── ModuleCache.php │ │ │ │ │ ├── ModuleCacheInterface.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── Command/ │ │ │ │ │ ├── InstallModuleAssetsCommand.php │ │ │ │ │ ├── ModuleActivateCommand.php │ │ │ │ │ ├── ModuleDeactivateCommand.php │ │ │ │ │ ├── ModuleInstallCommand.php │ │ │ │ │ ├── ModuleUninstallCommand.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── Configuration/ │ │ │ │ │ ├── Bridge/ │ │ │ │ │ │ ├── ModuleConfigurationDaoBridge.php │ │ │ │ │ │ ├── ModuleConfigurationDaoBridgeInterface.php │ │ │ │ │ │ ├── ModuleConfigurationDataMapperBridge.php │ │ │ │ │ │ ├── ModuleConfigurationDataMapperBridgeInterface.php │ │ │ │ │ │ ├── ModuleSettingBridge.php │ │ │ │ │ │ ├── ModuleSettingBridgeInterface.php │ │ │ │ │ │ ├── ShopConfigurationDaoBridge.php │ │ │ │ │ │ └── ShopConfigurationDaoBridgeInterface.php │ │ │ │ │ ├── Cache/ │ │ │ │ │ │ ├── ClassPropertyModuleConfigurationCache.php │ │ │ │ │ │ └── ModuleConfigurationCacheInterface.php │ │ │ │ │ ├── Dao/ │ │ │ │ │ │ ├── Chain/ │ │ │ │ │ │ │ ├── ClassExtensionsChainDao.php │ │ │ │ │ │ │ ├── ClassExtensionsChainDaoInterface.php │ │ │ │ │ │ │ ├── TemplateExtensionChainDao.php │ │ │ │ │ │ │ └── TemplateExtensionChainDaoInterface.php │ │ │ │ │ │ ├── ModuleConfigurationDao.php │ │ │ │ │ │ ├── ModuleConfigurationDaoInterface.php │ │ │ │ │ │ ├── ModuleConfigurationExtenderInterface.php │ │ │ │ │ │ ├── ModuleDependencyDao.php │ │ │ │ │ │ ├── ModuleDependencyDaoInterface.php │ │ │ │ │ │ ├── ModuleEnvironmentConfigurationDao.php │ │ │ │ │ │ ├── ModuleEnvironmentConfigurationDaoInterface.php │ │ │ │ │ │ ├── ModuleEnvironmentConfigurationExtender.php │ │ │ │ │ │ ├── ShopConfigurationDao.php │ │ │ │ │ │ ├── ShopConfigurationDaoInterface.php │ │ │ │ │ │ ├── ShopEnvironmentMisconfigurationEventSubscriber.php │ │ │ │ │ │ └── ShopEnvironmentWithOrphanSettingEvent.php │ │ │ │ │ ├── DataMapper/ │ │ │ │ │ │ ├── ModuleConfiguration/ │ │ │ │ │ │ │ ├── ClassExtensionsDataMapper.php │ │ │ │ │ │ │ ├── ClassExtensionsExportDataMapper.php │ │ │ │ │ │ │ ├── ControllersDataMapper.php │ │ │ │ │ │ │ ├── ControllersExportDataMapper.php │ │ │ │ │ │ │ ├── EventsDataMapper.php │ │ │ │ │ │ │ └── ModuleSettingsDataMapper.php │ │ │ │ │ │ ├── ModuleConfigurationDataMapper.php │ │ │ │ │ │ ├── ModuleConfigurationDataMapperInterface.php │ │ │ │ │ │ ├── ModuleConfigurationExportDataMapper.php │ │ │ │ │ │ └── ModuleConfigurationExportDataMapperInterface.php │ │ │ │ │ ├── DataObject/ │ │ │ │ │ │ ├── ClassExtensionsChain.php │ │ │ │ │ │ ├── ModuleConfiguration/ │ │ │ │ │ │ │ ├── ClassExtension.php │ │ │ │ │ │ │ ├── Controller.php │ │ │ │ │ │ │ └── Event.php │ │ │ │ │ │ ├── ModuleConfiguration.php │ │ │ │ │ │ ├── ModuleDependencies.php │ │ │ │ │ │ ├── ModuleIdChain.php │ │ │ │ │ │ ├── ModuleTemplateExtensionChain.php │ │ │ │ │ │ ├── ShopConfiguration.php │ │ │ │ │ │ └── UnresolvedModuleDependencies.php │ │ │ │ │ ├── Definition/ │ │ │ │ │ │ ├── TreeBuilderFactory.php │ │ │ │ │ │ └── TreeBuilderFactoryInterface.php │ │ │ │ │ ├── Event/ │ │ │ │ │ │ ├── ModuleClassExtensionChainChangedEvent.php │ │ │ │ │ │ └── ModuleConfigurationChangedEvent.php │ │ │ │ │ ├── Exception/ │ │ │ │ │ │ ├── ExtensionNotInChainException.php │ │ │ │ │ │ ├── InvalidModuleIdException.php │ │ │ │ │ │ ├── ModuleConfigurationNotFoundException.php │ │ │ │ │ │ ├── ModuleSettingNotFountException.php │ │ │ │ │ │ ├── ProjectConfigurationIsEmptyException.php │ │ │ │ │ │ └── ShopConfigurationNotFoundException.php │ │ │ │ │ ├── Service/ │ │ │ │ │ │ ├── ModuleClassExtensionsMergingService.php │ │ │ │ │ │ ├── ModuleClassExtensionsMergingServiceInterface.php │ │ │ │ │ │ ├── ModuleConfigurationMergingService.php │ │ │ │ │ │ ├── ModuleConfigurationMergingServiceInterface.php │ │ │ │ │ │ ├── SettingsMergingService.php │ │ │ │ │ │ └── SettingsMergingServiceInterface.php │ │ │ │ │ ├── bootstrap-services.yaml │ │ │ │ │ └── services.yaml │ │ │ │ ├── Facade/ │ │ │ │ │ ├── ActiveModulesDataProvider.php │ │ │ │ │ ├── ActiveModulesDataProviderBridge.php │ │ │ │ │ ├── ActiveModulesDataProviderBridgeInterface.php │ │ │ │ │ ├── ActiveModulesDataProviderInterface.php │ │ │ │ │ ├── ModuleSettingService.php │ │ │ │ │ ├── ModuleSettingServiceInterface.php │ │ │ │ │ ├── ModulesDataProvider.php │ │ │ │ │ ├── ModulesDataProviderInterface.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── Install/ │ │ │ │ │ ├── DataObject/ │ │ │ │ │ │ └── OxidEshopPackage.php │ │ │ │ │ ├── Service/ │ │ │ │ │ │ ├── BootstrapModuleInstaller.php │ │ │ │ │ │ ├── ModuleConfigurationInstaller.php │ │ │ │ │ │ ├── ModuleConfigurationInstallerInterface.php │ │ │ │ │ │ ├── ModuleFilesInstaller.php │ │ │ │ │ │ ├── ModuleFilesInstallerInterface.php │ │ │ │ │ │ ├── ModuleInstaller.php │ │ │ │ │ │ ├── ModuleInstallerInterface.php │ │ │ │ │ │ ├── ProjectConfigurationGenerator.php │ │ │ │ │ │ └── ProjectConfigurationGeneratorInterface.php │ │ │ │ │ ├── bootstrap-services.yaml │ │ │ │ │ └── services.yaml │ │ │ │ ├── MetaData/ │ │ │ │ │ ├── Converter/ │ │ │ │ │ │ ├── MetaDataConverterAggregate.php │ │ │ │ │ │ ├── MetaDataConverterInterface.php │ │ │ │ │ │ └── ModuleSettingsBooleanConverter.php │ │ │ │ │ ├── Dao/ │ │ │ │ │ │ ├── MetaDataNormalizer.php │ │ │ │ │ │ ├── MetaDataNormalizerInterface.php │ │ │ │ │ │ ├── MetaDataProvider.php │ │ │ │ │ │ ├── MetaDataProviderInterface.php │ │ │ │ │ │ ├── MetaDataSchemataProvider.php │ │ │ │ │ │ ├── MetaDataSchemataProviderInterface.php │ │ │ │ │ │ ├── ModuleConfigurationDao.php │ │ │ │ │ │ └── ModuleConfigurationDaoInterface.php │ │ │ │ │ ├── DataMapper/ │ │ │ │ │ │ ├── MetaDataMapper.php │ │ │ │ │ │ └── MetaDataToModuleConfigurationDataMapperInterface.php │ │ │ │ │ ├── Exception/ │ │ │ │ │ │ ├── InvalidMetaDataException.php │ │ │ │ │ │ ├── MetaDataVersionException.php │ │ │ │ │ │ ├── ModuleIdNotValidException.php │ │ │ │ │ │ ├── SettingNotValidException.php │ │ │ │ │ │ ├── UnsupportedMetaDataKeyException.php │ │ │ │ │ │ ├── UnsupportedMetaDataValueTypeException.php │ │ │ │ │ │ └── UnsupportedMetaDataVersionException.php │ │ │ │ │ ├── Validator/ │ │ │ │ │ │ ├── MetaDataSchemaValidator.php │ │ │ │ │ │ ├── MetaDataSchemaValidatorInterface.php │ │ │ │ │ │ ├── MetaDataValidatorAggregate.php │ │ │ │ │ │ ├── MetaDataValidatorInterface.php │ │ │ │ │ │ ├── ModuleIdValidator.php │ │ │ │ │ │ ├── ModuleSettingBooleanValidator.php │ │ │ │ │ │ └── SettingValidatorInterface.php │ │ │ │ │ └── bootstrap-services.yaml │ │ │ │ ├── Path/ │ │ │ │ │ ├── ModuleAssetsPathResolver.php │ │ │ │ │ ├── ModuleAssetsPathResolverBridge.php │ │ │ │ │ ├── ModuleAssetsPathResolverBridgeInterface.php │ │ │ │ │ ├── ModuleAssetsPathResolverInterface.php │ │ │ │ │ ├── ModulePathResolver.php │ │ │ │ │ ├── ModulePathResolverInterface.php │ │ │ │ │ └── bootstrap-services.yaml │ │ │ │ ├── Setting/ │ │ │ │ │ ├── Event/ │ │ │ │ │ │ └── SettingChangedEvent.php │ │ │ │ │ └── Setting.php │ │ │ │ ├── Setup/ │ │ │ │ │ ├── Bridge/ │ │ │ │ │ │ ├── ModuleActivationBridge.php │ │ │ │ │ │ └── ModuleActivationBridgeInterface.php │ │ │ │ │ ├── Event/ │ │ │ │ │ │ ├── BeforeModuleDeactivationEvent.php │ │ │ │ │ │ ├── FinalizingModuleActivationEvent.php │ │ │ │ │ │ ├── FinalizingModuleDeactivationEvent.php │ │ │ │ │ │ ├── ModuleSetupEvent.php │ │ │ │ │ │ └── ServicesYamlConfigurationErrorEvent.php │ │ │ │ │ ├── EventSubscriber/ │ │ │ │ │ │ ├── DispatchLegacyEventsSubscriber.php │ │ │ │ │ │ └── EventLoggingSubscriber.php │ │ │ │ │ ├── Exception/ │ │ │ │ │ │ ├── ControllersDuplicationModuleConfigurationException.php │ │ │ │ │ │ ├── DependencyValidationException.php │ │ │ │ │ │ ├── InvalidClassExtensionNamespaceException.php │ │ │ │ │ │ ├── InvalidModuleServicesException.php │ │ │ │ │ │ ├── ModuleSettingHandlerNotFoundException.php │ │ │ │ │ │ ├── ModuleSettingNotValidException.php │ │ │ │ │ │ ├── ModuleSetupValidationException.php │ │ │ │ │ │ └── ServicesYamlConfigurationError.php │ │ │ │ │ ├── Service/ │ │ │ │ │ │ ├── ActiveClassExtensionChainResolver.php │ │ │ │ │ │ ├── ActiveClassExtensionChainResolverInterface.php │ │ │ │ │ │ ├── ModuleActivationService.php │ │ │ │ │ │ ├── ModuleActivationServiceInterface.php │ │ │ │ │ │ ├── ModuleDependencyResolver.php │ │ │ │ │ │ ├── ModuleDependencyResolverInterface.php │ │ │ │ │ │ ├── ModuleServicesImporter.php │ │ │ │ │ │ └── ModuleServicesImporterInterface.php │ │ │ │ │ ├── Validator/ │ │ │ │ │ │ ├── ActivationDependencyValidator.php │ │ │ │ │ │ ├── ClassExtensionsValidator.php │ │ │ │ │ │ ├── ControllersValidator.php │ │ │ │ │ │ ├── DeactivationDependencyValidator.php │ │ │ │ │ │ ├── EventsValidator.php │ │ │ │ │ │ ├── ModuleConfigurationValidatorAggregate.php │ │ │ │ │ │ ├── ModuleConfigurationValidatorInterface.php │ │ │ │ │ │ └── ServicesYamlValidator.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── State/ │ │ │ │ │ ├── ModuleStateService.php │ │ │ │ │ ├── ModuleStateServiceInterface.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── Template/ │ │ │ │ │ ├── Locator/ │ │ │ │ │ │ └── ModulesMenuFileLocator.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── Translation/ │ │ │ │ │ ├── Bridge/ │ │ │ │ │ │ ├── AdminAreaModuleTranslationFileLocatorBridge.php │ │ │ │ │ │ ├── AdminAreaModuleTranslationFileLocatorBridgeInterface.php │ │ │ │ │ │ ├── FrontendModuleTranslationFileLocatorBridge.php │ │ │ │ │ │ ├── FrontendModuleTranslationFileLocatorBridgeInterface.php │ │ │ │ │ │ └── services.yaml │ │ │ │ │ ├── Locator/ │ │ │ │ │ │ ├── AdminAreaModuleTranslationFileLocator.php │ │ │ │ │ │ ├── AdminAreaModuleTranslationFileLocatorInterface.php │ │ │ │ │ │ ├── FrontendModuleTranslationFileLocator.php │ │ │ │ │ │ ├── FrontendModuleTranslationFileLocatorInterface.php │ │ │ │ │ │ ├── ModuleTranslationFileLocatorAbstract.php │ │ │ │ │ │ └── services.yaml │ │ │ │ │ └── services.yaml │ │ │ │ └── services.yaml │ │ │ ├── RateLimiter/ │ │ │ │ ├── ApiRateLimitListener.php │ │ │ │ ├── ApiRateLimiterFactory.php │ │ │ │ ├── ApiRateLimiterFactoryInterface.php │ │ │ │ ├── ClientIdentifierProvider.php │ │ │ │ ├── ClientIdentifierProviderInterface.php │ │ │ │ ├── RateLimitHeadersListener.php │ │ │ │ └── services.yaml │ │ │ ├── Request/ │ │ │ │ ├── RequestInterface.php │ │ │ │ └── services.yaml │ │ │ ├── Search/ │ │ │ │ ├── EqualsFilter.php │ │ │ │ ├── FilterInterface.php │ │ │ │ ├── InFilter.php │ │ │ │ ├── Pagination.php │ │ │ │ ├── SearchTerm.php │ │ │ │ ├── SortDirection.php │ │ │ │ └── Sorting.php │ │ │ ├── Session/ │ │ │ │ ├── SessionInterface.php │ │ │ │ └── services.yaml │ │ │ ├── Storage/ │ │ │ │ ├── ArrayStorageInterface.php │ │ │ │ ├── FileStorageFactoryInterface.php │ │ │ │ ├── YamlFileStorage.php │ │ │ │ └── YamlFileStorageFactory.php │ │ │ ├── SystemRequirements/ │ │ │ │ ├── SystemSecurityChecker.php │ │ │ │ ├── SystemSecurityCheckerInterface.php │ │ │ │ └── services.yaml │ │ │ ├── Templating/ │ │ │ │ ├── Cache/ │ │ │ │ │ ├── ShopTemplateCacheService.php │ │ │ │ │ └── ShopTemplateCacheServiceInterface.php │ │ │ │ ├── Exception/ │ │ │ │ │ ├── InvalidTemplateNameException.php │ │ │ │ │ └── InvalidThemeNameException.php │ │ │ │ ├── Locator/ │ │ │ │ │ ├── AdminNavigationFileLocator.php │ │ │ │ │ ├── AdminTemplateFileLocator.php │ │ │ │ │ ├── EditionMenuFileLocator.php │ │ │ │ │ ├── EditionUserFileLocator.php │ │ │ │ │ ├── FileLocatorInterface.php │ │ │ │ │ ├── NavigationFileLocatorInterface.php │ │ │ │ │ └── TemplateFileLocator.php │ │ │ │ ├── TemplateEngine.php │ │ │ │ ├── TemplateEngineFactoryInterface.php │ │ │ │ ├── TemplateEngineInterface.php │ │ │ │ ├── TemplateRenderer.php │ │ │ │ ├── TemplateRendererBridge.php │ │ │ │ ├── TemplateRendererBridgeInterface.php │ │ │ │ ├── TemplateRendererInterface.php │ │ │ │ └── services.yaml │ │ │ ├── Theme/ │ │ │ │ ├── Bridge/ │ │ │ │ │ ├── AdminThemeBridge.php │ │ │ │ │ └── AdminThemeBridgeInterface.php │ │ │ │ ├── Command/ │ │ │ │ │ └── ThemeActivateCommand.php │ │ │ │ ├── Config/ │ │ │ │ │ ├── Dao/ │ │ │ │ │ │ ├── ThemeSettingDao.php │ │ │ │ │ │ └── ThemeSettingDaoInterface.php │ │ │ │ │ └── DataObject/ │ │ │ │ │ └── ThemeSetting.php │ │ │ │ ├── Event/ │ │ │ │ │ ├── ThemeActivatedEvent.php │ │ │ │ │ └── ThemeSettingChangedEvent.php │ │ │ │ └── services.yaml │ │ │ ├── parameters.yaml │ │ │ └── services.yaml │ │ ├── README.md │ │ ├── Setup/ │ │ │ ├── Database/ │ │ │ │ ├── DatabaseNotEmptyException.php │ │ │ │ ├── SetupDbConnectionFactory.php │ │ │ │ ├── SetupDbConnectionFactoryInterface.php │ │ │ │ ├── SetupDbConnectionValidator.php │ │ │ │ ├── SetupDbConnectionValidatorInterface.php │ │ │ │ ├── SetupDbValidator.php │ │ │ │ ├── SetupDbValidatorInterface.php │ │ │ │ ├── ShopDbManager.php │ │ │ │ ├── ShopDbManagerInterface.php │ │ │ │ ├── UnsupportedDatabaseConfigurationException.php │ │ │ │ ├── ViewsGeneratorFactory.php │ │ │ │ ├── ViewsGeneratorFactoryInterface.php │ │ │ │ ├── services.yaml │ │ │ │ └── sql/ │ │ │ │ ├── database_schema.sql │ │ │ │ └── initial_data.sql │ │ │ ├── Directory/ │ │ │ │ ├── DirectoryValidator.php │ │ │ │ ├── DirectoryValidatorInterface.php │ │ │ │ ├── NoPermissionDirectoryException.php │ │ │ │ ├── NonExistenceDirectoryException.php │ │ │ │ ├── NotAbsolutePathException.php │ │ │ │ └── services.yaml │ │ │ ├── Htaccess/ │ │ │ │ ├── HtaccessAccessException.php │ │ │ │ ├── HtaccessDao.php │ │ │ │ ├── HtaccessDaoFactory.php │ │ │ │ ├── HtaccessDaoFactoryInterface.php │ │ │ │ ├── HtaccessDaoInterface.php │ │ │ │ ├── HtaccessUpdater.php │ │ │ │ ├── HtaccessUpdaterInterface.php │ │ │ │ ├── InvalidShopUrlException.php │ │ │ │ ├── ShopBaseUrl.php │ │ │ │ └── services.yaml │ │ │ ├── Language/ │ │ │ │ ├── DefaultLanguage.php │ │ │ │ ├── IncorrectLanguageException.php │ │ │ │ ├── LanguageInstaller.php │ │ │ │ ├── LanguageInstallerInterface.php │ │ │ │ └── services.yaml │ │ │ ├── Parameters/ │ │ │ │ ├── SetupParameters.php │ │ │ │ ├── SetupParametersFactory.php │ │ │ │ ├── SetupParametersFactoryInterface.php │ │ │ │ └── services.yaml │ │ │ ├── ShopConfiguration/ │ │ │ │ ├── ShopConfigurationUpdater.php │ │ │ │ ├── ShopConfigurationUpdaterInterface.php │ │ │ │ └── services.yaml │ │ │ ├── ShopSetupCommand.php │ │ │ ├── Validator/ │ │ │ │ ├── SetupInfrastructureValidator.php │ │ │ │ ├── SetupInfrastructureValidatorInterface.php │ │ │ │ └── services.yaml │ │ │ └── services.yaml │ │ ├── Transition/ │ │ │ ├── Adapter/ │ │ │ │ ├── Email/ │ │ │ │ │ ├── EmailAdapterInterface.php │ │ │ │ │ └── SymfonyMailerAdapter.php │ │ │ │ ├── Exception/ │ │ │ │ │ └── TranslationNotFoundException.php │ │ │ │ ├── Session/ │ │ │ │ │ └── SessionAdapter.php │ │ │ │ ├── ShopAdapter.php │ │ │ │ ├── ShopAdapterInterface.php │ │ │ │ ├── TemplateLogic/ │ │ │ │ │ ├── AbstractInsertNewBasketItemLogic.php │ │ │ │ │ ├── AddUrlParametersLogic.php │ │ │ │ │ ├── ContentFactory.php │ │ │ │ │ ├── FileSizeLogic.php │ │ │ │ │ ├── FormatCurrencyLogic.php │ │ │ │ │ ├── FormatDateLogic.php │ │ │ │ │ ├── FormatPriceLogic.php │ │ │ │ │ ├── FormatTimeLogic.php │ │ │ │ │ ├── IfContentLogic.php │ │ │ │ │ ├── IncludeDynamicLogic.php │ │ │ │ │ ├── IncludeWidgetLogic.php │ │ │ │ │ ├── InputHelpLogic.php │ │ │ │ │ ├── InsertNewBasketItemLogicTwig.php │ │ │ │ │ ├── ScriptLogic.php │ │ │ │ │ ├── SeoUrlLogic.php │ │ │ │ │ ├── SmartWordwrapLogic.php │ │ │ │ │ ├── StyleLogic.php │ │ │ │ │ ├── TranslateFilterLogic.php │ │ │ │ │ ├── TranslateFunctionLogic.php │ │ │ │ │ ├── TranslateSalutationLogic.php │ │ │ │ │ ├── TruncateLogic.php │ │ │ │ │ ├── WordwrapLogic.php │ │ │ │ │ └── services.yaml │ │ │ │ ├── Translator/ │ │ │ │ │ ├── LegacyTemplateTranslator.php │ │ │ │ │ ├── TranslatorInterface.php │ │ │ │ │ └── services.yaml │ │ │ │ └── services.yaml │ │ │ ├── ShopEvents/ │ │ │ │ ├── AfterAdminAjaxRequestProcessedEvent.php │ │ │ │ ├── AfterModelDeleteEvent.php │ │ │ │ ├── AfterModelInsertEvent.php │ │ │ │ ├── AfterModelUpdateEvent.php │ │ │ │ ├── AfterRequestProcessedEvent.php │ │ │ │ ├── AllCookiesRemovedEvent.php │ │ │ │ ├── ApplicationExitEvent.php │ │ │ │ ├── BasketChangedEvent.php │ │ │ │ ├── BeforeHeadersSendEvent.php │ │ │ │ ├── BeforeModelDeleteEvent.php │ │ │ │ ├── BeforeModelUpdateEvent.php │ │ │ │ ├── BeforeSessionStartEvent.php │ │ │ │ ├── ModelChangeEventTrait.php │ │ │ │ ├── ViewRenderedEvent.php │ │ │ │ └── services.yaml │ │ │ └── Utility/ │ │ │ ├── BasicContext.php │ │ │ ├── BasicContextInterface.php │ │ │ ├── Context.php │ │ │ ├── ContextInterface.php │ │ │ ├── Exception/ │ │ │ │ └── AdminUserNotFoundException.php │ │ │ ├── bootstrap-services.yaml │ │ │ └── services.yaml │ │ ├── Utility/ │ │ │ ├── Authentication/ │ │ │ │ ├── Exception/ │ │ │ │ │ └── PasswordPolicyException.php │ │ │ │ └── Policy/ │ │ │ │ ├── PasswordPolicy.php │ │ │ │ └── PasswordPolicyInterface.php │ │ │ ├── Email/ │ │ │ │ ├── EmailValidatorService.php │ │ │ │ ├── EmailValidatorServiceBridge.php │ │ │ │ ├── EmailValidatorServiceBridgeInterface.php │ │ │ │ ├── EmailValidatorServiceInterface.php │ │ │ │ └── services.yaml │ │ │ ├── Hash/ │ │ │ │ ├── Exception/ │ │ │ │ │ └── PasswordHashException.php │ │ │ │ ├── Service/ │ │ │ │ │ ├── Argon2IPasswordHashService.php │ │ │ │ │ ├── BcryptPasswordHashService.php │ │ │ │ │ └── PasswordHashServiceInterface.php │ │ │ │ └── services.yaml │ │ │ ├── Header/ │ │ │ │ ├── Bridge/ │ │ │ │ │ ├── CsvHeaderGeneratorBridge.php │ │ │ │ │ └── HeaderGeneratorBridgeInterface.php │ │ │ │ ├── CsvHeaderGenerator.php │ │ │ │ ├── HeaderGeneratorInterface.php │ │ │ │ └── services.yaml │ │ │ ├── Url/ │ │ │ │ ├── UrlParser.php │ │ │ │ ├── UrlParserInterface.php │ │ │ │ └── services.yaml │ │ │ └── services.yaml │ │ ├── parameters.yaml │ │ └── services.yaml │ ├── admin/ │ │ ├── index.php │ │ └── oxajax.php │ ├── api.php │ ├── bin/ │ │ ├── .htaccess │ │ └── cron.php │ ├── bootstrap.php │ ├── export/ │ │ └── .gitkeep │ ├── getimg.php │ ├── index.php │ ├── log/ │ │ └── .htaccess │ ├── migration/ │ │ ├── data/ │ │ │ ├── Version20170718124421.php │ │ │ ├── Version20171018144650.php │ │ │ ├── Version20180214152228.php │ │ │ ├── Version20180228160418.php │ │ │ ├── Version20180703135728.php │ │ │ ├── Version20180928072235.php │ │ │ ├── Version20191007144155.php │ │ │ ├── Version20201029110624.php │ │ │ ├── Version20201103010101.php │ │ │ ├── Version20201203101929.php │ │ │ ├── Version20211117193324.php │ │ │ ├── Version20230109135625.php │ │ │ ├── Version20230301123522.php │ │ │ ├── Version20231128113123.php │ │ │ ├── Version20250320120000.php │ │ │ ├── Version20250911140000.php │ │ │ └── Version20251009121500.php │ │ ├── migrations.yml │ │ ├── project_data/ │ │ │ └── .gitkeep │ │ └── project_migrations.yml │ ├── modules/ │ │ └── functions.php.dist │ ├── offline.html │ ├── out/ │ │ ├── .gitignore │ │ ├── downloads/ │ │ │ ├── .htaccess │ │ │ ├── README.txt │ │ │ └── uploads/ │ │ │ └── .gitkeep │ │ ├── media/ │ │ │ └── .gitkeep │ │ └── pictures/ │ │ ├── generated/ │ │ │ └── .gitkeep │ │ ├── media/ │ │ │ └── .gitkeep │ │ ├── promo/ │ │ │ └── .gitkeep │ │ └── vendor/ │ │ └── icon/ │ │ └── .gitkeep │ ├── overridablefunctions.php │ ├── oxfunctions.php │ ├── oxseo.php │ ├── robots.txt │ └── widget.php ├── tests/ │ ├── CachingTrait.php │ ├── Codeception/ │ │ ├── .gitignore │ │ ├── Acceptance/ │ │ │ ├── Admin/ │ │ │ │ ├── ActiveCategoryAtStartCest.php │ │ │ │ ├── AdminCreateCategoryCest.php │ │ │ │ ├── AssignProductsToCategoryCest.php │ │ │ │ ├── DownloadableProductCest.php │ │ │ │ ├── ExportNewsletterRecipientsCest.php │ │ │ │ ├── GenericExportCest.php │ │ │ │ ├── GenericImportCest.php │ │ │ │ ├── LoginCest.php │ │ │ │ ├── ManufacturerCest.php │ │ │ │ ├── MasterCoreStockSettingsCest.php │ │ │ │ ├── ModuleActivationCest.php │ │ │ │ ├── ModuleSettingsCest.php │ │ │ │ ├── ModuleSortListCest.php │ │ │ │ ├── NavigationCest.php │ │ │ │ ├── NewCMSCreationCest.php │ │ │ │ ├── NewLanguageCreationCest.php │ │ │ │ ├── NotRegisteredUserOrderCest.php │ │ │ │ ├── OrderEmailCest.php │ │ │ │ ├── OrderTotalsAndCurrencyDisplayCest.php │ │ │ │ ├── ProductListStatusTestCest.php │ │ │ │ ├── ProductPicturesCest.php │ │ │ │ ├── ProductStockTestCest.php │ │ │ │ ├── ProductVariantWithSelectionsCest.php │ │ │ │ ├── RemoveUserOrderCest.php │ │ │ │ ├── SeoCest.php │ │ │ │ ├── ServiceDiagnosticToolCest.php │ │ │ │ ├── SessionHandlingCest.php │ │ │ │ ├── ShopLicenseCest.php │ │ │ │ ├── SystemInfoCest.php │ │ │ │ ├── UpdateSQLToolCest.php │ │ │ │ ├── UserCest.php │ │ │ │ └── UserCredentialsCest.php │ │ │ ├── BasketRefreshWithDeletedProductCest.php │ │ │ ├── CMSPageChangeIdentCest.php │ │ │ ├── CategoryDetailCest.php │ │ │ ├── CategoryProductListCest.php │ │ │ ├── CheckoutProcessCest.php │ │ │ ├── ContactFormCest.php │ │ │ ├── CookiesNoticeCest.php │ │ │ ├── CurrencyCest.php │ │ │ ├── DistributorCest.php │ │ │ ├── DownloadableProductCest.php │ │ │ ├── DynamicImageGenerationCest.php │ │ │ ├── FlowThemeCest.php │ │ │ ├── GiftRegistryCest.php │ │ │ ├── LanguageCest.php │ │ │ ├── ManufacturerCest.php │ │ │ ├── NewsletterCest.php │ │ │ ├── PrivateSalesBasketCest.php │ │ │ ├── ProductCompareCest.php │ │ │ ├── ProductDetailsPageCest.php │ │ │ ├── ProductLabelCest.php │ │ │ ├── ProductPromotionCest.php │ │ │ ├── ProductStatusTestCest.php │ │ │ ├── ReviewAndRatingCest.php │ │ │ ├── SearchCest.php │ │ │ ├── SessionHandlingCest.php │ │ │ ├── ShopNavigationCest.php │ │ │ ├── UserAccountCest.php │ │ │ ├── UserRegistrationCest.php │ │ │ ├── WishListCest.php │ │ │ └── _bootstrap.php │ │ ├── Acceptance.suite.yml │ │ ├── Config/ │ │ │ ├── CodeceptionParametersProvider.php │ │ │ └── params.php │ │ ├── Support/ │ │ │ ├── AcceptanceActor.php │ │ │ ├── AcceptanceTester.php │ │ │ ├── Data/ │ │ │ │ ├── category.php │ │ │ │ ├── genericImport/ │ │ │ │ │ ├── oxartextends_with_header.csv │ │ │ │ │ └── oxartextends_without_header.csv │ │ │ │ ├── modules/ │ │ │ │ │ ├── test-module-problems/ │ │ │ │ │ │ └── metadata.php │ │ │ │ │ └── testModule/ │ │ │ │ │ ├── Controller/ │ │ │ │ │ │ └── ContentController.php │ │ │ │ │ ├── metadata.php │ │ │ │ │ └── views/ │ │ │ │ │ ├── admin_smarty/ │ │ │ │ │ │ ├── de/ │ │ │ │ │ │ │ └── module_options.php │ │ │ │ │ │ └── en/ │ │ │ │ │ │ └── module_options.php │ │ │ │ │ └── admin_twig/ │ │ │ │ │ ├── de/ │ │ │ │ │ │ └── module_options.php │ │ │ │ │ └── en/ │ │ │ │ │ └── module_options.php │ │ │ │ ├── order.php │ │ │ │ ├── product.php │ │ │ │ ├── product_image.php │ │ │ │ ├── shop.php │ │ │ │ ├── test-fixtures.sql │ │ │ │ ├── user.php │ │ │ │ └── voucher.php │ │ │ └── Helper/ │ │ │ └── Acceptance.php │ │ ├── _envs/ │ │ │ └── .gitkeep │ │ └── _output/ │ │ └── .gitkeep │ ├── ConsoleRunnerTrait.php │ ├── ContainerTrait.php │ ├── DatabaseTrait.php │ ├── EnvTrait.php │ ├── FilesystemTrait.php │ ├── Integration/ │ │ ├── Application/ │ │ │ ├── Component/ │ │ │ │ ├── BasketComponentSessionTest.php │ │ │ │ ├── BasketComponentTest.php │ │ │ │ └── UserComponentTest.php │ │ │ ├── Controller/ │ │ │ │ ├── Admin/ │ │ │ │ │ ├── ArticlePicturesAjaxTest.php │ │ │ │ │ ├── ArticleVariantTest.php │ │ │ │ │ ├── ContentMainTest.php │ │ │ │ │ ├── CountryMainTest.php │ │ │ │ │ ├── Fixtures/ │ │ │ │ │ │ └── testModule/ │ │ │ │ │ │ ├── ModuleSetup.php │ │ │ │ │ │ ├── Renderer.php │ │ │ │ │ │ ├── RendererInterface.php │ │ │ │ │ │ ├── metadata.php │ │ │ │ │ │ └── services.yaml │ │ │ │ │ ├── ManufacturerPictureTest.php │ │ │ │ │ ├── ModuleConfigurationTest.php │ │ │ │ │ └── ShopConfigurationTest.php │ │ │ │ └── OrderControllerTest.php │ │ │ └── Model/ │ │ │ ├── ArticleListTest.php │ │ │ ├── ArticleTest.php │ │ │ ├── BasketReservationTest.php │ │ │ ├── DiagnosticsOutputTest.php │ │ │ ├── GroupsTest.php │ │ │ ├── ManufacturerTest.php │ │ │ ├── ReviewTest.php │ │ │ ├── UserTest.php │ │ │ ├── UtilsSpy.php │ │ │ └── VariantHandlerTest.php │ │ ├── Core/ │ │ │ ├── DynamicImageGeneratorTest.php │ │ │ ├── EmailTest.php │ │ │ ├── Fixtures/ │ │ │ │ └── Modules/ │ │ │ │ ├── ExampleModule/ │ │ │ │ │ └── metadata.php │ │ │ │ └── NotActiveModuleWithMissingData/ │ │ │ │ └── metadata.php │ │ │ ├── GenericImport/ │ │ │ │ └── ImportObject/ │ │ │ │ └── ImportObjectTest.php │ │ │ ├── InputValidatorTest.php │ │ │ ├── LanguageTest.php │ │ │ ├── Model/ │ │ │ │ ├── CategoryListTest.php │ │ │ │ └── UserTest.php │ │ │ ├── OnlineModuleVersionNotifierTest.php │ │ │ ├── PictureHandlerTest.php │ │ │ ├── SessionTest.php │ │ │ ├── ShopControlTest.php │ │ │ ├── SystemRequirementsTest.php │ │ │ ├── Utils/ │ │ │ │ ├── UtilsCacheTest.php │ │ │ │ ├── UtilsSearchEngineTest.php │ │ │ │ └── UtilsSpy.php │ │ │ ├── UtilsFileTest.php │ │ │ ├── UtilsServerTest.php │ │ │ ├── UtilsTest.php │ │ │ └── ViewConfigTest.php │ │ ├── IntegrationTestCase.php │ │ ├── Internal/ │ │ │ ├── BootstrapContainer/ │ │ │ │ └── BootstrapContainerTest.php │ │ │ ├── ComposerPlugin/ │ │ │ │ ├── ComponentInstallerTest.php │ │ │ │ ├── Fixtures/ │ │ │ │ │ └── test-module-package-installation/ │ │ │ │ │ ├── metadata.php │ │ │ │ │ └── services.yaml │ │ │ │ └── ModulePackageInstallerTest.php │ │ │ ├── Container/ │ │ │ │ ├── ContainerTest.php │ │ │ │ └── Fixtures/ │ │ │ │ ├── SomeService.php │ │ │ │ └── services.yaml │ │ │ ├── Domain/ │ │ │ │ ├── Admin/ │ │ │ │ │ ├── Command/ │ │ │ │ │ │ └── CreateUserCommandTest.php │ │ │ │ │ ├── Dao/ │ │ │ │ │ │ └── AdminDaoTest.php │ │ │ │ │ └── Service/ │ │ │ │ │ └── AdminUserServiceTest.php │ │ │ │ ├── Authentication/ │ │ │ │ │ ├── Bridge/ │ │ │ │ │ │ ├── PasswordServiceBridgeTest.php │ │ │ │ │ │ └── RandomTokenGeneratorBridgeTest.php │ │ │ │ │ └── Service/ │ │ │ │ │ ├── PasswordHashServiceTest.php │ │ │ │ │ └── PasswordVerificationServiceTest.php │ │ │ │ ├── Contact/ │ │ │ │ │ └── Form/ │ │ │ │ │ └── ContactFormBridgeTest.php │ │ │ │ ├── Media/ │ │ │ │ │ ├── Dao/ │ │ │ │ │ │ └── MediaDaoTest.php │ │ │ │ │ └── MediaUploaderTest.php │ │ │ │ ├── Newsletter/ │ │ │ │ │ ├── Dao/ │ │ │ │ │ │ └── NewsletterRecipientsDaoTest.php │ │ │ │ │ └── DataMapper/ │ │ │ │ │ └── NewsletterRecipientsDataMapperTest.php │ │ │ │ ├── Product/ │ │ │ │ │ └── Media/ │ │ │ │ │ ├── Dao/ │ │ │ │ │ │ └── ProductMediaDaoTest.php │ │ │ │ │ ├── Factory/ │ │ │ │ │ │ └── ProductMediaFactoryTest.php │ │ │ │ │ └── Service/ │ │ │ │ │ ├── ProductMediaResolverTest.php │ │ │ │ │ ├── ProductMediaServiceTest.php │ │ │ │ │ ├── ProductMediaUploadProcessorTest.php │ │ │ │ │ ├── ProductMediaViewServiceTest.php │ │ │ │ │ └── ProductVariantMediaServiceTest.php │ │ │ │ └── Review/ │ │ │ │ ├── Bridge/ │ │ │ │ │ ├── ProductRatingBridgeTest.php │ │ │ │ │ ├── UserRatingBridgeTest.php │ │ │ │ │ └── UserReviewBridgeTest.php │ │ │ │ └── Dao/ │ │ │ │ ├── ProductRatingDaoTest.php │ │ │ │ ├── RatingDaoTest.php │ │ │ │ └── ReviewDaoTest.php │ │ │ ├── Framework/ │ │ │ │ ├── Cache/ │ │ │ │ │ └── ShopCacheFacadeTest.php │ │ │ │ ├── Configuration/ │ │ │ │ │ └── Dao/ │ │ │ │ │ └── SystemConfigurationDaoTest.php │ │ │ │ ├── Console/ │ │ │ │ │ ├── ConsoleTest.php │ │ │ │ │ └── Fixtures/ │ │ │ │ │ └── services.yaml │ │ │ │ ├── DIContainer/ │ │ │ │ │ ├── ContainerBuilderTest.php │ │ │ │ │ ├── Dao/ │ │ │ │ │ │ ├── ParameterDaoTest.php │ │ │ │ │ │ └── ProjectYamlDaoTest.php │ │ │ │ │ ├── Fixtures/ │ │ │ │ │ │ ├── Ce/ │ │ │ │ │ │ │ └── Internal/ │ │ │ │ │ │ │ ├── Service.php │ │ │ │ │ │ │ ├── ServiceInterface.php │ │ │ │ │ │ │ └── services.yaml │ │ │ │ │ │ ├── Component/ │ │ │ │ │ │ │ └── Internal/ │ │ │ │ │ │ │ ├── ServiceDecorator.php │ │ │ │ │ │ │ └── services.yaml │ │ │ │ │ │ ├── Module/ │ │ │ │ │ │ │ └── Internal/ │ │ │ │ │ │ │ ├── ServiceDecorator.php │ │ │ │ │ │ │ └── services.yaml │ │ │ │ │ │ ├── Project/ │ │ │ │ │ │ │ └── Internal/ │ │ │ │ │ │ │ └── ServiceDecorator.php │ │ │ │ │ │ ├── ProjectEnv/ │ │ │ │ │ │ │ └── Internal/ │ │ │ │ │ │ │ └── ServiceDecorator.php │ │ │ │ │ │ └── var/ │ │ │ │ │ │ ├── active_module_services.yaml │ │ │ │ │ │ ├── configuration/ │ │ │ │ │ │ │ ├── parameters.yaml │ │ │ │ │ │ │ └── services.yaml │ │ │ │ │ │ ├── configuration.abc/ │ │ │ │ │ │ │ ├── parameters.yaml │ │ │ │ │ │ │ └── services.yaml │ │ │ │ │ │ └── generated_services.yaml │ │ │ │ │ └── Service/ │ │ │ │ │ ├── Fixtures/ │ │ │ │ │ │ ├── generated_services.yaml │ │ │ │ │ │ ├── module-1/ │ │ │ │ │ │ │ └── services.yaml │ │ │ │ │ │ └── module-2/ │ │ │ │ │ │ └── services.yaml │ │ │ │ │ └── ProjectYamlImportServiceTest.php │ │ │ │ ├── Database/ │ │ │ │ │ └── ConnectionFactoryTest.php │ │ │ │ ├── Env/ │ │ │ │ │ ├── EnvLoaderTest.php │ │ │ │ │ ├── EnvUrlFormatterTest.php │ │ │ │ │ └── Fixtures/ │ │ │ │ │ └── EnvLoader/ │ │ │ │ │ └── services.yaml │ │ │ │ ├── Event/ │ │ │ │ │ ├── EventLoggingSubscriberTest.php │ │ │ │ │ ├── TestEvent.php │ │ │ │ │ └── generated_project.yaml │ │ │ │ ├── FileSystem/ │ │ │ │ │ ├── FileGenerator/ │ │ │ │ │ │ └── CsvFileGeneratorTest.php │ │ │ │ │ ├── ProjectRootLocatorTest.php │ │ │ │ │ └── Validator/ │ │ │ │ │ ├── FileValidatorTest.php │ │ │ │ │ └── Fixtures/ │ │ │ │ │ └── images/ │ │ │ │ │ └── fake_image.php │ │ │ │ ├── Logger/ │ │ │ │ │ └── LoggerTest.php │ │ │ │ ├── Module/ │ │ │ │ │ ├── Cache/ │ │ │ │ │ │ └── ModuleCacheTest.php │ │ │ │ │ ├── Command/ │ │ │ │ │ │ ├── Fixtures/ │ │ │ │ │ │ │ └── modules/ │ │ │ │ │ │ │ └── testmodule/ │ │ │ │ │ │ │ ├── assets/ │ │ │ │ │ │ │ │ └── some.css │ │ │ │ │ │ │ └── metadata.php │ │ │ │ │ │ ├── InstallModuleAssetsCommandTest.php │ │ │ │ │ │ ├── ModuleActivateCommandTest.php │ │ │ │ │ │ ├── ModuleCommandsTestCase.php │ │ │ │ │ │ ├── ModuleDeactivateCommandTest.php │ │ │ │ │ │ ├── ModuleInstallCommandTest.php │ │ │ │ │ │ └── ModuleUninstallCommandTest.php │ │ │ │ │ ├── Configuration/ │ │ │ │ │ │ ├── Bridge/ │ │ │ │ │ │ │ ├── ModuleSettingBridgeTest.php │ │ │ │ │ │ │ └── ShopConfigurationDaoBridgeTest.php │ │ │ │ │ │ ├── Dao/ │ │ │ │ │ │ │ ├── Chain/ │ │ │ │ │ │ │ │ └── ClassExtensionsChainDaoTest.php │ │ │ │ │ │ │ ├── Fixtures/ │ │ │ │ │ │ │ │ ├── TestModuleWithDependencies/ │ │ │ │ │ │ │ │ │ └── dependencies.yaml │ │ │ │ │ │ │ │ ├── TestModuleWithEmptyDependencyFile/ │ │ │ │ │ │ │ │ │ └── dependencies.yaml │ │ │ │ │ │ │ │ └── project_configuration/ │ │ │ │ │ │ │ │ └── shops/ │ │ │ │ │ │ │ │ └── 1/ │ │ │ │ │ │ │ │ └── template_extension_chain.yaml │ │ │ │ │ │ │ ├── ModuleConfigurationDaoTest.php │ │ │ │ │ │ │ ├── ModuleDependencyDaoTest.php │ │ │ │ │ │ │ ├── ModuleEnvironmentConfigurationDaoTest.php │ │ │ │ │ │ │ ├── ModuleTemplateExtensionChainTest.php │ │ │ │ │ │ │ ├── ShopConfigurationDaoTest.php │ │ │ │ │ │ │ └── ShopEnvironmentMisconfigurationEventSubscriberTest.php │ │ │ │ │ │ ├── DataMapper/ │ │ │ │ │ │ │ └── ModuleConfigurationDataMapperTest.php │ │ │ │ │ │ └── Service/ │ │ │ │ │ │ └── ModuleConfigurationMergingServiceTest.php │ │ │ │ │ ├── Controller/ │ │ │ │ │ │ ├── Fixtures/ │ │ │ │ │ │ │ └── module1/ │ │ │ │ │ │ │ ├── composer.json │ │ │ │ │ │ │ ├── metadata.php │ │ │ │ │ │ │ ├── services.yaml │ │ │ │ │ │ │ ├── src/ │ │ │ │ │ │ │ │ └── Controller/ │ │ │ │ │ │ │ │ ├── ApiTestController.php │ │ │ │ │ │ │ │ ├── ModuleController.php │ │ │ │ │ │ │ │ ├── ModuleControllerAsService.php │ │ │ │ │ │ │ │ └── ModuleControllerDecorator.php │ │ │ │ │ │ │ └── views/ │ │ │ │ │ │ │ └── twig/ │ │ │ │ │ │ │ ├── module_controller.html.twig │ │ │ │ │ │ │ └── module_controller_as_service.html.twig │ │ │ │ │ │ ├── ModuleControllerApiTest.php │ │ │ │ │ │ └── ModuleControllerRenderTest.php │ │ │ │ │ ├── Facade/ │ │ │ │ │ │ ├── ActiveModulesDataProviderTest.php │ │ │ │ │ │ ├── ModuleSettingServiceTest.php │ │ │ │ │ │ └── ModulesDataProviderTest.php │ │ │ │ │ ├── Install/ │ │ │ │ │ │ └── Service/ │ │ │ │ │ │ ├── BootstrapModuleInstallerTest.php │ │ │ │ │ │ ├── Fixtures/ │ │ │ │ │ │ │ ├── myTestModule/ │ │ │ │ │ │ │ │ └── metadata.php │ │ │ │ │ │ │ └── testModuleWithCustomSource/ │ │ │ │ │ │ │ └── customSourcePath/ │ │ │ │ │ │ │ └── metadata.php │ │ │ │ │ │ ├── ModuleConfigurationInstallerTest.php │ │ │ │ │ │ ├── ModuleFilesInstallerTest.php │ │ │ │ │ │ └── ModuleInstallerTest.php │ │ │ │ │ ├── MetaData/ │ │ │ │ │ │ ├── Dao/ │ │ │ │ │ │ │ └── MetaDataProviderTest.php │ │ │ │ │ │ ├── DataMapper/ │ │ │ │ │ │ │ └── MetaDataMapperTest.php │ │ │ │ │ │ ├── MetaDataMapperTest.php │ │ │ │ │ │ └── TestData/ │ │ │ │ │ │ ├── TestModuleMetaData20/ │ │ │ │ │ │ │ └── metadata.php │ │ │ │ │ │ ├── TestModuleMetaData21/ │ │ │ │ │ │ │ └── metadata.php │ │ │ │ │ │ ├── TestModuleWithPartialMetaData/ │ │ │ │ │ │ │ └── metadata.php │ │ │ │ │ │ └── TestModuleWithSurplusData/ │ │ │ │ │ │ └── metadata.php │ │ │ │ │ ├── Setup/ │ │ │ │ │ │ ├── ModuleEventsTest.php │ │ │ │ │ │ ├── Service/ │ │ │ │ │ │ │ ├── ActiveClassExtensionChainResolverTest.php │ │ │ │ │ │ │ ├── Fixtures/ │ │ │ │ │ │ │ │ ├── Module/ │ │ │ │ │ │ │ │ │ └── services.yaml │ │ │ │ │ │ │ │ ├── TestDependentModule/ │ │ │ │ │ │ │ │ │ └── metadata.php │ │ │ │ │ │ │ │ ├── TestMissingDependencyModule/ │ │ │ │ │ │ │ │ │ ├── TestModuleService.php │ │ │ │ │ │ │ │ │ ├── dependencies.yaml │ │ │ │ │ │ │ │ │ ├── metadata.php │ │ │ │ │ │ │ │ │ └── services.yaml │ │ │ │ │ │ │ │ └── TestModuleWithDependency/ │ │ │ │ │ │ │ │ ├── dependencies.yaml │ │ │ │ │ │ │ │ └── metadata.php │ │ │ │ │ │ │ ├── ModuleActivationServiceTest.php │ │ │ │ │ │ │ ├── ModuleDependencyActivationTest.php │ │ │ │ │ │ │ ├── ModuleDependencyResolverTest.php │ │ │ │ │ │ │ └── ModuleServicesImporterTest.php │ │ │ │ │ │ └── Validator/ │ │ │ │ │ │ ├── Fixtures/ │ │ │ │ │ │ │ ├── ModuleWithCorrectServiceYaml/ │ │ │ │ │ │ │ │ └── services.yaml │ │ │ │ │ │ │ └── ModuleWithWrongServiceYaml/ │ │ │ │ │ │ │ └── services.yaml │ │ │ │ │ │ └── ServicesYamlValidatorTest.php │ │ │ │ │ ├── State/ │ │ │ │ │ │ └── ModuleStateServiceTest.php │ │ │ │ │ ├── TestData/ │ │ │ │ │ │ └── TestModule/ │ │ │ │ │ │ ├── CustomSourceDirectory/ │ │ │ │ │ │ │ └── metadata.php │ │ │ │ │ │ ├── ModuleEvents.php │ │ │ │ │ │ ├── SomeModuleService.php │ │ │ │ │ │ ├── TestEventSubscriber.php │ │ │ │ │ │ ├── assets/ │ │ │ │ │ │ │ └── some.css │ │ │ │ │ │ ├── metadata.php │ │ │ │ │ │ ├── readme.txt │ │ │ │ │ │ └── services.yaml │ │ │ │ │ └── Translation/ │ │ │ │ │ └── Locator/ │ │ │ │ │ ├── AdminAreaModuleTranslationFileLocatorTest.php │ │ │ │ │ ├── Fixtures/ │ │ │ │ │ │ ├── module-name-1/ │ │ │ │ │ │ │ └── translations/ │ │ │ │ │ │ │ └── de/ │ │ │ │ │ │ │ ├── cust_lang.php │ │ │ │ │ │ │ ├── de1_lang.php │ │ │ │ │ │ │ └── de2_lang.php │ │ │ │ │ │ ├── module-name-2/ │ │ │ │ │ │ │ └── views/ │ │ │ │ │ │ │ └── admin/ │ │ │ │ │ │ │ └── de/ │ │ │ │ │ │ │ ├── de1_lang.php │ │ │ │ │ │ │ ├── de2_lang.php │ │ │ │ │ │ │ └── module_options.php │ │ │ │ │ │ ├── module-name-3/ │ │ │ │ │ │ │ └── Application/ │ │ │ │ │ │ │ └── translations/ │ │ │ │ │ │ │ └── de/ │ │ │ │ │ │ │ ├── de1_lang.php │ │ │ │ │ │ │ └── de2_lang.php │ │ │ │ │ │ └── module-name-4/ │ │ │ │ │ │ └── Application/ │ │ │ │ │ │ └── views/ │ │ │ │ │ │ └── admin/ │ │ │ │ │ │ └── de/ │ │ │ │ │ │ ├── de1_lang.php │ │ │ │ │ │ └── module_options.php │ │ │ │ │ └── FrontendModuleTranslationFileLocatorTest.php │ │ │ │ ├── Storage/ │ │ │ │ │ └── YamlFileStorageTest.php │ │ │ │ ├── Templating/ │ │ │ │ │ └── Cache/ │ │ │ │ │ └── MultiShopTemplateCacheServiceTest.php │ │ │ │ └── Theme/ │ │ │ │ ├── Command/ │ │ │ │ │ ├── Fixtures/ │ │ │ │ │ │ └── shop/ │ │ │ │ │ │ └── source/ │ │ │ │ │ │ └── Application/ │ │ │ │ │ │ └── views/ │ │ │ │ │ │ └── testTheme/ │ │ │ │ │ │ └── theme.php │ │ │ │ │ └── ThemeActivateCommandTest.php │ │ │ │ └── Config/ │ │ │ │ └── Dao/ │ │ │ │ └── ThemeSettingDaoTest.php │ │ │ ├── Module/ │ │ │ │ ├── Migration/ │ │ │ │ │ ├── Fixtures/ │ │ │ │ │ │ ├── myTestModuleWithMigrations/ │ │ │ │ │ │ │ ├── metadata.php │ │ │ │ │ │ │ └── migration/ │ │ │ │ │ │ │ ├── data/ │ │ │ │ │ │ │ │ └── Version20170530154603.php │ │ │ │ │ │ │ └── migrations.yml │ │ │ │ │ │ └── myTestModuleWithoutMigrations/ │ │ │ │ │ │ ├── metadata.php │ │ │ │ │ │ └── migration/ │ │ │ │ │ │ └── migrations.yml │ │ │ │ │ └── ModuleMigrationsTest.php │ │ │ │ └── TestData/ │ │ │ │ └── TestModule/ │ │ │ │ └── TestEvent.php │ │ │ ├── Setup/ │ │ │ │ ├── Database/ │ │ │ │ │ ├── SetupDbConnectionFactoryTest.php │ │ │ │ │ ├── SetupDbConnectionValidatorTest.php │ │ │ │ │ ├── SetupDbValidatorTest.php │ │ │ │ │ └── ShopDbManagerTest.php │ │ │ │ ├── Directory/ │ │ │ │ │ ├── DirectoryValidatorTest.php │ │ │ │ │ └── Fixtures/ │ │ │ │ │ └── dir-structure/ │ │ │ │ │ ├── test-folder/ │ │ │ │ │ │ ├── log/ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ ├── out/ │ │ │ │ │ │ │ ├── media/ │ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ │ └── pictures/ │ │ │ │ │ │ │ ├── generated/ │ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ │ ├── master/ │ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ │ ├── media/ │ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ │ └── promo/ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ └── tmp/ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ └── var/ │ │ │ │ │ └── .gitkeep │ │ │ │ ├── Language/ │ │ │ │ │ └── LanguageInstallerTest.php │ │ │ │ ├── SetupParametersFactoryTest.php │ │ │ │ ├── ShopConfiguration/ │ │ │ │ │ └── ShopConfigurationUpdaterTest.php │ │ │ │ └── ShopSetupCommandTest.php │ │ │ └── Transition/ │ │ │ ├── Adapter/ │ │ │ │ ├── Configuration/ │ │ │ │ │ └── Dao/ │ │ │ │ │ └── ShopConfigurationSettingDaoTest.php │ │ │ │ └── TemplateLogic/ │ │ │ │ ├── FormatCurrencyLogicTest.php │ │ │ │ ├── FormatDateLogicTest.php │ │ │ │ ├── FormatPriceLogicTest.php │ │ │ │ ├── ScriptLogicTest.php │ │ │ │ ├── TranslateFunctionLogicTest.php │ │ │ │ ├── TranslateLogicTest.php │ │ │ │ ├── TranslateSalutationLogicTest.php │ │ │ │ ├── TruncateLogicTest.php │ │ │ │ └── WordwrapLogicTest.php │ │ │ └── Utility/ │ │ │ ├── BasicContextTest.php │ │ │ └── ContextTest.php │ │ └── Legacy/ │ │ ├── Application/ │ │ │ ├── Component/ │ │ │ │ └── Widget/ │ │ │ │ └── CategoryTreeTest.php │ │ │ ├── Controller/ │ │ │ │ ├── AccountReviewControllerTest.php │ │ │ │ ├── Admin/ │ │ │ │ │ ├── NavigationTree/ │ │ │ │ │ │ ├── Fixtures/ │ │ │ │ │ │ │ ├── module1/ │ │ │ │ │ │ │ │ ├── menu.xml │ │ │ │ │ │ │ │ └── metadata.php │ │ │ │ │ │ │ ├── module2/ │ │ │ │ │ │ │ │ ├── menu.xml │ │ │ │ │ │ │ │ └── metadata.php │ │ │ │ │ │ │ └── testModule/ │ │ │ │ │ │ │ ├── ModuleSetup.php │ │ │ │ │ │ │ ├── Renderer.php │ │ │ │ │ │ │ ├── RendererInterface.php │ │ │ │ │ │ │ ├── metadata.php │ │ │ │ │ │ │ └── services.yaml │ │ │ │ │ │ ├── NavigationTreeDemoShopTest.php │ │ │ │ │ │ └── NavigationTreeTest.php │ │ │ │ │ ├── PaymentRDFaTest.php │ │ │ │ │ └── ShopConfigurationTest.php │ │ │ │ ├── FrontendController/ │ │ │ │ │ ├── FrontendComponentTest.php │ │ │ │ │ └── FrontendSearchEngineTest.php │ │ │ │ └── SearchControllerTest.php │ │ │ └── Model/ │ │ │ ├── ManufacturerTest.php │ │ │ ├── RatingTest.php │ │ │ ├── ReviewTest.php │ │ │ ├── SeoEncoderCategoryTest.php │ │ │ └── UserTest.php │ │ ├── Checkout/ │ │ │ └── BasketWithStockTest.php │ │ ├── Core/ │ │ │ ├── Database/ │ │ │ │ └── Adapter/ │ │ │ │ ├── DatabaseInterfaceImplementation.php │ │ │ │ ├── DatabaseInterfaceImplementationBase.php │ │ │ │ └── Doctrine/ │ │ │ │ ├── DatabaseTest.php │ │ │ │ └── ResultSetTest.php │ │ │ ├── Model/ │ │ │ │ └── BaseModelTest.php │ │ │ ├── Module/ │ │ │ │ ├── Fixtures/ │ │ │ │ │ ├── InvalidNamespaceModule/ │ │ │ │ │ │ ├── Controller/ │ │ │ │ │ │ │ └── NonExistentClass.php │ │ │ │ │ │ ├── Model/ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ └── metadata.php │ │ │ │ │ ├── chainTestModuleClasses/ │ │ │ │ │ │ ├── FirstUser.php │ │ │ │ │ │ ├── FourthUser.php │ │ │ │ │ │ ├── SecondUser.php │ │ │ │ │ │ └── ThirdUser.php │ │ │ │ │ ├── with_class_extensions/ │ │ │ │ │ │ └── metadata.php │ │ │ │ │ ├── with_class_extensions2/ │ │ │ │ │ │ ├── Controllers/ │ │ │ │ │ │ │ └── ContentController.php │ │ │ │ │ │ └── metadata.php │ │ │ │ │ ├── with_class_extensions_cleaner/ │ │ │ │ │ │ └── metadata.php │ │ │ │ │ ├── with_everything/ │ │ │ │ │ │ └── metadata.php │ │ │ │ │ ├── with_extending_blocks/ │ │ │ │ │ │ └── metadata.php │ │ │ │ │ ├── with_metadata_v21/ │ │ │ │ │ │ ├── Smarty/ │ │ │ │ │ │ │ ├── PluginDirectory1WithMetadataVersion21/ │ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ │ └── PluginDirectory2WithMetadataVersion21/ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ ├── metadata.php │ │ │ │ │ │ └── test_template.tpl │ │ │ │ │ └── with_multiple_extensions/ │ │ │ │ │ └── metadata.php │ │ │ │ └── ModuleListTest.php │ │ │ ├── Routing/ │ │ │ │ └── ControllerIdToClassResolvingTest.php │ │ │ ├── UtilsFileLocalImagesHandlingTest.php │ │ │ └── WidgetControlTest.php │ │ ├── Encryptor/ │ │ │ └── EncryptationTest.php │ │ ├── Modules/ │ │ │ ├── ModuleInheritanceTest.php │ │ │ ├── ModuleTranslationsTest.php │ │ │ ├── TestData/ │ │ │ │ └── modules/ │ │ │ │ ├── extending_1_class/ │ │ │ │ │ ├── metadata.php │ │ │ │ │ └── myorder.php │ │ │ │ ├── extending_1_class_3_extensions/ │ │ │ │ │ └── metadata.php │ │ │ │ ├── translation_Application/ │ │ │ │ │ ├── Application/ │ │ │ │ │ │ └── translations/ │ │ │ │ │ │ ├── de/ │ │ │ │ │ │ │ └── _lang.php │ │ │ │ │ │ └── en/ │ │ │ │ │ │ └── _lang.php │ │ │ │ │ ├── metadata.php │ │ │ │ │ └── myarticle.php │ │ │ │ └── with_everything/ │ │ │ │ ├── Event/ │ │ │ │ │ └── MyEvents.php │ │ │ │ └── metadata.php │ │ │ └── TestDataInheritance/ │ │ │ └── modules/ │ │ │ ├── Vendor1/ │ │ │ │ ├── ModuleChainExtension35/ │ │ │ │ │ ├── MyClass35.php │ │ │ │ │ └── metadata.php │ │ │ │ ├── ModuleChainExtension36/ │ │ │ │ │ ├── MyClass36.php │ │ │ │ │ └── metadata.php │ │ │ │ ├── ModuleChainExtension44/ │ │ │ │ │ ├── MyClass44.php │ │ │ │ │ └── metadata.php │ │ │ │ ├── ModuleInheritance16/ │ │ │ │ │ ├── MyClass.php │ │ │ │ │ └── metadata.php │ │ │ │ ├── ModuleInheritance28a/ │ │ │ │ │ ├── MyClass.php │ │ │ │ │ └── metadata.php │ │ │ │ ├── namespaced_from_ns/ │ │ │ │ │ ├── MyClass.php │ │ │ │ │ └── metadata.php │ │ │ │ └── own_namespace_extending_unified_namespace/ │ │ │ │ ├── MyClass.php │ │ │ │ └── metadata.php │ │ │ ├── Vendor2/ │ │ │ │ ├── ModuleChainExtension44/ │ │ │ │ │ ├── MyClass44.php │ │ │ │ │ └── metadata.php │ │ │ │ ├── ModuleInheritance24/ │ │ │ │ │ ├── MyClass.php │ │ │ │ │ └── metadata.php │ │ │ │ └── ModuleInheritance28b/ │ │ │ │ ├── MyClass.php │ │ │ │ └── metadata.php │ │ │ ├── module_chain_extension_3_1/ │ │ │ │ ├── metadata.php │ │ │ │ └── vendor_1_module_3_1_myclass.php │ │ │ ├── module_chain_extension_3_2/ │ │ │ │ ├── metadata.php │ │ │ │ └── vendor_1_module_3_2_myclass.php │ │ │ └── module_native_extension/ │ │ │ ├── Article.php │ │ │ ├── ContentController.php │ │ │ ├── NativeExtendingArticle.php │ │ │ ├── NativeExtendingContentController.php │ │ │ └── metadata.php │ │ ├── Multilanguage/ │ │ │ ├── AdditionalTablesTest.php │ │ │ ├── LanguageMainControllerStub.php │ │ │ ├── MultiLanguageModelTest.php │ │ │ ├── MultilanguageTrait.php │ │ │ └── ViewTest.php │ │ ├── OnlineInfo/ │ │ │ ├── CurlSpy.php │ │ │ ├── FrontendServersInformationStoringTest.php │ │ │ ├── OnlineLicenseCheckRequestFormationTest.php │ │ │ └── OnlineModuleNotifierRequestFormationTest.php │ │ ├── Price/ │ │ │ ├── BasketConstruct.php │ │ │ ├── BasketTest.php │ │ │ ├── DeliveryCostTest.php │ │ │ ├── OrderNumberingTest.php │ │ │ ├── OrderTest.php │ │ │ ├── PriceTest.php │ │ │ ├── ProductVatTest.php │ │ │ ├── VatForShippingCountryTest.php │ │ │ ├── VoucherTest.php │ │ │ └── testcases/ │ │ │ ├── basket/ │ │ │ │ ├── PriceB2basket2.yaml │ │ │ │ ├── case1.yaml │ │ │ │ ├── case10.yaml │ │ │ │ ├── case100.yaml │ │ │ │ ├── case101.yaml │ │ │ │ ├── case102.yaml │ │ │ │ ├── case103.yaml │ │ │ │ ├── case104.yaml │ │ │ │ ├── case105.yaml │ │ │ │ ├── case106.yaml │ │ │ │ ├── case107.yaml │ │ │ │ ├── case108.yaml │ │ │ │ ├── case109.yaml │ │ │ │ ├── case11.yaml │ │ │ │ ├── case110.yaml │ │ │ │ ├── case111.yaml │ │ │ │ ├── case112.yaml │ │ │ │ ├── case113.yaml │ │ │ │ ├── case114.yaml │ │ │ │ ├── case115.yaml │ │ │ │ ├── case116.yaml │ │ │ │ ├── case117.yaml │ │ │ │ ├── case118.yaml │ │ │ │ ├── case119.yaml │ │ │ │ ├── case12.yaml │ │ │ │ ├── case120.yaml │ │ │ │ ├── case121.yaml │ │ │ │ ├── case122.yaml │ │ │ │ ├── case123.yaml │ │ │ │ ├── case124.yaml │ │ │ │ ├── case125.yaml │ │ │ │ ├── case126.yaml │ │ │ │ ├── case127.yaml │ │ │ │ ├── case128.yaml │ │ │ │ ├── case129.yaml │ │ │ │ ├── case13.yaml │ │ │ │ ├── case130.yaml │ │ │ │ ├── case131.yaml │ │ │ │ ├── case132.yaml │ │ │ │ ├── case133.yaml │ │ │ │ ├── case134.yaml │ │ │ │ ├── case135.yaml │ │ │ │ ├── case136.yaml │ │ │ │ ├── case137.yaml │ │ │ │ ├── case138.yaml │ │ │ │ ├── case139.yaml │ │ │ │ ├── case14.yaml │ │ │ │ ├── case140.yaml │ │ │ │ ├── case141.yaml │ │ │ │ ├── case142.yaml │ │ │ │ ├── case143.yaml │ │ │ │ ├── case144.yaml │ │ │ │ ├── case145.yaml │ │ │ │ ├── case146.yaml │ │ │ │ ├── case147.yaml │ │ │ │ ├── case148.yaml │ │ │ │ ├── case149.yaml │ │ │ │ ├── case15.yaml │ │ │ │ ├── case150.yaml │ │ │ │ ├── case151.yaml │ │ │ │ ├── case152.yaml │ │ │ │ ├── case153.yaml │ │ │ │ ├── case154.yaml │ │ │ │ ├── case155.yaml │ │ │ │ ├── case156.yaml │ │ │ │ ├── case157.yaml │ │ │ │ ├── case158.yaml │ │ │ │ ├── case159.yaml │ │ │ │ ├── case16.yaml │ │ │ │ ├── case160.yaml │ │ │ │ ├── case161.yaml │ │ │ │ ├── case162.yaml │ │ │ │ ├── case163.yaml │ │ │ │ ├── case164.yaml │ │ │ │ ├── case165.yaml │ │ │ │ ├── case166.yaml │ │ │ │ ├── case167.yaml │ │ │ │ ├── case168.yaml │ │ │ │ ├── case169.yaml │ │ │ │ ├── case17.yaml │ │ │ │ ├── case170.yaml │ │ │ │ ├── case171.yaml │ │ │ │ ├── case172.yaml │ │ │ │ ├── case173.yaml │ │ │ │ ├── case174.yaml │ │ │ │ ├── case18.yaml │ │ │ │ ├── case19.yaml │ │ │ │ ├── case2.yaml │ │ │ │ ├── case20.yaml │ │ │ │ ├── case21.yaml │ │ │ │ ├── case22.yaml │ │ │ │ ├── case23.yaml │ │ │ │ ├── case24.yaml │ │ │ │ ├── case25.yaml │ │ │ │ ├── case26.yaml │ │ │ │ ├── case27.yaml │ │ │ │ ├── case28.yaml │ │ │ │ ├── case29.yaml │ │ │ │ ├── case3.yaml │ │ │ │ ├── case30.yaml │ │ │ │ ├── case31.yaml │ │ │ │ ├── case32.yaml │ │ │ │ ├── case33.yaml │ │ │ │ ├── case34.yaml │ │ │ │ ├── case35.yaml │ │ │ │ ├── case36.yaml │ │ │ │ ├── case37.yaml │ │ │ │ ├── case38.yaml │ │ │ │ ├── case39.yaml │ │ │ │ ├── case4.yaml │ │ │ │ ├── case40.yaml │ │ │ │ ├── case41.yaml │ │ │ │ ├── case42.yaml │ │ │ │ ├── case43.yaml │ │ │ │ ├── case44.yaml │ │ │ │ ├── case45.yaml │ │ │ │ ├── case46.yaml │ │ │ │ ├── case47.yaml │ │ │ │ ├── case48.yaml │ │ │ │ ├── case49.yaml │ │ │ │ ├── case5.yaml │ │ │ │ ├── case50.yaml │ │ │ │ ├── case51.yaml │ │ │ │ ├── case52.yaml │ │ │ │ ├── case53.yaml │ │ │ │ ├── case54.yaml │ │ │ │ ├── case55.yaml │ │ │ │ ├── case56.yaml │ │ │ │ ├── case57.yaml │ │ │ │ ├── case58.yaml │ │ │ │ ├── case59.yaml │ │ │ │ ├── case6.yaml │ │ │ │ ├── case60.yaml │ │ │ │ ├── case61.yaml │ │ │ │ ├── case65.yaml │ │ │ │ ├── case66.yaml │ │ │ │ ├── case67.yaml │ │ │ │ ├── case68.yaml │ │ │ │ ├── case69.yaml │ │ │ │ ├── case7.yaml │ │ │ │ ├── case70.yaml │ │ │ │ ├── case71.yaml │ │ │ │ ├── case72.yaml │ │ │ │ ├── case73.yaml │ │ │ │ ├── case74.yaml │ │ │ │ ├── case75.yaml │ │ │ │ ├── case76.yaml │ │ │ │ ├── case77.yaml │ │ │ │ ├── case78.yaml │ │ │ │ ├── case79.yaml │ │ │ │ ├── case8.yaml │ │ │ │ ├── case80.yaml │ │ │ │ ├── case81.yaml │ │ │ │ ├── case82.yaml │ │ │ │ ├── case83.yaml │ │ │ │ ├── case84.yaml │ │ │ │ ├── case85.yaml │ │ │ │ ├── case86.yaml │ │ │ │ ├── case87.yaml │ │ │ │ ├── case88.yaml │ │ │ │ ├── case89.yaml │ │ │ │ ├── case9.yaml │ │ │ │ ├── case90.yaml │ │ │ │ ├── case91.yaml │ │ │ │ ├── case92.yaml │ │ │ │ ├── case93.yaml │ │ │ │ ├── case94.yaml │ │ │ │ ├── case95.yaml │ │ │ │ ├── case96.yaml │ │ │ │ ├── case97.yaml │ │ │ │ ├── case98.yaml │ │ │ │ ├── case99.yaml │ │ │ │ ├── testDeliveryBug4622(1).yaml │ │ │ │ ├── testDeliveryBug4622(2).yaml │ │ │ │ ├── testDeliveryBug4622(3).yaml │ │ │ │ ├── testDeliveryBug4622(4).yaml │ │ │ │ ├── testDeliveryBug4730(1).yaml │ │ │ │ ├── testDeliveryBug4730(2).yaml │ │ │ │ ├── testDeliveryByWeight(1).yaml │ │ │ │ ├── testDeliveryByWeight(2).yaml │ │ │ │ ├── testDeliveryByWeight(3).yaml │ │ │ │ ├── testDeliveryByWeight(4).yaml │ │ │ │ ├── testDeliveryByWeight(5).yaml │ │ │ │ ├── testDeliveryByWeight(6).yaml │ │ │ │ ├── testDeliveryLowerShippingCost(1).yaml │ │ │ │ ├── testDeliveryLowerShippingCost(2).yaml │ │ │ │ ├── testDeliveryLowerShippingCost(3).yaml │ │ │ │ ├── testDiscountBug5913.yaml │ │ │ │ ├── testDiscountSorting.yaml │ │ │ │ ├── testDiscountSortingDBRMIndependency.yaml │ │ │ │ ├── testFewItmDiscounts.yaml │ │ │ │ ├── testFrontendItmDiscounts.yaml │ │ │ │ ├── testFrontendNettoPrices.yaml │ │ │ │ ├── testFrontendOrderStep1Calculation2(1).yaml │ │ │ │ ├── testFrontendOrderStep1Calculation2(2).yaml │ │ │ │ ├── testFrontendOrderStep1Calculation2(3).yaml │ │ │ │ ├── testFrontendOrderStep1Calculation2(4).yaml │ │ │ │ ├── testFrontendOrderStep1Calculation2(5).yaml │ │ │ │ ├── testFrontendOrderStep1CalculationVoucher.yaml │ │ │ │ ├── testFrontendOrderStep1DeliverySortedWithCategories(1).yaml │ │ │ │ ├── testFrontendOrderStep1DeliverySortedWithCategories(2).yaml │ │ │ │ ├── testFrontendOrdersFractionQuantities1.yaml │ │ │ │ ├── testFrontendOrdersFractionQuantities2.yaml │ │ │ │ ├── testFrontendPriceA.yaml │ │ │ │ ├── testFrontendPriceA2.yaml │ │ │ │ ├── testFrontendPriceB.yaml │ │ │ │ ├── testFrontendPriceB2.yaml │ │ │ │ ├── testFrontendPriceB3.yaml │ │ │ │ ├── testFrontendPriceB4.yaml │ │ │ │ ├── testFrontendPriceC.yaml │ │ │ │ ├── testFrontendVatForBillingCountry(1).yaml │ │ │ │ └── testFrontendVatForBillingCountry(2).yaml │ │ │ ├── basket_php83/ │ │ │ │ ├── PriceB2basket2.yaml │ │ │ │ ├── case1.yaml │ │ │ │ ├── case10.yaml │ │ │ │ ├── case100.yaml │ │ │ │ ├── case101.yaml │ │ │ │ ├── case102.yaml │ │ │ │ ├── case103.yaml │ │ │ │ ├── case104.yaml │ │ │ │ ├── case105.yaml │ │ │ │ ├── case106.yaml │ │ │ │ ├── case107.yaml │ │ │ │ ├── case108.yaml │ │ │ │ ├── case109.yaml │ │ │ │ ├── case11.yaml │ │ │ │ ├── case110.yaml │ │ │ │ ├── case111.yaml │ │ │ │ ├── case112.yaml │ │ │ │ ├── case113.yaml │ │ │ │ ├── case114.yaml │ │ │ │ ├── case115.yaml │ │ │ │ ├── case116.yaml │ │ │ │ ├── case117.yaml │ │ │ │ ├── case118.yaml │ │ │ │ ├── case119.yaml │ │ │ │ ├── case12.yaml │ │ │ │ ├── case120.yaml │ │ │ │ ├── case121.yaml │ │ │ │ ├── case122.yaml │ │ │ │ ├── case123.yaml │ │ │ │ ├── case124.yaml │ │ │ │ ├── case125.yaml │ │ │ │ ├── case126.yaml │ │ │ │ ├── case127.yaml │ │ │ │ ├── case128.yaml │ │ │ │ ├── case129.yaml │ │ │ │ ├── case13.yaml │ │ │ │ ├── case130.yaml │ │ │ │ ├── case131.yaml │ │ │ │ ├── case132.yaml │ │ │ │ ├── case133.yaml │ │ │ │ ├── case134.yaml │ │ │ │ ├── case135.yaml │ │ │ │ ├── case136.yaml │ │ │ │ ├── case137.yaml │ │ │ │ ├── case138.yaml │ │ │ │ ├── case139.yaml │ │ │ │ ├── case14.yaml │ │ │ │ ├── case140.yaml │ │ │ │ ├── case141.yaml │ │ │ │ ├── case142.yaml │ │ │ │ ├── case143.yaml │ │ │ │ ├── case144.yaml │ │ │ │ ├── case145.yaml │ │ │ │ ├── case146.yaml │ │ │ │ ├── case147.yaml │ │ │ │ ├── case148.yaml │ │ │ │ ├── case149.yaml │ │ │ │ ├── case15.yaml │ │ │ │ ├── case150.yaml │ │ │ │ ├── case151.yaml │ │ │ │ ├── case152.yaml │ │ │ │ ├── case153.yaml │ │ │ │ ├── case154.yaml │ │ │ │ ├── case155.yaml │ │ │ │ ├── case156.yaml │ │ │ │ ├── case157.yaml │ │ │ │ ├── case158.yaml │ │ │ │ ├── case159.yaml │ │ │ │ ├── case16.yaml │ │ │ │ ├── case160.yaml │ │ │ │ ├── case161.yaml │ │ │ │ ├── case162.yaml │ │ │ │ ├── case163.yaml │ │ │ │ ├── case164.yaml │ │ │ │ ├── case165.yaml │ │ │ │ ├── case166.yaml │ │ │ │ ├── case167.yaml │ │ │ │ ├── case168.yaml │ │ │ │ ├── case169.yaml │ │ │ │ ├── case17.yaml │ │ │ │ ├── case170.yaml │ │ │ │ ├── case171.yaml │ │ │ │ ├── case172.yaml │ │ │ │ ├── case173.yaml │ │ │ │ ├── case174.yaml │ │ │ │ ├── case18.yaml │ │ │ │ ├── case19.yaml │ │ │ │ ├── case2.yaml │ │ │ │ ├── case20.yaml │ │ │ │ ├── case21.yaml │ │ │ │ ├── case22.yaml │ │ │ │ ├── case23.yaml │ │ │ │ ├── case24.yaml │ │ │ │ ├── case25.yaml │ │ │ │ ├── case26.yaml │ │ │ │ ├── case27.yaml │ │ │ │ ├── case28.yaml │ │ │ │ ├── case29.yaml │ │ │ │ ├── case3.yaml │ │ │ │ ├── case30.yaml │ │ │ │ ├── case31.yaml │ │ │ │ ├── case32.yaml │ │ │ │ ├── case33.yaml │ │ │ │ ├── case34.yaml │ │ │ │ ├── case35.yaml │ │ │ │ ├── case36.yaml │ │ │ │ ├── case37.yaml │ │ │ │ ├── case38.yaml │ │ │ │ ├── case39.yaml │ │ │ │ ├── case4.yaml │ │ │ │ ├── case40.yaml │ │ │ │ ├── case41.yaml │ │ │ │ ├── case42.yaml │ │ │ │ ├── case43.yaml │ │ │ │ ├── case44.yaml │ │ │ │ ├── case45.yaml │ │ │ │ ├── case46.yaml │ │ │ │ ├── case47.yaml │ │ │ │ ├── case48.yaml │ │ │ │ ├── case49.yaml │ │ │ │ ├── case5.yaml │ │ │ │ ├── case50.yaml │ │ │ │ ├── case51.yaml │ │ │ │ ├── case52.yaml │ │ │ │ ├── case53.yaml │ │ │ │ ├── case54.yaml │ │ │ │ ├── case55.yaml │ │ │ │ ├── case56.yaml │ │ │ │ ├── case57.yaml │ │ │ │ ├── case58.yaml │ │ │ │ ├── case59.yaml │ │ │ │ ├── case6.yaml │ │ │ │ ├── case60.yaml │ │ │ │ ├── case61.yaml │ │ │ │ ├── case65.yaml │ │ │ │ ├── case66.yaml │ │ │ │ ├── case67.yaml │ │ │ │ ├── case68.yaml │ │ │ │ ├── case69.yaml │ │ │ │ ├── case7.yaml │ │ │ │ ├── case70.yaml │ │ │ │ ├── case71.yaml │ │ │ │ ├── case72.yaml │ │ │ │ ├── case73.yaml │ │ │ │ ├── case74.yaml │ │ │ │ ├── case75.yaml │ │ │ │ ├── case76.yaml │ │ │ │ ├── case77.yaml │ │ │ │ ├── case78.yaml │ │ │ │ ├── case79.yaml │ │ │ │ ├── case8.yaml │ │ │ │ ├── case80.yaml │ │ │ │ ├── case81.yaml │ │ │ │ ├── case82.yaml │ │ │ │ ├── case83.yaml │ │ │ │ ├── case84.yaml │ │ │ │ ├── case85.yaml │ │ │ │ ├── case86.yaml │ │ │ │ ├── case87.yaml │ │ │ │ ├── case88.yaml │ │ │ │ ├── case89.yaml │ │ │ │ ├── case9.yaml │ │ │ │ ├── case90.yaml │ │ │ │ ├── case91.yaml │ │ │ │ ├── case92.yaml │ │ │ │ ├── case93.yaml │ │ │ │ ├── case94.yaml │ │ │ │ ├── case95.yaml │ │ │ │ ├── case96.yaml │ │ │ │ ├── case97.yaml │ │ │ │ ├── case98.yaml │ │ │ │ ├── case99.yaml │ │ │ │ ├── testDeliveryBug4622(1).yaml │ │ │ │ ├── testDeliveryBug4622(2).yaml │ │ │ │ ├── testDeliveryBug4622(3).yaml │ │ │ │ ├── testDeliveryBug4622(4).yaml │ │ │ │ ├── testDeliveryBug4730(1).yaml │ │ │ │ ├── testDeliveryBug4730(2).yaml │ │ │ │ ├── testDeliveryByWeight(1).yaml │ │ │ │ ├── testDeliveryByWeight(2).yaml │ │ │ │ ├── testDeliveryByWeight(3).yaml │ │ │ │ ├── testDeliveryByWeight(4).yaml │ │ │ │ ├── testDeliveryByWeight(5).yaml │ │ │ │ ├── testDeliveryByWeight(6).yaml │ │ │ │ ├── testDeliveryLowerShippingCost(1).yaml │ │ │ │ ├── testDeliveryLowerShippingCost(2).yaml │ │ │ │ ├── testDeliveryLowerShippingCost(3).yaml │ │ │ │ ├── testDiscountBug5913.yaml │ │ │ │ ├── testDiscountSorting.yaml │ │ │ │ ├── testDiscountSortingDBRMIndependency.yaml │ │ │ │ ├── testFewItmDiscounts.yaml │ │ │ │ ├── testFrontendItmDiscounts.yaml │ │ │ │ ├── testFrontendNettoPrices.yaml │ │ │ │ ├── testFrontendOrderStep1Calculation2(1).yaml │ │ │ │ ├── testFrontendOrderStep1Calculation2(2).yaml │ │ │ │ ├── testFrontendOrderStep1Calculation2(3).yaml │ │ │ │ ├── testFrontendOrderStep1Calculation2(4).yaml │ │ │ │ ├── testFrontendOrderStep1Calculation2(5).yaml │ │ │ │ ├── testFrontendOrderStep1CalculationVoucher.yaml │ │ │ │ ├── testFrontendOrderStep1DeliverySortedWithCategories(1).yaml │ │ │ │ ├── testFrontendOrderStep1DeliverySortedWithCategories(2).yaml │ │ │ │ ├── testFrontendOrdersFractionQuantities1.yaml │ │ │ │ ├── testFrontendOrdersFractionQuantities2.yaml │ │ │ │ ├── testFrontendPriceA.yaml │ │ │ │ ├── testFrontendPriceA2.yaml │ │ │ │ ├── testFrontendPriceB.yaml │ │ │ │ ├── testFrontendPriceB2.yaml │ │ │ │ ├── testFrontendPriceB3.yaml │ │ │ │ ├── testFrontendPriceB4.yaml │ │ │ │ ├── testFrontendPriceC.yaml │ │ │ │ ├── testFrontendVatForBillingCountry(1).yaml │ │ │ │ └── testFrontendVatForBillingCountry(2).yaml │ │ │ ├── basket_php84/ │ │ │ │ ├── PriceB2basket2.yaml │ │ │ │ ├── case1.yaml │ │ │ │ ├── case10.yaml │ │ │ │ ├── case100.yaml │ │ │ │ ├── case101.yaml │ │ │ │ ├── case102.yaml │ │ │ │ ├── case103.yaml │ │ │ │ ├── case104.yaml │ │ │ │ ├── case105.yaml │ │ │ │ ├── case106.yaml │ │ │ │ ├── case107.yaml │ │ │ │ ├── case108.yaml │ │ │ │ ├── case109.yaml │ │ │ │ ├── case11.yaml │ │ │ │ ├── case110.yaml │ │ │ │ ├── case111.yaml │ │ │ │ ├── case112.yaml │ │ │ │ ├── case113.yaml │ │ │ │ ├── case114.yaml │ │ │ │ ├── case115.yaml │ │ │ │ ├── case116.yaml │ │ │ │ ├── case117.yaml │ │ │ │ ├── case118.yaml │ │ │ │ ├── case119.yaml │ │ │ │ ├── case12.yaml │ │ │ │ ├── case120.yaml │ │ │ │ ├── case121.yaml │ │ │ │ ├── case122.yaml │ │ │ │ ├── case123.yaml │ │ │ │ ├── case124.yaml │ │ │ │ ├── case125.yaml │ │ │ │ ├── case126.yaml │ │ │ │ ├── case127.yaml │ │ │ │ ├── case128.yaml │ │ │ │ ├── case129.yaml │ │ │ │ ├── case13.yaml │ │ │ │ ├── case130.yaml │ │ │ │ ├── case131.yaml │ │ │ │ ├── case132.yaml │ │ │ │ ├── case133.yaml │ │ │ │ ├── case134.yaml │ │ │ │ ├── case135.yaml │ │ │ │ ├── case136.yaml │ │ │ │ ├── case137.yaml │ │ │ │ ├── case138.yaml │ │ │ │ ├── case139.yaml │ │ │ │ ├── case14.yaml │ │ │ │ ├── case140.yaml │ │ │ │ ├── case141.yaml │ │ │ │ ├── case142.yaml │ │ │ │ ├── case143.yaml │ │ │ │ ├── case144.yaml │ │ │ │ ├── case145.yaml │ │ │ │ ├── case146.yaml │ │ │ │ ├── case147.yaml │ │ │ │ ├── case148.yaml │ │ │ │ ├── case149.yaml │ │ │ │ ├── case15.yaml │ │ │ │ ├── case150.yaml │ │ │ │ ├── case151.yaml │ │ │ │ ├── case152.yaml │ │ │ │ ├── case153.yaml │ │ │ │ ├── case154.yaml │ │ │ │ ├── case155.yaml │ │ │ │ ├── case156.yaml │ │ │ │ ├── case157.yaml │ │ │ │ ├── case158.yaml │ │ │ │ ├── case159.yaml │ │ │ │ ├── case16.yaml │ │ │ │ ├── case160.yaml │ │ │ │ ├── case161.yaml │ │ │ │ ├── case162.yaml │ │ │ │ ├── case163.yaml │ │ │ │ ├── case164.yaml │ │ │ │ ├── case165.yaml │ │ │ │ ├── case166.yaml │ │ │ │ ├── case167.yaml │ │ │ │ ├── case168.yaml │ │ │ │ ├── case169.yaml │ │ │ │ ├── case17.yaml │ │ │ │ ├── case170.yaml │ │ │ │ ├── case171.yaml │ │ │ │ ├── case172.yaml │ │ │ │ ├── case173.yaml │ │ │ │ ├── case174.yaml │ │ │ │ ├── case18.yaml │ │ │ │ ├── case19.yaml │ │ │ │ ├── case2.yaml │ │ │ │ ├── case20.yaml │ │ │ │ ├── case21.yaml │ │ │ │ ├── case22.yaml │ │ │ │ ├── case23.yaml │ │ │ │ ├── case24.yaml │ │ │ │ ├── case25.yaml │ │ │ │ ├── case26.yaml │ │ │ │ ├── case27.yaml │ │ │ │ ├── case28.yaml │ │ │ │ ├── case29.yaml │ │ │ │ ├── case3.yaml │ │ │ │ ├── case30.yaml │ │ │ │ ├── case31.yaml │ │ │ │ ├── case32.yaml │ │ │ │ ├── case33.yaml │ │ │ │ ├── case34.yaml │ │ │ │ ├── case35.yaml │ │ │ │ ├── case36.yaml │ │ │ │ ├── case37.yaml │ │ │ │ ├── case38.yaml │ │ │ │ ├── case39.yaml │ │ │ │ ├── case4.yaml │ │ │ │ ├── case40.yaml │ │ │ │ ├── case41.yaml │ │ │ │ ├── case42.yaml │ │ │ │ ├── case43.yaml │ │ │ │ ├── case44.yaml │ │ │ │ ├── case45.yaml │ │ │ │ ├── case46.yaml │ │ │ │ ├── case47.yaml │ │ │ │ ├── case48.yaml │ │ │ │ ├── case49.yaml │ │ │ │ ├── case5.yaml │ │ │ │ ├── case50.yaml │ │ │ │ ├── case51.yaml │ │ │ │ ├── case52.yaml │ │ │ │ ├── case53.yaml │ │ │ │ ├── case54.yaml │ │ │ │ ├── case55.yaml │ │ │ │ ├── case56.yaml │ │ │ │ ├── case57.yaml │ │ │ │ ├── case58.yaml │ │ │ │ ├── case59.yaml │ │ │ │ ├── case6.yaml │ │ │ │ ├── case60.yaml │ │ │ │ ├── case61.yaml │ │ │ │ ├── case65.yaml │ │ │ │ ├── case66.yaml │ │ │ │ ├── case67.yaml │ │ │ │ ├── case68.yaml │ │ │ │ ├── case69.yaml │ │ │ │ ├── case7.yaml │ │ │ │ ├── case70.yaml │ │ │ │ ├── case71.yaml │ │ │ │ ├── case72.yaml │ │ │ │ ├── case73.yaml │ │ │ │ ├── case74.yaml │ │ │ │ ├── case75.yaml │ │ │ │ ├── case76.yaml │ │ │ │ ├── case77.yaml │ │ │ │ ├── case78.yaml │ │ │ │ ├── case79.yaml │ │ │ │ ├── case8.yaml │ │ │ │ ├── case80.yaml │ │ │ │ ├── case81.yaml │ │ │ │ ├── case82.yaml │ │ │ │ ├── case83.yaml │ │ │ │ ├── case84.yaml │ │ │ │ ├── case85.yaml │ │ │ │ ├── case86.yaml │ │ │ │ ├── case87.yaml │ │ │ │ ├── case88.yaml │ │ │ │ ├── case89.yaml │ │ │ │ ├── case9.yaml │ │ │ │ ├── case90.yaml │ │ │ │ ├── case91.yaml │ │ │ │ ├── case92.yaml │ │ │ │ ├── case93.yaml │ │ │ │ ├── case94.yaml │ │ │ │ ├── case95.yaml │ │ │ │ ├── case96.yaml │ │ │ │ ├── case97.yaml │ │ │ │ ├── case98.yaml │ │ │ │ ├── case99.yaml │ │ │ │ ├── testDeliveryBug4622(1).yaml │ │ │ │ ├── testDeliveryBug4622(2).yaml │ │ │ │ ├── testDeliveryBug4622(3).yaml │ │ │ │ ├── testDeliveryBug4622(4).yaml │ │ │ │ ├── testDeliveryBug4730(1).yaml │ │ │ │ ├── testDeliveryBug4730(2).yaml │ │ │ │ ├── testDeliveryByWeight(1).yaml │ │ │ │ ├── testDeliveryByWeight(2).yaml │ │ │ │ ├── testDeliveryByWeight(3).yaml │ │ │ │ ├── testDeliveryByWeight(4).yaml │ │ │ │ ├── testDeliveryByWeight(5).yaml │ │ │ │ ├── testDeliveryByWeight(6).yaml │ │ │ │ ├── testDeliveryLowerShippingCost(1).yaml │ │ │ │ ├── testDeliveryLowerShippingCost(2).yaml │ │ │ │ ├── testDeliveryLowerShippingCost(3).yaml │ │ │ │ ├── testDiscountBug5913.yaml │ │ │ │ ├── testDiscountSorting.yaml │ │ │ │ ├── testDiscountSortingDBRMIndependency.yaml │ │ │ │ ├── testFewItmDiscounts.yaml │ │ │ │ ├── testFrontendItmDiscounts.yaml │ │ │ │ ├── testFrontendNettoPrices.yaml │ │ │ │ ├── testFrontendOrderStep1Calculation2(1).yaml │ │ │ │ ├── testFrontendOrderStep1Calculation2(2).yaml │ │ │ │ ├── testFrontendOrderStep1Calculation2(3).yaml │ │ │ │ ├── testFrontendOrderStep1Calculation2(4).yaml │ │ │ │ ├── testFrontendOrderStep1Calculation2(5).yaml │ │ │ │ ├── testFrontendOrderStep1CalculationVoucher.yaml │ │ │ │ ├── testFrontendOrderStep1DeliverySortedWithCategories(1).yaml │ │ │ │ ├── testFrontendOrderStep1DeliverySortedWithCategories(2).yaml │ │ │ │ ├── testFrontendOrdersFractionQuantities1.yaml │ │ │ │ ├── testFrontendOrdersFractionQuantities2.yaml │ │ │ │ ├── testFrontendPriceA.yaml │ │ │ │ ├── testFrontendPriceA2.yaml │ │ │ │ ├── testFrontendPriceB.yaml │ │ │ │ ├── testFrontendPriceB2.yaml │ │ │ │ ├── testFrontendPriceB3.yaml │ │ │ │ ├── testFrontendPriceB4.yaml │ │ │ │ ├── testFrontendPriceC.yaml │ │ │ │ ├── testFrontendVatForBillingCountry(1).yaml │ │ │ │ └── testFrontendVatForBillingCountry(2).yaml │ │ │ ├── delivery_cost/ │ │ │ │ ├── rules/ │ │ │ │ │ ├── first_applicable_rule_cost_per_cart.yaml │ │ │ │ │ ├── first_applicable_rule_cost_per_item.yaml │ │ │ │ │ ├── first_applicable_rule_cost_per_product.yaml │ │ │ │ │ ├── multiple_rules_2_applied.yaml │ │ │ │ │ └── multiple_rules_3_applied.yaml │ │ │ │ └── rules_assigned_to/ │ │ │ │ ├── category.yaml │ │ │ │ └── product.yaml │ │ │ ├── order/ │ │ │ │ ├── case1.yaml │ │ │ │ ├── case10.yaml │ │ │ │ ├── case11.yaml │ │ │ │ ├── case12.yaml │ │ │ │ ├── case13.yaml │ │ │ │ ├── case14.yaml │ │ │ │ ├── case15.yaml │ │ │ │ ├── case16.yaml │ │ │ │ ├── case18.yaml │ │ │ │ ├── case19.yaml │ │ │ │ ├── case2.yaml │ │ │ │ ├── case20.yaml │ │ │ │ ├── case21.yaml │ │ │ │ ├── case22.yaml │ │ │ │ ├── case23.yaml │ │ │ │ ├── case24.yaml │ │ │ │ ├── case26.yaml │ │ │ │ ├── case28.yaml │ │ │ │ ├── case29.yaml │ │ │ │ ├── case3.yaml │ │ │ │ ├── case30.yaml │ │ │ │ ├── case31.yaml │ │ │ │ ├── case32.yaml │ │ │ │ ├── case39.yaml │ │ │ │ ├── case5.yaml │ │ │ │ ├── case6.yaml │ │ │ │ ├── case7.yaml │ │ │ │ ├── case9.yaml │ │ │ │ └── oxorder_test_recalc_order_by_use_case.yaml │ │ │ ├── order_numbering/ │ │ │ │ ├── case1.yaml │ │ │ │ └── case2.yaml │ │ │ └── price/ │ │ │ ├── case1.yaml │ │ │ ├── case10.yaml │ │ │ ├── case100.yaml │ │ │ ├── case101.yaml │ │ │ ├── case102.yaml │ │ │ ├── case103.yaml │ │ │ ├── case104.yaml │ │ │ ├── case105.yaml │ │ │ ├── case106.yaml │ │ │ ├── case107.yaml │ │ │ ├── case108.yaml │ │ │ ├── case109.yaml │ │ │ ├── case11.yaml │ │ │ ├── case110.yaml │ │ │ ├── case111.yaml │ │ │ ├── case112.yaml │ │ │ ├── case113.yaml │ │ │ ├── case114.yaml │ │ │ ├── case115.yaml │ │ │ ├── case116.yaml │ │ │ ├── case117.yaml │ │ │ ├── case118.yaml │ │ │ ├── case119.yaml │ │ │ ├── case12.yaml │ │ │ ├── case120.yaml │ │ │ ├── case121.yaml │ │ │ ├── case122.yaml │ │ │ ├── case123.yaml │ │ │ ├── case124.yaml │ │ │ ├── case125.yaml │ │ │ ├── case126.yaml │ │ │ ├── case127.yaml │ │ │ ├── case128.yaml │ │ │ ├── case129.yaml │ │ │ ├── case13.yaml │ │ │ ├── case130.yaml │ │ │ ├── case131.yaml │ │ │ ├── case132.yaml │ │ │ ├── case133.yaml │ │ │ ├── case134.yaml │ │ │ ├── case135.yaml │ │ │ ├── case136.yaml │ │ │ ├── case137.yaml │ │ │ ├── case138.yaml │ │ │ ├── case139.yaml │ │ │ ├── case14.yaml │ │ │ ├── case140.yaml │ │ │ ├── case141.yaml │ │ │ ├── case142.yaml │ │ │ ├── case143.yaml │ │ │ ├── case144.yaml │ │ │ ├── case145.yaml │ │ │ ├── case146.yaml │ │ │ ├── case147.yaml │ │ │ ├── case148.yaml │ │ │ ├── case149.yaml │ │ │ ├── case15.yaml │ │ │ ├── case150.yaml │ │ │ ├── case151.yaml │ │ │ ├── case152.yaml │ │ │ ├── case153.yaml │ │ │ ├── case154.yaml │ │ │ ├── case155.yaml │ │ │ ├── case156.yaml │ │ │ ├── case157.yaml │ │ │ ├── case16.yaml │ │ │ ├── case17.yaml │ │ │ ├── case18.yaml │ │ │ ├── case19.yaml │ │ │ ├── case2.yaml │ │ │ ├── case20.yaml │ │ │ ├── case21.yaml │ │ │ ├── case22.yaml │ │ │ ├── case23.yaml │ │ │ ├── case24.yaml │ │ │ ├── case25.yaml │ │ │ ├── case26.yaml │ │ │ ├── case27.yaml │ │ │ ├── case28.yaml │ │ │ ├── case29.yaml │ │ │ ├── case3.yaml │ │ │ ├── case30.yaml │ │ │ ├── case31.yaml │ │ │ ├── case32.yaml │ │ │ ├── case33.yaml │ │ │ ├── case34.yaml │ │ │ ├── case35.yaml │ │ │ ├── case36.yaml │ │ │ ├── case37.yaml │ │ │ ├── case38.yaml │ │ │ ├── case39.yaml │ │ │ ├── case4.yaml │ │ │ ├── case40.yaml │ │ │ ├── case41.yaml │ │ │ ├── case42.yaml │ │ │ ├── case43.yaml │ │ │ ├── case44.yaml │ │ │ ├── case45.yaml │ │ │ ├── case46.yaml │ │ │ ├── case47.yaml │ │ │ ├── case48.yaml │ │ │ ├── case49.yaml │ │ │ ├── case5.yaml │ │ │ ├── case50.yaml │ │ │ ├── case51.yaml │ │ │ ├── case52.yaml │ │ │ ├── case53.yaml │ │ │ ├── case54.yaml │ │ │ ├── case55.yaml │ │ │ ├── case56.yaml │ │ │ ├── case57.yaml │ │ │ ├── case58.yaml │ │ │ ├── case59.yaml │ │ │ ├── case6.yaml │ │ │ ├── case60.yaml │ │ │ ├── case61.yaml │ │ │ ├── case62.yaml │ │ │ ├── case63.yaml │ │ │ ├── case64.yaml │ │ │ ├── case65.yaml │ │ │ ├── case66.yaml │ │ │ ├── case67.yaml │ │ │ ├── case68.yaml │ │ │ ├── case69.yaml │ │ │ ├── case7.yaml │ │ │ ├── case70.yaml │ │ │ ├── case71.yaml │ │ │ ├── case72.yaml │ │ │ ├── case73.yaml │ │ │ ├── case74.yaml │ │ │ ├── case75.yaml │ │ │ ├── case78.yaml │ │ │ ├── case8.yaml │ │ │ ├── case83.yaml │ │ │ ├── case84.yaml │ │ │ ├── case85.yaml │ │ │ ├── case86.yaml │ │ │ ├── case87.yaml │ │ │ ├── case88.yaml │ │ │ ├── case89.yaml │ │ │ ├── case9.yaml │ │ │ ├── case90.yaml │ │ │ ├── case91.yaml │ │ │ ├── case92.yaml │ │ │ ├── case93.yaml │ │ │ ├── case94.yaml │ │ │ ├── case95.yaml │ │ │ ├── case96.yaml │ │ │ ├── case97.yaml │ │ │ ├── case98.yaml │ │ │ └── case99.yaml │ │ ├── Search/ │ │ │ └── ProductSearchTest.php │ │ ├── Url/ │ │ │ └── WidgetUrlTest.php │ │ └── User/ │ │ ├── LoginTest.php │ │ └── UserFixtureTrait.php │ ├── TestContainerFactory.php │ ├── Unit/ │ │ └── Internal/ │ │ ├── BasicContextStub.php │ │ ├── Container/ │ │ │ └── DataObject/ │ │ │ └── DIConfigWrapperTest.php │ │ ├── ContextStub.php │ │ ├── Domain/ │ │ │ ├── Admin/ │ │ │ │ ├── Factory/ │ │ │ │ │ └── AdminFactoryTest.php │ │ │ │ └── Service/ │ │ │ │ └── AdminUserServiceTest.php │ │ │ ├── Authentication/ │ │ │ │ ├── Generator/ │ │ │ │ │ └── RandomTokenGeneratorTest.php │ │ │ │ └── Service/ │ │ │ │ └── PasswordVerificationServiceTest.php │ │ │ ├── Contact/ │ │ │ │ └── Form/ │ │ │ │ ├── ContactFormConfigurationFactoryTest.php │ │ │ │ ├── ContactFormEmailValidatorTest.php │ │ │ │ ├── ContactFormFactoryTest.php │ │ │ │ └── ContactFormMessageBuilderTest.php │ │ │ ├── Email/ │ │ │ │ └── EmailValidatorServiceTest.php │ │ │ ├── Media/ │ │ │ │ ├── DataObject/ │ │ │ │ │ ├── MediaPathTest.php │ │ │ │ │ └── MediaTypeTest.php │ │ │ │ ├── MediaUrlGeneratorTest.php │ │ │ │ └── Validator/ │ │ │ │ ├── FileExtensionConstraintValidatorTest.php │ │ │ │ ├── FileSizeConstraintValidatorTest.php │ │ │ │ ├── MimeTypeConstraintValidatorTest.php │ │ │ │ └── UploadValidityConstraintValidatorTest.php │ │ │ ├── Product/ │ │ │ │ ├── Media/ │ │ │ │ │ ├── DataMapper/ │ │ │ │ │ │ └── DataMapperTest.php │ │ │ │ │ └── DataObject/ │ │ │ │ │ ├── ProductMediaRoleSetTest.php │ │ │ │ │ └── ProductMediaRoleTest.php │ │ │ │ └── Search/ │ │ │ │ └── Event/ │ │ │ │ ├── AfterProductSearchEventTest.php │ │ │ │ └── BeforeProductSearchEventTest.php │ │ │ └── Review/ │ │ │ ├── Dao/ │ │ │ │ └── ProductRatingDaoTest.php │ │ │ ├── DataMapper/ │ │ │ │ ├── ProductRatingDataMapperTest.php │ │ │ │ ├── RatingDataMapperTest.php │ │ │ │ └── ReviewDataMapperTest.php │ │ │ └── Service/ │ │ │ ├── RatingCalculatorServiceTest.php │ │ │ ├── ReviewAndRatingMergingServiceTest.php │ │ │ └── UserReviewAndRatingServiceTest.php │ │ ├── Framework/ │ │ │ ├── Api/ │ │ │ │ └── HttpExceptionListenerTest.php │ │ │ ├── Cache/ │ │ │ │ └── Command/ │ │ │ │ └── ClearCacheCommandTest.php │ │ │ ├── Configuration/ │ │ │ │ └── DataObject/ │ │ │ │ └── DatabaseConfigurationTest.php │ │ │ ├── DIContainer/ │ │ │ │ └── ContainerBuilderTest.php │ │ │ ├── Database/ │ │ │ │ ├── IdTest.php │ │ │ │ └── Logger/ │ │ │ │ └── QueryFilterTest.php │ │ │ ├── FileSystem/ │ │ │ │ └── MasterImageHandlerTest.php │ │ │ ├── Form/ │ │ │ │ ├── FromTest.php │ │ │ │ └── RequiredFieldsValidatorTest.php │ │ │ ├── FormConfiguration/ │ │ │ │ └── FromConfigurationTest.php │ │ │ ├── Mailing/ │ │ │ │ ├── Adapter/ │ │ │ │ │ └── SymfonyMailerAdapterTest.php │ │ │ │ └── Factory/ │ │ │ │ └── TransportFactoryTest.php │ │ │ ├── Module/ │ │ │ │ ├── Cache/ │ │ │ │ │ └── InvalidateModuleCacheEventSubscriberTest.php │ │ │ │ ├── Configuration/ │ │ │ │ │ ├── Bridge/ │ │ │ │ │ │ └── ModuleConfigurationDaoBridgeTest.php │ │ │ │ │ ├── Cache/ │ │ │ │ │ │ └── ClassPropertyModuleConfigurationCacheTest.php │ │ │ │ │ ├── Dao/ │ │ │ │ │ │ └── ModuleEnvironmentConfigurationExtenderTest.php │ │ │ │ │ ├── DataMapper/ │ │ │ │ │ │ └── ModuleConfigurationDataMapperTest.php │ │ │ │ │ └── DataObject/ │ │ │ │ │ ├── ClassExtensionsChainTest.php │ │ │ │ │ ├── ModuleConfigurationTest.php │ │ │ │ │ └── ShopConfigurationTest.php │ │ │ │ ├── Facade/ │ │ │ │ │ └── ActiveModulesDataProviderBridgeTest.php │ │ │ │ ├── Install/ │ │ │ │ │ └── Service/ │ │ │ │ │ ├── BootstrapModuleInstallerTest.php │ │ │ │ │ └── ProjectConfigurationGeneratorTest.php │ │ │ │ ├── MetaData/ │ │ │ │ │ ├── Converter/ │ │ │ │ │ │ ├── MetaDataConverterAggregateTest.php │ │ │ │ │ │ └── ModuleSettingsBooleanConverterTest.php │ │ │ │ │ ├── Dao/ │ │ │ │ │ │ ├── MetaDataNormalizerTest.php │ │ │ │ │ │ └── MetaDataSchemataProviderTest.php │ │ │ │ │ └── Validator/ │ │ │ │ │ ├── MetaDataSchemaValidatorTest.php │ │ │ │ │ ├── MetaDataValidatorAggregateTest.php │ │ │ │ │ ├── ModuleIdValidatorTest.php │ │ │ │ │ ├── SchemaValidatorTest.php │ │ │ │ │ └── ShopModuleSettingBooleanValidatorTest.php │ │ │ │ ├── Path/ │ │ │ │ │ ├── ModuleAssetsPathResolverTest.php │ │ │ │ │ └── ModulePathResolverTest.php │ │ │ │ ├── Setup/ │ │ │ │ │ └── Validator/ │ │ │ │ │ ├── ClassExtensionsModuleSettingValidatorTest.php │ │ │ │ │ ├── ControllersValidatorTest.php │ │ │ │ │ └── EventsModuleSettingValidatorTest.php │ │ │ │ └── Template/ │ │ │ │ └── Locator/ │ │ │ │ └── ModulesMenuFileLocatorTest.php │ │ │ ├── RateLimiter/ │ │ │ │ ├── ApiRateLimitListenerTest.php │ │ │ │ ├── ApiRateLimiterFactoryTest.php │ │ │ │ └── RateLimitHeadersListenerTest.php │ │ │ ├── Templating/ │ │ │ │ ├── Locator/ │ │ │ │ │ ├── AdminTemplateFileLocatorTest.php │ │ │ │ │ ├── EditionMenuFileLocatorTest.php │ │ │ │ │ ├── EditionUserFileLocatorTest.php │ │ │ │ │ └── TemplateFileLocatorTest.php │ │ │ │ └── TemplateRendererTest.php │ │ │ └── Theme/ │ │ │ └── Bridge/ │ │ │ └── AdminThemeBridgeTest.php │ │ ├── Setup/ │ │ │ ├── Directory/ │ │ │ │ └── DirectoryValidatorTest.php │ │ │ ├── Htaccess/ │ │ │ │ ├── HtaccessDaoFactoryTest.php │ │ │ │ ├── HtaccessDaoTest.php │ │ │ │ ├── HtaccessUpdaterTest.php │ │ │ │ ├── ShopBaseUrlTest.php │ │ │ │ └── testData/ │ │ │ │ └── .htaccess │ │ │ ├── Language/ │ │ │ │ └── DefaultLanguageTest.php │ │ │ └── ShopSetupCommandTest.php │ │ ├── Transition/ │ │ │ └── Adapter/ │ │ │ ├── Configuration/ │ │ │ │ └── Utility/ │ │ │ │ └── ShopSettingEncoderTest.php │ │ │ └── TemplateLogic/ │ │ │ └── IncludeDynamicLogicTest.php │ │ └── Utility/ │ │ ├── Authentication/ │ │ │ └── Policy/ │ │ │ └── PasswordPolicyTest.php │ │ ├── Hash/ │ │ │ └── Service/ │ │ │ ├── Argon2IPasswordHashServiceTest.php │ │ │ └── BcryptPasswordHashServiceTest.php │ │ └── Url/ │ │ └── UrlParserTest.php │ ├── bootstrap.php │ ├── codeception.yml │ └── scripts/ │ ├── check_log.sh │ ├── codeception.sh │ ├── codeception_failure_pattern.txt │ ├── deprecated.sh │ ├── deprecated_failure_pattern.txt │ ├── integration.sh │ ├── integration_failure_pattern.txt │ ├── php-cs-report.sh │ ├── unit.sh │ └── unit_failure_pattern.txt └── var/ └── .gitignore