From 2acfbd2168a4f72682fe84171be7592731eae970 Mon Sep 17 00:00:00 2001 From: Youri Westerman Date: Thu, 3 Jun 2021 15:59:02 +0200 Subject: [PATCH] Add recipe for Nedac Sylius Minimum Ordr Value plugin --- ...dac_sylius_minimum_order_value_plugin.yaml | 2 + .../1.0/manifest.json | 10 ++ .../1.0/src/Entity/Channel/Channel.php | 20 ++++ .../SyliusAdminBundle/Channel/_form.html.twig | 93 +++++++++++++++++++ .../Cart/Summary/_checkout.html.twig | 20 ++++ .../Cart/Widget/_popup.html.twig | 20 ++++ .../SyliusShopBundle/Cart/_widget.html.twig | 6 ++ 7 files changed, 171 insertions(+) create mode 100644 nedac/sylius-minimum-order-value-plugin/1.0/config/packages/nedac_sylius_minimum_order_value_plugin.yaml create mode 100644 nedac/sylius-minimum-order-value-plugin/1.0/manifest.json create mode 100644 nedac/sylius-minimum-order-value-plugin/1.0/src/Entity/Channel/Channel.php create mode 100644 nedac/sylius-minimum-order-value-plugin/1.0/templates/bundles/SyliusAdminBundle/Channel/_form.html.twig create mode 100644 nedac/sylius-minimum-order-value-plugin/1.0/templates/bundles/SyliusShopBundle/Cart/Summary/_checkout.html.twig create mode 100644 nedac/sylius-minimum-order-value-plugin/1.0/templates/bundles/SyliusShopBundle/Cart/Widget/_popup.html.twig create mode 100644 nedac/sylius-minimum-order-value-plugin/1.0/templates/bundles/SyliusShopBundle/Cart/_widget.html.twig diff --git a/nedac/sylius-minimum-order-value-plugin/1.0/config/packages/nedac_sylius_minimum_order_value_plugin.yaml b/nedac/sylius-minimum-order-value-plugin/1.0/config/packages/nedac_sylius_minimum_order_value_plugin.yaml new file mode 100644 index 00000000..64e5c242 --- /dev/null +++ b/nedac/sylius-minimum-order-value-plugin/1.0/config/packages/nedac_sylius_minimum_order_value_plugin.yaml @@ -0,0 +1,2 @@ +imports: + - { resource: "@NedacSyliusMinimumOrderValuePlugin/Resources/config/config.yaml" } diff --git a/nedac/sylius-minimum-order-value-plugin/1.0/manifest.json b/nedac/sylius-minimum-order-value-plugin/1.0/manifest.json new file mode 100644 index 00000000..68498200 --- /dev/null +++ b/nedac/sylius-minimum-order-value-plugin/1.0/manifest.json @@ -0,0 +1,10 @@ +{ + "bundles": { + "Nedac\\SyliusMinimumOrderValuePlugin\\NedacSyliusMinimumOrderValuePlugin": ["all"] + }, + "copy-from-recipe": { + "config/": "%CONFIG_DIR%/", + "src/": "%SRC_DIR%", + "templates/": "templates/" + } +} diff --git a/nedac/sylius-minimum-order-value-plugin/1.0/src/Entity/Channel/Channel.php b/nedac/sylius-minimum-order-value-plugin/1.0/src/Entity/Channel/Channel.php new file mode 100644 index 00000000..635918c2 --- /dev/null +++ b/nedac/sylius-minimum-order-value-plugin/1.0/src/Entity/Channel/Channel.php @@ -0,0 +1,20 @@ + +
+

{{ 'sylius.ui.general'|trans }}

+
+ {{ form_errors(form) }} +
+
+ {{ form_row(form.code) }} +
+
+ {{ form_row(form.name) }} +
+
+ {{ form_row(form.color) }} +
+
+ + {{ form_row(form.enabled) }} +
+
+
+ {{ form_label(form.hostname) }} +
+
http://
+ {{ form_widget(form.hostname) }} +
+ {{ form_errors(form.hostname) }} +
+ {{ form_row(form.contactEmail) }} + {{ form_row(form.description, {'attr': {'rows' : '3'}}) }} +
+
+ {{ form_row(form.countries) }} +
+ +

{{ 'sylius.ui.money'|trans }}

+
+
+ {{ form_row(form.baseCurrency) }} + {{ form_row(form.currencies) }} +
+
+
+ {{ form_row(form.defaultTaxZone) }} + {{ form_row(form.taxCalculationStrategy) }} +
+
+
+

{{ form_label(form.shopBillingData) }}

