@evershop/evershop 1.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/build/index.js +24 -0
- package/bin/extension/index.js +2 -2
- package/bin/lib/addDefaultMiddlewareFuncs.js +7 -2
- package/bin/lib/buildEntry.js +20 -2
- package/bin/lib/onListening.js +7 -4
- package/bin/lib/startUp.js +6 -0
- package/package.json +9 -1
- package/src/components/admin/catalog/productEdit/category/CategoryItem.jsx +2 -7
- package/src/components/admin/catalog/productEdit/category/CategoryTree.jsx +14 -7
- package/src/components/admin/catalog/productEdit/category/CategoryTree.scss +10 -0
- package/src/components/admin/catalog/productEdit/variants/CreateVariant.jsx +2 -2
- package/src/components/admin/catalog/productEdit/variants/CreateVariantGroup.jsx +1 -1
- package/src/components/admin/catalog/productEdit/variants/EditVariant.jsx +1 -1
- package/src/components/admin/catalog/productEdit/variants/New.jsx +2 -2
- package/src/components/admin/catalog/productEdit/variants/Search.jsx +1 -1
- package/src/components/admin/catalog/productEdit/variants/SearchModal.jsx +1 -1
- package/src/components/admin/catalog/productEdit/variants/VariantModal.jsx +6 -6
- package/src/components/admin/catalog/productGrid/rows/ThumbnailRow.jsx +1 -1
- package/src/components/admin/checkout/shippingSetting/Method.jsx +6 -6
- package/src/components/admin/checkout/shippingSetting/MethodForm.jsx +4 -4
- package/src/components/admin/checkout/shippingSetting/Methods.jsx +3 -3
- package/src/components/admin/checkout/shippingSetting/PriceBasedPrice.jsx +2 -2
- package/src/components/admin/checkout/shippingSetting/WeightBasedPrice.jsx +2 -2
- package/src/components/admin/checkout/shippingSetting/Zone.jsx +7 -7
- package/src/components/admin/checkout/shippingSetting/ZoneForm.jsx +1 -1
- package/src/components/admin/cms/Card.jsx +3 -3
- package/src/components/admin/cms/PageHeading.jsx +3 -3
- package/src/components/admin/cms/widget/WidgetTypes.jsx +28 -0
- package/src/components/admin/cms/widget/grid/WidgetTypeRow.jsx +29 -0
- package/src/components/admin/oms/orderEdit/items/ItemVariantOptions.jsx +1 -1
- package/src/components/admin/oms/orderEdit/items/Name.jsx +1 -1
- package/src/components/admin/oms/orderGrid/headers/OrderDateColumnHeader.jsx +1 -1
- package/src/components/admin/promotion/couponEdit/AttributeGroupSelector.jsx +3 -3
- package/src/components/admin/promotion/couponEdit/BuyXGetY.jsx +2 -2
- package/src/components/admin/promotion/couponEdit/CategorySelector.jsx +6 -6
- package/src/components/admin/promotion/couponEdit/CollectionSelector.jsx +3 -3
- package/src/components/admin/promotion/couponEdit/ProductSkuSelector.jsx +4 -4
- package/src/components/admin/promotion/couponEdit/RequireProducts.jsx +2 -2
- package/src/components/admin/promotion/couponEdit/Setting.jsx +1 -1
- package/src/components/admin/promotion/couponEdit/TargetProducts.jsx +4 -4
- package/src/components/admin/tax/taxSetting/Rate.jsx +6 -6
- package/src/components/admin/tax/taxSetting/RateForm.jsx +5 -5
- package/src/components/admin/tax/taxSetting/Rates.jsx +6 -6
- package/src/components/admin/tax/taxSetting/TaxClass.jsx +3 -3
- package/src/components/admin/tax/taxSetting/TaxClassForm.jsx +1 -1
- package/src/components/admin/widgets/BasicMenuSetting.jsx +614 -0
- package/src/components/admin/widgets/BasicMenuSetting.scss +19 -0
- package/src/components/admin/widgets/CollectionProductsSetting.jsx +203 -0
- package/src/components/admin/widgets/TextBlockSetting.jsx +70 -0
- package/src/components/common/Area.jsx +31 -8
- package/src/components/common/Badge.jsx +1 -1
- package/src/components/common/Editor.jsx +193 -0
- package/src/components/common/Notification.scss +1 -0
- package/src/components/common/SimplePagination.jsx +2 -2
- package/src/components/common/form/Form.jsx +1 -1
- package/src/components/common/form/fields/Checkbox.jsx +1 -1
- package/src/components/common/form/fields/Ckeditor.jsx +11 -11
- package/src/components/common/form/fields/Editor.jsx +326 -0
- package/src/components/common/form/fields/Editor.scss +33 -0
- package/src/components/common/form/fields/Radio.jsx +1 -1
- package/src/components/common/form/fields/editor/FileBrowser.jsx +419 -0
- package/src/components/common/form/fields/editor/FileBrowser.scss +37 -0
- package/src/components/common/form/fields/editor/GetColumnClasses.jsx +14 -0
- package/src/components/common/form/fields/editor/GetRowClasses.jsx +18 -0
- package/src/components/common/form/fields/editor/RowTemplates.jsx +154 -0
- package/src/components/common/grid/Pagination.jsx +4 -4
- package/src/components/common/grid/headers/FromTo.jsx +1 -1
- package/src/components/common/grid/headers/Sortable.jsx +1 -1
- package/src/components/common/grid/rows/ThumbnailRow.jsx +1 -1
- package/src/components/common/list/Filter.jsx +1 -1
- package/src/components/common/modal/Alert.jsx +1 -1
- package/src/components/common/modal/Modal.jsx +1 -1
- package/src/components/frontStore/catalog/categoryView/filter/AttributeFilter.jsx +2 -2
- package/src/components/frontStore/catalog/categoryView/filter/CategoryFilter.jsx +3 -2
- package/src/components/frontStore/catalog/categoryView/filter/CategoryFilter.scss +5 -0
- package/src/components/frontStore/catalog/product/list/List.jsx +4 -4
- package/src/components/frontStore/catalog/product/list/Pagination.jsx +1 -1
- package/src/components/frontStore/catalog/product/list/Sorting.jsx +2 -2
- package/src/components/frontStore/catalog/product/list/item/Name.jsx +1 -1
- package/src/components/frontStore/checkout/cart/Empty.jsx +3 -3
- package/src/components/frontStore/checkout/cart/items/ItemOptions.jsx +1 -1
- package/src/components/frontStore/checkout/cart/items/ItemVariantOptions.jsx +1 -1
- package/src/components/frontStore/checkout/cart/items/Items.jsx +20 -21
- package/src/components/frontStore/checkout/cart/items/Items.scss +47 -0
- package/src/components/frontStore/checkout/cart/items/Quantity.jsx +154 -0
- package/src/components/frontStore/checkout/checkout/StepTitle.jsx +1 -1
- package/src/components/frontStore/checkout/checkout/payment/paymentStep/StepContent.jsx +5 -5
- package/src/components/frontStore/checkout/checkout/shipment/StepContent.jsx +1 -1
- package/src/components/frontStore/checkout/checkout/summary/Cart.jsx +10 -12
- package/src/components/frontStore/checkout/checkout/summary/Items.jsx +9 -9
- package/src/components/frontStore/checkout/checkout/summary/cart/Total.jsx +6 -6
- package/src/components/frontStore/checkout/success/summary/items/ItemOptions.jsx +1 -1
- package/src/components/frontStore/checkout/success/summary/items/Items.jsx +9 -6
- package/src/components/frontStore/checkout/success/summary/order/OrderSummary.jsx +9 -13
- package/src/components/frontStore/checkout/success/summary/order/Total.jsx +5 -5
- package/src/components/frontStore/customer/address/addressForm/AddressFormLoadingSkeleton.jsx +2 -2
- package/src/components/frontStore/customer/address/addressForm/NameAndTelephone.jsx +1 -1
- package/src/components/frontStore/customer/address/addressForm/ProvinceAndPostcode.jsx +1 -1
- package/src/components/frontStore/customer/checkout/Edit.jsx +2 -2
- package/src/components/frontStore/customer/detail/Order.jsx +4 -4
- package/src/components/frontStore/stripe/checkout/CheckoutForm.jsx +2 -2
- package/src/components/frontStore/stripe/checkout/TestCards.jsx +1 -1
- package/src/components/frontStore/widgets/BasicMenu.jsx +129 -0
- package/src/{modules/catalog/pages/frontStore/homepage/FeaturedProducts.jsx → components/frontStore/widgets/CollectionProducts.jsx} +40 -32
- package/src/components/frontStore/widgets/TextBlock.jsx +46 -0
- package/src/lib/componee/getComponentsByRoute.js +15 -2
- package/src/lib/event/event-manager.js +1 -1
- package/src/lib/middleware/tests/app/modules/404page/pages/frontStore/product/route.json +2 -1
- package/src/lib/middlewares/static.js +3 -1
- package/src/lib/response/render.js +5 -6
- package/src/lib/router/Router.js +1 -1
- package/src/lib/router/loadModuleRoutes.js +3 -0
- package/src/lib/router/registerAdminRoute.js +9 -1
- package/src/lib/router/registerFrontStoreRoute.js +2 -0
- package/src/lib/router/scanForRoutes.js +1 -0
- package/src/lib/router/tests/unit/unit.validateRoute.test.js +7 -1
- package/src/lib/util/defaultPaginationFilters.js +19 -17
- package/src/lib/util/getEnabledWidgets.js +34 -0
- package/src/lib/util/merge.js +67 -14
- package/src/lib/util/tests/unit/util.merge.test.js +21 -4
- package/src/lib/util/validateConfiguration.js +83 -0
- package/src/lib/webpack/createBaseConfig.js +4 -1
- package/src/lib/webpack/dev/createConfigClient.js +10 -2
- package/src/lib/webpack/loaders/AreaLoader.js +16 -6
- package/src/lib/webpack/util/keyGenerator.js +9 -0
- package/src/lib/webpack/util/parseGraphql.js +30 -16
- package/src/lib/webpack/util/parseGraphqlByFile.js +16 -2
- package/src/modules/auth/pages/admin/adminLogin/LoginForm.jsx +54 -21
- package/src/modules/auth/pages/admin/all/AdminUser.jsx +3 -3
- package/src/modules/base/bootstrap.js +79 -0
- package/src/modules/base/graphql/types/Route/Route.admin.graphql +15 -0
- package/src/modules/base/graphql/types/Route/Route.admin.resolvers.js +10 -0
- package/src/modules/base/pages/global/response[errorHandler].js +25 -1
- package/src/modules/catalog/bootstrap.js +125 -5
- package/src/modules/catalog/graphql/types/Category/Category.graphql +4 -3
- package/src/modules/catalog/graphql/types/Category/Category.resolvers.js +34 -0
- package/src/modules/catalog/graphql/types/Collection/Collection.graphql +2 -2
- package/src/modules/catalog/graphql/types/Collection/Collection.resolvers.js +34 -0
- package/src/modules/catalog/graphql/types/Product/Attribute/ProductAttribute.resolvers.js +1 -0
- package/src/modules/catalog/graphql/types/Product/Product.graphql +1 -1
- package/src/modules/catalog/graphql/types/Product/Product.resolvers.js +34 -0
- package/src/modules/catalog/graphql/types/Widget/CollectionProductsWidget/CollectionProductsWidget.graphql +11 -0
- package/src/modules/catalog/graphql/types/Widget/CollectionProductsWidget/CollectionProductsWidget.resolvers.js +8 -0
- package/src/modules/catalog/migration/Version-1.0.0.js +1 -0
- package/src/modules/catalog/migration/Version-1.0.7.js +10 -0
- package/src/modules/catalog/pages/admin/attributeEdit+attributeNew/FormContent.jsx +4 -4
- package/src/modules/catalog/pages/admin/attributeEdit+attributeNew/General.jsx +5 -5
- package/src/modules/catalog/pages/admin/attributeGrid/Grid.jsx +2 -2
- package/src/modules/catalog/pages/admin/categoryEdit/Products.jsx +4 -4
- package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/FormContent.jsx +4 -4
- package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/General.jsx +16 -18
- package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/Image.jsx +1 -2
- package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/Status.jsx +16 -1
- package/src/modules/catalog/pages/admin/categoryGrid/Grid.jsx +3 -3
- package/src/modules/catalog/pages/admin/collectionEdit/Products.jsx +4 -4
- package/src/modules/catalog/pages/admin/collectionEdit+collectionNew/FormContent.jsx +2 -2
- package/src/modules/catalog/pages/admin/collectionEdit+collectionNew/General.jsx +2 -2
- package/src/modules/catalog/pages/admin/collectionGrid/Grid.jsx +3 -3
- package/src/modules/catalog/pages/admin/productEdit/Collection.jsx +7 -7
- package/src/modules/catalog/pages/admin/productEdit+productNew/Attributes.jsx +8 -3
- package/src/modules/catalog/pages/admin/productEdit+productNew/CustomOptions.jsss +4 -4
- package/src/modules/catalog/pages/admin/productEdit+productNew/FormContent.jsx +4 -4
- package/src/modules/catalog/pages/admin/productEdit+productNew/General.jsx +15 -17
- package/src/modules/catalog/pages/admin/productGrid/Grid.jsx +3 -3
- package/src/modules/catalog/pages/frontStore/catalogSearch/General.jsx +2 -2
- package/src/modules/catalog/pages/frontStore/catalogSearch/Products.jsx +1 -1
- package/src/modules/catalog/pages/frontStore/catalogSearch/route.json +2 -1
- package/src/modules/catalog/pages/frontStore/categoryView/CategoryView.jsx +19 -2
- package/src/modules/catalog/pages/frontStore/categoryView/Filter.scss +1 -0
- package/src/modules/catalog/pages/frontStore/categoryView/General.jsx +6 -8
- package/src/modules/catalog/pages/frontStore/categoryView/General.scss +0 -2
- package/src/modules/catalog/pages/frontStore/categoryView/Pagination.jsx +6 -0
- package/src/modules/catalog/pages/frontStore/categoryView/Products.jsx +8 -1
- package/src/modules/catalog/pages/frontStore/categoryView/route.json +2 -1
- package/src/modules/catalog/pages/frontStore/productView/Description.jsx +15 -4
- package/src/modules/catalog/pages/frontStore/productView/Form.jsx +4 -4
- package/src/modules/catalog/pages/frontStore/productView/Form.scss +1 -0
- package/src/modules/catalog/pages/frontStore/productView/GeneralInfo.jsx +1 -1
- package/src/modules/catalog/pages/frontStore/productView/Images.jsx +1 -1
- package/src/modules/catalog/pages/frontStore/productView/Layout.jsx +1 -1
- package/src/modules/catalog/pages/frontStore/productView/Options.jsx +7 -3
- package/src/modules/catalog/pages/frontStore/productView/Variants.jsx +6 -6
- package/src/modules/catalog/pages/frontStore/productView/route.json +2 -1
- package/src/modules/catalog/services/AttributeCollection.js +10 -10
- package/src/modules/catalog/services/AttributeGroupCollection.js +10 -10
- package/src/modules/catalog/services/CategoryCollection.js +10 -10
- package/src/modules/catalog/services/CollectionCollection.js +10 -10
- package/src/modules/catalog/services/registerCartItemProductUrlField.js +35 -0
- package/src/modules/catalog/services/registerCartItemVariantOptionsField.js +51 -0
- package/src/modules/catalog/services/registerDefaultCategoryCollectionFilters.js +16 -0
- package/src/modules/checkout/api/addShippingNote/[context]bodyParser[auth].js +5 -0
- package/src/modules/checkout/api/addShippingNote/payloadSchema.json +15 -0
- package/src/modules/checkout/api/addShippingNote/route.json +5 -0
- package/src/modules/checkout/api/addShippingNote/saveShippingNote.js +50 -0
- package/src/modules/checkout/api/createCart/createNewCart.js +28 -3
- package/src/modules/checkout/api/updateCartItemQty/[bodyParser]updateQty.js +49 -0
- package/src/modules/checkout/api/updateCartItemQty/[context]bodyParser[auth].js +5 -0
- package/src/modules/checkout/api/updateCartItemQty/payloadSchema.json +21 -0
- package/src/modules/checkout/api/updateCartItemQty/route.json +5 -0
- package/src/modules/checkout/api/updateMineCartItemQty/[context]bodyParser[auth].js +5 -0
- package/src/modules/checkout/api/updateMineCartItemQty/[detectCurrentCart]updateQty.js +51 -0
- package/src/modules/checkout/api/updateMineCartItemQty/[getCurrentCustomer]detectCurrentCart.js +32 -0
- package/src/modules/checkout/api/updateMineCartItemQty/payloadSchema.json +21 -0
- package/src/modules/checkout/api/updateMineCartItemQty/route.json +5 -0
- package/src/modules/checkout/bootstrap.js +27 -0
- package/src/modules/checkout/graphql/types/Cart/Cart.graphql +22 -3
- package/src/modules/checkout/graphql/types/Cart/Cart.resolvers.js +18 -2
- package/src/modules/checkout/graphql/types/CheckoutSetting/CheckoutSetting.graphql +3 -0
- package/src/modules/checkout/graphql/types/CheckoutSetting/CheckoutSetting.resolvers.js +7 -0
- package/src/modules/checkout/migration/Version-1.0.0.js +14 -0
- package/src/modules/checkout/migration/Version-1.0.6.js +201 -0
- package/src/modules/checkout/pages/admin/shippingSetting/ShippingSetting.jsx +2 -2
- package/src/modules/checkout/pages/frontStore/all/[context]detectCurrentCart[auth].js +5 -0
- package/src/modules/checkout/pages/frontStore/cart/ShoppingCart.jsx +20 -12
- package/src/modules/checkout/pages/frontStore/cart/Summary.jsx +34 -23
- package/src/modules/checkout/pages/frontStore/cart/route.json +2 -1
- package/src/modules/checkout/pages/frontStore/checkout/Checkout.jsx +5 -5
- package/src/modules/checkout/pages/frontStore/checkout/Checkout.scss +4 -0
- package/src/modules/checkout/pages/frontStore/checkout/ShippingMethods.jsx +2 -2
- package/src/modules/checkout/pages/frontStore/checkout/ShippingNote.jsx +105 -0
- package/src/modules/checkout/pages/frontStore/checkout/Summary.jsx +14 -14
- package/src/modules/checkout/pages/frontStore/checkout/SummaryMobile.jsx +12 -15
- package/src/modules/checkout/pages/frontStore/checkout/route.json +2 -1
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/CheckoutSuccess.jsx +1 -1
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/CheckoutSuccess.scss +4 -0
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/CustomerInfo.jsx +30 -32
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/ShippingNote.jsx +47 -0
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/Summary.jsx +12 -15
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/route.json +2 -1
- package/src/modules/checkout/services/cart/Cart.js +31 -27
- package/src/modules/checkout/services/cart/registerCartBaseFields.js +133 -41
- package/src/modules/checkout/services/cart/registerCartItemBaseFields.js +300 -374
- package/src/modules/checkout/services/toPrice.js +1 -1
- package/src/modules/checkout/tests/basicSetup.js +85 -0
- package/src/modules/checkout/tests/coupons.js +82 -0
- package/src/modules/checkout/tests/products.js +67 -0
- package/src/modules/checkout/tests/taxRates.js +3 -0
- package/src/modules/checkout/tests/unit/discountAmount.test.js +60 -0
- package/src/modules/checkout/tests/unit/grandTotal.test.js +83 -0
- package/src/modules/checkout/tests/unit/lineTotal.test.js +92 -0
- package/src/modules/checkout/tests/unit/lineTotalWithDiscount.test.js +103 -0
- package/src/modules/checkout/tests/unit/productPrice.test.js +69 -0
- package/src/modules/checkout/tests/unit/subTotal.test.js +85 -0
- package/src/modules/checkout/tests/unit/subTotalWithDiscount.test.js +117 -0
- package/src/modules/checkout/tests/unit/taxAmount.test.js +68 -0
- package/src/modules/checkout/tests/unit/taxAmountRounding.test.js +277 -0
- package/src/modules/cms/api/createWidget/[context]bodyParser[auth].js +5 -0
- package/src/modules/cms/api/createWidget/createWidget[finish].js +17 -0
- package/src/modules/cms/api/createWidget/finish[apiResponse].js +27 -0
- package/src/modules/cms/api/createWidget/payloadSchema.json +18 -0
- package/src/modules/cms/api/createWidget/route.json +5 -0
- package/src/modules/cms/api/deleteWidget/deleteWidget.js +27 -0
- package/src/modules/cms/api/deleteWidget/route.json +5 -0
- package/src/modules/cms/api/updateWidget/[context]bodyParser[auth].js +5 -0
- package/src/modules/cms/api/updateWidget/finish[apiResponse].js +27 -0
- package/src/modules/cms/api/updateWidget/payloadSchema.json +18 -0
- package/src/modules/cms/api/updateWidget/route.json +5 -0
- package/src/modules/cms/api/updateWidget/updateWidget[finish].js +17 -0
- package/src/modules/cms/bootstrap.js +223 -3
- package/src/modules/cms/graphql/types/CmsPage/CmsPage.graphql +1 -2
- package/src/modules/cms/graphql/types/CmsPage/CmsPage.resolvers.js +35 -1
- package/src/modules/cms/graphql/types/Widget/Widget.graphql +91 -0
- package/src/modules/cms/graphql/types/Widget/Widget.resolvers.js +142 -0
- package/src/modules/cms/migration/Version-1.1.0.js +22 -0
- package/src/modules/cms/migration/Version-1.1.1.js +103 -0
- package/src/modules/cms/pages/admin/adminNotFound/NotFound.jsx +4 -4
- package/src/modules/cms/pages/admin/all/CmsMenuGroup.jsx +12 -4
- package/src/modules/cms/pages/admin/all/Notification.scss +1 -1
- package/src/modules/cms/pages/admin/all/search/NoResult.jsx +2 -2
- package/src/modules/cms/pages/admin/all/search/Results.jsx +3 -3
- package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/FormContent.jsx +7 -9
- package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/General.jsx +3 -3
- package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/Seo.jsx +1 -1
- package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/Status.jsx +40 -0
- package/src/modules/cms/pages/admin/cmsPageGrid/Grid.jsx +3 -4
- package/src/modules/cms/pages/admin/dashboard/Layout.jsx +3 -3
- package/src/modules/cms/pages/admin/widgetEdit/WidgetForm.jsx +52 -0
- package/src/modules/cms/pages/admin/widgetEdit/index.js +36 -0
- package/src/modules/cms/pages/admin/widgetEdit/route.json +4 -0
- package/src/modules/cms/pages/admin/widgetEdit+widgetNew/FormContent.jsx +69 -0
- package/src/modules/cms/pages/admin/widgetEdit+widgetNew/FormContent.scss +7 -0
- package/src/modules/cms/pages/admin/widgetEdit+widgetNew/General.jsx +185 -0
- package/src/modules/cms/pages/admin/widgetEdit+widgetNew/PageHeading.jsx +37 -0
- package/src/modules/cms/pages/admin/widgetEdit+widgetNew/Setting.jsx +55 -0
- package/src/modules/cms/pages/admin/widgetGrid/Grid.jsx +415 -0
- package/src/modules/cms/pages/admin/widgetGrid/Heading.jsx +11 -0
- package/src/modules/cms/pages/admin/widgetGrid/NewWidgetButton.jsx +52 -0
- package/src/modules/cms/pages/admin/widgetGrid/index.js +15 -0
- package/src/modules/cms/pages/admin/widgetGrid/route.json +4 -0
- package/src/modules/cms/pages/admin/widgetNew/WidgetNewForm.jsx +60 -0
- package/src/modules/cms/pages/admin/widgetNew/index.js +11 -0
- package/src/modules/cms/pages/admin/widgetNew/route.json +4 -0
- package/src/modules/cms/pages/admin/widgetNew/typeValidate.js +21 -0
- package/src/modules/cms/pages/frontStore/all/Breadcrumb.jsx +1 -1
- package/src/modules/cms/pages/frontStore/all/Footer.jsx +2 -2
- package/src/modules/cms/pages/frontStore/all/Layout.jsx +3 -3
- package/src/modules/cms/pages/frontStore/all/Layout.scss +13 -0
- package/src/modules/cms/pages/frontStore/all/Logo.jsx +2 -2
- package/src/modules/cms/pages/frontStore/all/Logo.scss +2 -4
- package/src/modules/cms/pages/frontStore/all/Notification.scss +1 -1
- package/src/modules/cms/pages/frontStore/cmsPageView/Layout.jsx +2 -2
- package/src/modules/cms/pages/frontStore/cmsPageView/View.jsx +5 -3
- package/src/modules/cms/pages/frontStore/cmsPageView/index.js +6 -12
- package/src/modules/cms/pages/frontStore/cmsPageView/route.json +2 -1
- package/src/modules/cms/pages/frontStore/homepage/route.json +2 -1
- package/src/modules/cms/pages/frontStore/notFound/NotFound.jsx +4 -4
- package/src/modules/cms/pages/frontStore/notFound/route.json +2 -1
- package/src/modules/cms/pages/frontStore/staticAsset/[context]staticAssets[auth].js +1 -1
- package/src/modules/cms/services/CMSPageCollection.js +10 -10
- package/src/modules/cms/services/WidgetCollection.js +62 -0
- package/src/modules/cms/services/getWidgetsBaseQuery.js +7 -0
- package/src/modules/cms/services/page/createPage.js +1 -2
- package/src/modules/cms/services/page/pageDataSchema.json +0 -4
- package/src/modules/cms/services/registerDefaultWidgetCollectionFilters.js +62 -0
- package/src/modules/cms/services/tailwind.admin.config.js +22 -107
- package/src/modules/cms/services/tailwind.frontStore.config.js +23 -108
- package/src/modules/cms/services/widget/createWidget.js +73 -0
- package/src/modules/cms/services/widget/deleteWidget.js +49 -0
- package/src/modules/cms/services/widget/loadWidgetInstances.js +54 -0
- package/src/modules/cms/services/widget/updateWidget.js +86 -0
- package/src/modules/cms/services/widget/widgetDataSchema.json +29 -0
- package/src/modules/cod/pages/admin/paymentSetting/CODSetting.jsx +2 -2
- package/src/modules/cod/pages/frontStore/checkout/CashOnDelivery.jsx +1 -1
- package/src/modules/customer/bootstrap.js +21 -4
- package/src/modules/customer/pages/admin/customerEdit/CustomerEditForm.jsx +3 -3
- package/src/modules/customer/pages/admin/customerEdit+customerNew/OrderHistory.jsx +1 -1
- package/src/modules/customer/pages/admin/customerGrid/Grid.jsx +3 -3
- package/src/modules/customer/pages/frontStore/account/AccountDetails.jsx +3 -3
- package/src/modules/customer/pages/frontStore/account/Layout.jsx +3 -3
- package/src/modules/customer/pages/frontStore/account/OrderHistory.jsx +1 -1
- package/src/modules/customer/pages/frontStore/account/route.json +2 -1
- package/src/modules/customer/pages/frontStore/login/LoginForm.jsx +2 -2
- package/src/modules/customer/pages/frontStore/login/route.json +2 -1
- package/src/modules/customer/pages/frontStore/register/RegisterForm.jsx +2 -2
- package/src/modules/customer/pages/frontStore/register/route.json +2 -1
- package/src/modules/customer/pages/frontStore/resetPasswordPage/ResetPasswordForm.jsx +2 -2
- package/src/modules/customer/pages/frontStore/resetPasswordPage/route.json +2 -1
- package/src/modules/customer/pages/frontStore/updatePasswordPage/UpdatePasswordForm.jsx +3 -3
- package/src/modules/customer/pages/frontStore/updatePasswordPage/route.json +2 -1
- package/src/modules/customer/services/CustomerCollection.js +10 -10
- package/src/modules/customer/services/CustomerGroupCollection.js +10 -10
- package/src/modules/graphql/pages/global/[bodyParser]buildQuery[graphql].js +241 -6
- package/src/modules/graphql/pages/global/[buildQuery]graphql[notification].js +12 -8
- package/src/modules/oms/bootstrap.js +87 -3
- package/src/modules/oms/graphql/types/Order/Order.graphql +11 -2
- package/src/modules/oms/graphql/types/Order/Order.resolvers.js +7 -1
- package/src/modules/oms/pages/admin/dashboard/Bestsellers.jsx +2 -2
- package/src/modules/oms/pages/admin/dashboard/Lifetimesales.jsx +5 -5
- package/src/modules/oms/pages/admin/orderEdit/AddTrackingButton.jsx +1 -1
- package/src/modules/oms/pages/admin/orderEdit/Items.jsx +7 -7
- package/src/modules/oms/pages/admin/orderEdit/Layout.jsx +3 -3
- package/src/modules/oms/pages/admin/orderEdit/Payment.jsx +6 -6
- package/src/modules/oms/pages/admin/orderEdit/ShipButton.jsx +1 -1
- package/src/modules/oms/pages/admin/orderGrid/Grid.jsx +3 -3
- package/src/modules/oms/services/OrderCollection.js +10 -10
- package/src/modules/paypal/api/paypalCreateOrder/[bodyParser]createOrder.js +55 -24
- package/src/modules/paypal/pages/admin/paymentSetting/PaypalSetting.jsx +6 -6
- package/src/modules/paypal/pages/frontStore/checkout/Paypal.jsx +3 -4
- package/src/modules/promotion/bootstrap.js +19 -101
- package/src/modules/promotion/pages/admin/couponEdit+couponNew/DiscountType.jsx +1 -1
- package/src/modules/promotion/pages/admin/couponEdit+couponNew/FormContent.jsx +5 -5
- package/src/modules/promotion/pages/admin/couponGrid/Grid.jsx +3 -3
- package/src/modules/promotion/pages/frontStore/cart/Coupon.jsx +2 -2
- package/src/modules/promotion/services/CouponCollection.js +10 -10
- package/src/modules/promotion/services/couponValidator.js +4 -7
- package/src/modules/promotion/services/discountCalculator.js +2 -7
- package/src/modules/promotion/services/registerCartItemPromotionFields.js +80 -0
- package/src/modules/promotion/services/registerCartPromotionFields.js +128 -0
- package/src/modules/promotion/services/registerDefaultCalculators.js +48 -20
- package/src/modules/promotion/services/registerDefaultValidators.js +16 -4
- package/src/modules/setting/pages/admin/paymentSetting/PaymentSetting.jsx +2 -2
- package/src/modules/setting/pages/admin/storeSetting/StoreSetting.jsx +98 -35
- package/src/modules/stripe/pages/admin/paymentSetting/StripePayment.jsx +5 -5
- package/src/modules/stripe/pages/frontStore/checkout/Stripe.jsx +1 -1
- package/src/modules/tax/bootstrap.js +40 -5
- package/src/modules/tax/graphql/types/Product/Price/ProductPrice.resolvers.js +6 -39
- package/src/modules/tax/graphql/types/TaxSetting/TaxSetting.graphql +1 -2
- package/src/modules/tax/graphql/types/TaxSetting/TaxSetting.resolvers.js +1 -8
- package/src/modules/tax/pages/admin/taxSetting/TaxSetting.jsx +4 -4
- package/src/modules/tax/services/TaxClassCollection.js +10 -10
- package/src/modules/tax/services/calculateTaxAmount.js +12 -9
- package/src/modules/tax/services/registerCartItemTaxPercentField.js +76 -0
- package/src/modules/auth/services/adminSessionMiddleware.js +0 -0
- package/src/modules/catalog/pages/frontStore/homepage/FeaturedCategories.jsx +0 -58
- package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/StatusAndLayout.jsx +0 -61
- package/src/modules/cms/pages/frontStore/all/Menu.jsx +0 -46
- package/src/modules/cms/pages/frontStore/all/Menu.scss +0 -7
- package/src/modules/cms/pages/frontStore/all/MobileMenu.jsx +0 -73
- package/src/modules/cms/pages/frontStore/all/MobileMenu.scss +0 -35
- package/src/modules/cms/pages/frontStore/homepage/MainBanner.jsx +0 -31
- package/src/modules/cms/pages/frontStore/homepage/MainBanner.scss +0 -48
|
@@ -3,6 +3,7 @@ import React from 'react';
|
|
|
3
3
|
import { Field } from '@components/common/form/Field';
|
|
4
4
|
import { Form } from '@components/common/form/Form';
|
|
5
5
|
import './LoginForm.scss';
|
|
6
|
+
import Area from '@components/common/Area';
|
|
6
7
|
|
|
7
8
|
export default function LoginForm({ authUrl, dashboardUrl }) {
|
|
8
9
|
const [error, setError] = React.useState(null);
|
|
@@ -17,15 +18,29 @@ export default function LoginForm({ authUrl, dashboardUrl }) {
|
|
|
17
18
|
|
|
18
19
|
return (
|
|
19
20
|
<div className="admin-login-form">
|
|
20
|
-
<div className="flex items-center justify-center mb-
|
|
21
|
-
<
|
|
22
|
-
width=
|
|
23
|
-
height=
|
|
24
|
-
|
|
25
|
-
src="data:image/jpeg;base64,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"
|
|
26
|
-
|
|
21
|
+
<div className="flex items-center justify-center mb-12">
|
|
22
|
+
<svg
|
|
23
|
+
width="60"
|
|
24
|
+
height="61"
|
|
25
|
+
viewBox="0 0 251 276"
|
|
26
|
+
fill="none"
|
|
27
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
28
|
+
>
|
|
29
|
+
<path
|
|
30
|
+
d="M62.2402 34.2864L0.329313 68.5728L0.131725 137.524L0 206.538L62.306 240.95C96.5546 259.858 124.81 275.363 125.139 275.363C125.468 275.363 142.527 266.035 163.142 254.69C183.691 243.282 211.748 227.841 225.448 220.277L250.278 206.538V191.789V176.978L248.829 177.735C247.973 178.176 219.915 193.617 186.457 212.147C152.933 230.677 125.205 245.677 124.81 245.614C124.349 245.488 102.219 233.387 75.5444 218.639L27.0037 191.853V137.65V83.4471L48.9359 71.346C60.9229 64.7282 82.9211 52.6271 97.7401 44.4337C112.493 36.2402 124.876 29.5594 125.139 29.5594C125.402 29.5594 142.593 38.9504 163.339 50.4212L223.801 83.447L233.337 78.0776L250.278 68.5728L223.801 54.1398C202.857 42.2908 125.6 -0.0629883 124.941 6.10352e-05C124.546 6.10352e-05 96.2912 15.4415 62.2402 34.2864Z"
|
|
31
|
+
fill="#008060"
|
|
32
|
+
/>
|
|
33
|
+
<path
|
|
34
|
+
d="M188.367 102.796C154.514 121.515 126.325 137.019 125.732 137.146C125.073 137.335 108.542 128.511 87.0045 116.662L49.397 95.8632V110.8L49.4628 125.675L86.0166 145.843C106.105 156.936 123.229 166.264 124.085 166.579C125.402 167.02 134.623 162.167 187.445 132.986C221.43 114.141 249.488 98.5734 249.817 98.3213C250.08 98.0691 250.212 91.3253 250.146 83.321L249.949 68.7618L188.367 102.796Z"
|
|
35
|
+
fill="#008060"
|
|
36
|
+
/>
|
|
37
|
+
<path
|
|
38
|
+
d="M243.362 126.557C239.74 128.511 211.814 143.953 181.254 160.844C150.694 177.735 125.468 191.537 125.139 191.537C124.81 191.537 107.751 182.21 87.1363 170.865L49.7263 150.192L49.5288 164.688C49.397 175.781 49.5946 179.373 50.1874 179.941C51.4388 181.012 124.349 221.16 125.139 221.16C125.798 221.16 248.763 153.406 249.817 152.524C250.08 152.272 250.212 145.528 250.146 137.461L249.949 122.902L243.362 126.557Z"
|
|
39
|
+
fill="#008060"
|
|
40
|
+
/>
|
|
41
|
+
</svg>
|
|
27
42
|
</div>
|
|
28
|
-
{error && <div className="text-critical py-
|
|
43
|
+
{error && <div className="text-critical py-4">{error}</div>}
|
|
29
44
|
<Form
|
|
30
45
|
action={authUrl}
|
|
31
46
|
method="POST"
|
|
@@ -34,19 +49,37 @@ export default function LoginForm({ authUrl, dashboardUrl }) {
|
|
|
34
49
|
onSuccess={onSuccess}
|
|
35
50
|
btnText="SIGN IN"
|
|
36
51
|
>
|
|
37
|
-
<
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
52
|
+
<Area
|
|
53
|
+
id="adminLoginForm"
|
|
54
|
+
coreComponents={[
|
|
55
|
+
{
|
|
56
|
+
component: {
|
|
57
|
+
default: Field
|
|
58
|
+
},
|
|
59
|
+
props: {
|
|
60
|
+
name: 'email',
|
|
61
|
+
type: 'email',
|
|
62
|
+
label: 'Email',
|
|
63
|
+
placeholder: 'Email',
|
|
64
|
+
validationRules: ['notEmpty', 'email']
|
|
65
|
+
},
|
|
66
|
+
sortOrder: 10
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
component: {
|
|
70
|
+
default: Field
|
|
71
|
+
},
|
|
72
|
+
props: {
|
|
73
|
+
name: 'password',
|
|
74
|
+
type: 'password',
|
|
75
|
+
label: 'Password',
|
|
76
|
+
placeholder: 'Password',
|
|
77
|
+
validationRules: ['notEmpty']
|
|
78
|
+
},
|
|
79
|
+
sortOrder: 20
|
|
80
|
+
}
|
|
81
|
+
]}
|
|
82
|
+
noOuter
|
|
50
83
|
/>
|
|
51
84
|
</Form>
|
|
52
85
|
</div>
|
|
@@ -31,18 +31,18 @@ export default function AdminUser({ adminUser, logoutUrl, loginPage }) {
|
|
|
31
31
|
const { fullName } = adminUser;
|
|
32
32
|
return (
|
|
33
33
|
<div className="admin-user flex flex-grow justify-end items-center">
|
|
34
|
-
<div className="flex justify-items-start gap-
|
|
34
|
+
<div className="flex justify-items-start gap-4 justify-center">
|
|
35
35
|
<div className="relative">
|
|
36
36
|
<a className="first-letter" href="#" onClick={(e) => show(e)}>
|
|
37
37
|
{fullName[0]}
|
|
38
38
|
</a>
|
|
39
39
|
{showLogout && (
|
|
40
|
-
<div className="logout bg-background shadow p-
|
|
40
|
+
<div className="logout bg-background shadow p-8">
|
|
41
41
|
<div>
|
|
42
42
|
<div>
|
|
43
43
|
Hello <span className="text-primary">{fullName}!</span>
|
|
44
44
|
</div>
|
|
45
|
-
<div className="mt-
|
|
45
|
+
<div className="mt-4">
|
|
46
46
|
<a
|
|
47
47
|
className="text-critical"
|
|
48
48
|
href="#"
|
|
@@ -1,7 +1,86 @@
|
|
|
1
1
|
const {
|
|
2
2
|
loadCsv
|
|
3
3
|
} = require('@evershop/evershop/src/lib/locale/translate/translate');
|
|
4
|
+
const { merge } = require('@evershop/evershop/src/lib/util/merge');
|
|
5
|
+
const { addProcessor } = require('../../lib/util/registry');
|
|
4
6
|
|
|
5
7
|
module.exports = async () => {
|
|
6
8
|
await loadCsv();
|
|
9
|
+
addProcessor('configuratonSchema', (schema) => {
|
|
10
|
+
merge(schema, {
|
|
11
|
+
properties: {
|
|
12
|
+
shop: {
|
|
13
|
+
type: 'object',
|
|
14
|
+
properties: {
|
|
15
|
+
homeUrl: {
|
|
16
|
+
type: 'string',
|
|
17
|
+
format: 'uri'
|
|
18
|
+
},
|
|
19
|
+
weightUnit: {
|
|
20
|
+
type: 'string'
|
|
21
|
+
},
|
|
22
|
+
currency: {
|
|
23
|
+
type: 'string'
|
|
24
|
+
},
|
|
25
|
+
language: {
|
|
26
|
+
type: 'string'
|
|
27
|
+
},
|
|
28
|
+
timezone: {
|
|
29
|
+
type: 'string'
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
system: {
|
|
34
|
+
type: 'object',
|
|
35
|
+
properties: {
|
|
36
|
+
extensions: {
|
|
37
|
+
type: 'array',
|
|
38
|
+
items: {
|
|
39
|
+
type: 'object',
|
|
40
|
+
properties: {
|
|
41
|
+
name: {
|
|
42
|
+
type: 'string'
|
|
43
|
+
},
|
|
44
|
+
resolve: {
|
|
45
|
+
type: 'string'
|
|
46
|
+
},
|
|
47
|
+
enabled: {
|
|
48
|
+
type: 'boolean'
|
|
49
|
+
},
|
|
50
|
+
priority: {
|
|
51
|
+
type: 'number'
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
required: ['name', 'enabled', 'resolve']
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
theme: {
|
|
58
|
+
type: 'string'
|
|
59
|
+
},
|
|
60
|
+
session: {
|
|
61
|
+
type: 'object',
|
|
62
|
+
properties: {
|
|
63
|
+
cookieSecret: {
|
|
64
|
+
type: 'string'
|
|
65
|
+
},
|
|
66
|
+
cookieName: {
|
|
67
|
+
type: 'string'
|
|
68
|
+
},
|
|
69
|
+
maxAge: {
|
|
70
|
+
type: 'number'
|
|
71
|
+
},
|
|
72
|
+
reSave: {
|
|
73
|
+
type: 'boolean'
|
|
74
|
+
},
|
|
75
|
+
saveUninitialized: {
|
|
76
|
+
type: 'boolean'
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
return schema;
|
|
85
|
+
});
|
|
7
86
|
};
|
|
@@ -5,6 +5,9 @@ const isErrorHandlerTriggered = require('@evershop/evershop/src/lib/middleware/i
|
|
|
5
5
|
const { render } = require('@evershop/evershop/src/lib/response/render');
|
|
6
6
|
const { get } = require('@evershop/evershop/src/lib/util/get');
|
|
7
7
|
const isDevelopmentMode = require('@evershop/evershop/src/lib/util/isDevelopmentMode');
|
|
8
|
+
const {
|
|
9
|
+
loadWidgetInstances
|
|
10
|
+
} = require('../../../cms/services/widget/loadWidgetInstances');
|
|
8
11
|
|
|
9
12
|
module.exports = async (request, response, delegate, next) => {
|
|
10
13
|
/** Get all promise delegate */
|
|
@@ -38,6 +41,26 @@ module.exports = async (request, response, delegate, next) => {
|
|
|
38
41
|
isApi: route.isApi,
|
|
39
42
|
isAdmin: route.isAdmin
|
|
40
43
|
};
|
|
44
|
+
let widgetInstances;
|
|
45
|
+
// Check if we are in the test mode
|
|
46
|
+
if (process.env.NODE_ENV === 'test') {
|
|
47
|
+
widgetInstances = [];
|
|
48
|
+
} else {
|
|
49
|
+
widgetInstances = await loadWidgetInstances(request);
|
|
50
|
+
}
|
|
51
|
+
widgetInstances = widgetInstances.map((widget) => {
|
|
52
|
+
const newWidget = {
|
|
53
|
+
sortOrder: widget.sortOrder,
|
|
54
|
+
areaId: widget.areaId,
|
|
55
|
+
type: widget.type
|
|
56
|
+
};
|
|
57
|
+
newWidget.id = `e${widget.uuid.replace(/-/g, '')}`;
|
|
58
|
+
if (route.isAdmin) {
|
|
59
|
+
newWidget.areaId = 'widget_setting_form';
|
|
60
|
+
}
|
|
61
|
+
return newWidget;
|
|
62
|
+
});
|
|
63
|
+
response.locals.widgets = widgetInstances;
|
|
41
64
|
if (
|
|
42
65
|
(isDevelopmentMode() &&
|
|
43
66
|
request.query &&
|
|
@@ -48,7 +71,8 @@ module.exports = async (request, response, delegate, next) => {
|
|
|
48
71
|
success: true,
|
|
49
72
|
eContext: {
|
|
50
73
|
graphqlResponse: get(response, 'locals.graphqlResponse', {}),
|
|
51
|
-
propsMap: get(response, 'locals.propsMap', {})
|
|
74
|
+
propsMap: get(response, 'locals.propsMap', {}),
|
|
75
|
+
widgets: widgetInstances
|
|
52
76
|
}
|
|
53
77
|
});
|
|
54
78
|
} else {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const config = require('config');
|
|
2
|
+
const { merge } = require('@evershop/evershop/src/lib/util/merge');
|
|
2
3
|
const { addProcessor } = require('../../lib/util/registry');
|
|
3
4
|
const registerDefaultProductCollectionFilters = require('./services/registerDefaultProductCollectionFilters');
|
|
4
5
|
const registerDefaultCategoryCollectionFilters = require('./services/registerDefaultCategoryCollectionFilters');
|
|
@@ -7,9 +8,91 @@ const registerDefaultAttributeCollectionFilters = require('./services/registerDe
|
|
|
7
8
|
const {
|
|
8
9
|
defaultPaginationFilters
|
|
9
10
|
} = require('../../lib/util/defaultPaginationFilters');
|
|
11
|
+
const {
|
|
12
|
+
registerCartItemProductUrlField
|
|
13
|
+
} = require('./services/registerCartItemProductUrlField');
|
|
14
|
+
const {
|
|
15
|
+
registerCartItemVariantOptionsField
|
|
16
|
+
} = require('./services/registerCartItemVariantOptionsField');
|
|
10
17
|
|
|
11
18
|
module.exports = () => {
|
|
12
|
-
|
|
19
|
+
addProcessor('cartItemFields', registerCartItemProductUrlField, 0);
|
|
20
|
+
addProcessor('cartItemFields', registerCartItemVariantOptionsField, 0);
|
|
21
|
+
addProcessor('configuratonSchema', (schema) => {
|
|
22
|
+
merge(schema, {
|
|
23
|
+
properties: {
|
|
24
|
+
catalog: {
|
|
25
|
+
type: 'object',
|
|
26
|
+
properties: {
|
|
27
|
+
product: {
|
|
28
|
+
type: 'object',
|
|
29
|
+
properties: {
|
|
30
|
+
image: {
|
|
31
|
+
type: 'object',
|
|
32
|
+
properties: {
|
|
33
|
+
thumbnail: {
|
|
34
|
+
type: 'object',
|
|
35
|
+
properties: {
|
|
36
|
+
width: {
|
|
37
|
+
type: 'integer'
|
|
38
|
+
},
|
|
39
|
+
height: {
|
|
40
|
+
type: 'integer'
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
listing: {
|
|
45
|
+
type: 'object',
|
|
46
|
+
properties: {
|
|
47
|
+
width: {
|
|
48
|
+
type: 'integer'
|
|
49
|
+
},
|
|
50
|
+
height: {
|
|
51
|
+
type: 'integer'
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
single: {
|
|
56
|
+
type: 'object',
|
|
57
|
+
properties: {
|
|
58
|
+
width: {
|
|
59
|
+
type: 'integer'
|
|
60
|
+
},
|
|
61
|
+
height: {
|
|
62
|
+
type: 'integer'
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
placeHolder: {
|
|
67
|
+
type: 'string',
|
|
68
|
+
format: 'uri-reference'
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
showOutOfStockProduct: {
|
|
75
|
+
type: 'boolean'
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
pricing: {
|
|
80
|
+
type: 'object',
|
|
81
|
+
properties: {
|
|
82
|
+
rounding: {
|
|
83
|
+
type: 'string',
|
|
84
|
+
enum: ['round', 'floor', 'ceil']
|
|
85
|
+
},
|
|
86
|
+
precision: {
|
|
87
|
+
type: 'integer'
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
return schema;
|
|
94
|
+
});
|
|
95
|
+
const defaultCatalogConfig = {
|
|
13
96
|
product: {
|
|
14
97
|
image: {
|
|
15
98
|
thumbnail: {
|
|
@@ -29,14 +112,14 @@ module.exports = () => {
|
|
|
29
112
|
},
|
|
30
113
|
showOutOfStockProduct: false
|
|
31
114
|
};
|
|
32
|
-
config.util.setModuleDefaults('catalog',
|
|
115
|
+
config.util.setModuleDefaults('catalog', defaultCatalogConfig);
|
|
33
116
|
|
|
34
|
-
//
|
|
35
|
-
const
|
|
117
|
+
// Default pricing configuration
|
|
118
|
+
const defaultPricingConfig = {
|
|
36
119
|
rounding: 'round',
|
|
37
120
|
precision: 2
|
|
38
121
|
};
|
|
39
|
-
config.util.setModuleDefaults('pricing',
|
|
122
|
+
config.util.setModuleDefaults('pricing', defaultPricingConfig);
|
|
40
123
|
// Getting config value like this: config.get('catalog.product.image.thumbnail.width');
|
|
41
124
|
|
|
42
125
|
// Reigtering the default filters for product collection
|
|
@@ -93,4 +176,41 @@ module.exports = () => {
|
|
|
93
176
|
(filters) => [...filters, ...defaultPaginationFilters],
|
|
94
177
|
1
|
|
95
178
|
);
|
|
179
|
+
|
|
180
|
+
// Register default widgets
|
|
181
|
+
const widgets = {
|
|
182
|
+
collection_products: {
|
|
183
|
+
setting_component:
|
|
184
|
+
'@evershop/evershop/src/components/admin/widgets/CollectionProductsSetting.jsx',
|
|
185
|
+
component:
|
|
186
|
+
'@evershop/evershop/src/components/frontStore/widgets/CollectionProducts.jsx',
|
|
187
|
+
name: 'Collection products',
|
|
188
|
+
description: 'A list of products from a collection',
|
|
189
|
+
default_settings: {
|
|
190
|
+
collection: null,
|
|
191
|
+
count: 4
|
|
192
|
+
},
|
|
193
|
+
enabled: true
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
config.util.setModuleDefaults('widgets', widgets);
|
|
197
|
+
|
|
198
|
+
const parseIntCount = (data) => {
|
|
199
|
+
if (data.type !== 'collection_products') {
|
|
200
|
+
return data;
|
|
201
|
+
}
|
|
202
|
+
// eslint-disable-next-line no-param-reassign
|
|
203
|
+
data.settings = data.settings || {};
|
|
204
|
+
if (data.settings.count) {
|
|
205
|
+
// eslint-disable-next-line no-param-reassign
|
|
206
|
+
data.settings.count = parseInt(data.settings.count, 10);
|
|
207
|
+
} else {
|
|
208
|
+
// eslint-disable-next-line no-param-reassign
|
|
209
|
+
data.settings.count = 4;
|
|
210
|
+
}
|
|
211
|
+
return data;
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
addProcessor('widgetDataBeforeCreate', parseIntCount, 1);
|
|
215
|
+
addProcessor('widgetDataBeforeUpdate', parseIntCount, 1);
|
|
96
216
|
};
|