+
+
+ {{ form_row(form.shopBillingData.company) }} + {{ form_row(form.shopBillingData.taxId) }} +
+
+ {{ form_row(form.shopBillingData.countryCode) }} + {{ form_row(form.shopBillingData.street) }} +
+
+ {{ form_row(form.shopBillingData.city) }} + {{ form_row(form.shopBillingData.postcode) }} +
+
+ +

{{ 'sylius.ui.look_and_feel'|trans }}

+
+ {{ form_row(form.themeName) }} +
+
+ {{ form_row(form.locales) }} + {{ form_row(form.defaultLocale) }} +
+
+ {{ form_row(form.menuTaxon) }} +
+ +
+ {{ form_row(form.skippingShippingStepAllowed) }} + {{ form_row(form.skippingPaymentStepAllowed) }} + {{ form_row(form.accountVerificationRequired) }} +
+ {% if form.minimumOrderValue is defined %} +
+ {{ form_row(form.minimumOrderValue) }} +
+ + +
+
+ {% endif %} +
+ diff --git a/nedac/sylius-minimum-order-value-plugin/1.0/templates/bundles/SyliusShopBundle/Cart/Summary/_checkout.html.twig b/nedac/sylius-minimum-order-value-plugin/1.0/templates/bundles/SyliusShopBundle/Cart/Summary/_checkout.html.twig new file mode 100644 index 00000000..1a69d0fd --- /dev/null +++ b/nedac/sylius-minimum-order-value-plugin/1.0/templates/bundles/SyliusShopBundle/Cart/Summary/_checkout.html.twig @@ -0,0 +1,20 @@ +{% import "@SyliusShop/Common/Macro/money.html.twig" as money %} + +{% set minimumOrderValue = cart.channel.minimumOrderValue %} +{% set total = sylius_order_items_subtotal(cart) %} + +{% if total >= minimumOrderValue %} + {% set buttonClass = "ui huge primary fluid labeled icon button" %} +{% else %} + {% set buttonClass = "ui huge primary fluid labeled icon button disabled" %} + {% set formattedMinimum = money.convertAndFormat(minimumOrderValue) %} + {% set formattedDifference = money.convertAndFormat(minimumOrderValue - total) %} +
+ +
+
{{ 'nedac_sylius_minimum_order_value_plugin.ui.attention'|trans }}
+

{{ 'nedac_sylius_minimum_order_value_plugin.ui.minimum_not_yet_reached'|trans({ '%minimumOrderValue% ': formattedMinimum, '%difference%': formattedDifference })|raw('br') }}

+
+
+{% endif %} + {{ 'sylius.ui.checkout'|trans }} diff --git a/nedac/sylius-minimum-order-value-plugin/1.0/templates/bundles/SyliusShopBundle/Cart/Widget/_popup.html.twig b/nedac/sylius-minimum-order-value-plugin/1.0/templates/bundles/SyliusShopBundle/Cart/Widget/_popup.html.twig new file mode 100644 index 00000000..96f6b88b --- /dev/null +++ b/nedac/sylius-minimum-order-value-plugin/1.0/templates/bundles/SyliusShopBundle/Cart/Widget/_popup.html.twig @@ -0,0 +1,20 @@ +{% import "@SyliusShop/Common/Macro/money.html.twig" as money %} + +{% set minimumOrderValue = cart.channel.minimumOrderValue %} +{% set total = sylius_order_items_subtotal(cart) %} + +{% if cart.empty %} + {{ 'sylius.ui.your_cart_is_empty'|trans }}. +{% else %} +
+ {% for item in cart.items %} +
{{ item.quantity }} x {{ item.product }} {{ money.convertAndFormat(item.unitPrice) }}
+ {% endfor %} +
{{ 'sylius.ui.subtotal'|trans }}: {{ money.convertAndFormat(cart.itemsTotal) }}
+
+ {{ 'sylius.ui.view_and_edit_cart'|trans }} + {% if total >= minimumOrderValue %} +
+ {{ 'sylius.ui.checkout'|trans }} + {% endif %} +{% endif %} diff --git a/nedac/sylius-minimum-order-value-plugin/1.0/templates/bundles/SyliusShopBundle/Cart/_widget.html.twig b/nedac/sylius-minimum-order-value-plugin/1.0/templates/bundles/SyliusShopBundle/Cart/_widget.html.twig new file mode 100644 index 00000000..2ca25ac8 --- /dev/null +++ b/nedac/sylius-minimum-order-value-plugin/1.0/templates/bundles/SyliusShopBundle/Cart/_widget.html.twig @@ -0,0 +1,6 @@ +
+ {{ sylius_template_event('sylius.shop.cart.widget.button', {'cart': cart}) }} +
+