From ae8a6bb707ca8a6d12219fd8a99025221b982e09 Mon Sep 17 00:00:00 2001 From: Adam Kasperczak Date: Fri, 15 Oct 2021 13:45:26 +0200 Subject: [PATCH] move channel pricing to separete tab --- .../Menu/ProductVariantFormMenuBuilder.php | 6 +++++ .../Resources/translations/messages.en.yml | 4 +++ .../Tab/_channelPricings.html.twig | 27 +++++++++++++++++++ .../ProductVariant/Tab/_details.html.twig | 7 +++-- 4 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 src/Sylius/Bundle/AdminBundle/Resources/views/ProductVariant/Tab/_channelPricings.html.twig diff --git a/src/Sylius/Bundle/AdminBundle/Menu/ProductVariantFormMenuBuilder.php b/src/Sylius/Bundle/AdminBundle/Menu/ProductVariantFormMenuBuilder.php index 7fd2a0cee4ad..718039e36947 100644 --- a/src/Sylius/Bundle/AdminBundle/Menu/ProductVariantFormMenuBuilder.php +++ b/src/Sylius/Bundle/AdminBundle/Menu/ProductVariantFormMenuBuilder.php @@ -60,6 +60,12 @@ public function createMenu(array $options = []): ItemInterface ->setLabel('sylius.ui.inventory') ; + $menu + ->addChild('channelPricings') + ->setAttribute('template', '@SyliusAdmin/ProductVariant/Tab/_channelPricings.html.twig') + ->setLabel('sylius.ui.product_variant.channel_pricings') + ; + $this->eventDispatcher->dispatch( new ProductVariantMenuBuilderEvent($this->factory, $menu, $options['product_variant']), self::EVENT_NAME diff --git a/src/Sylius/Bundle/AdminBundle/Resources/translations/messages.en.yml b/src/Sylius/Bundle/AdminBundle/Resources/translations/messages.en.yml index a8004e8d837f..79790e509ffe 100644 --- a/src/Sylius/Bundle/AdminBundle/Resources/translations/messages.en.yml +++ b/src/Sylius/Bundle/AdminBundle/Resources/translations/messages.en.yml @@ -47,6 +47,10 @@ sylius: ui: product: product_not_active_in_channel: The product is not yet activated in this channel. + product_variant: + channel_pricings: Channel Pricings + original_price_details: Original price - this is the price of the product variant It is displayed as crossed-out in the catalog. It is used as the base for current price calculations. If this value is not definded, Catalog Promotion logic will copy value from Price to Original Price + price_details: Price - this is the current price of the product variant displayed in the catalog. It can be modified explicitly by i.e. catalog promotions. gateway: no_sca_support_notice: The chosen payment gateway does not support SCA. pay_pal_express_checkout_deprecation_notice: > diff --git a/src/Sylius/Bundle/AdminBundle/Resources/views/ProductVariant/Tab/_channelPricings.html.twig b/src/Sylius/Bundle/AdminBundle/Resources/views/ProductVariant/Tab/_channelPricings.html.twig new file mode 100644 index 000000000000..e243a97e65d4 --- /dev/null +++ b/src/Sylius/Bundle/AdminBundle/Resources/views/ProductVariant/Tab/_channelPricings.html.twig @@ -0,0 +1,27 @@ +
+

{{ 'sylius.ui.product_variant.channel_pricings'|trans }}

+
+ {{ 'sylius.ui.price_details'|trans }} +
+ {{ 'sylius.ui.original_price_details'|trans }} +
+
+ {{ form_errors(form.channelPricings) }} + {% for channelCode, channelPricing in form.channelPricings %} +
+
+ {{ channelPricing.vars.label }} +
+ {% if channelCode not in product_variant.product.channels|map(channel => channel.code) %} +
+ {{ 'sylius.ui.product.product_not_active_in_channel'|trans }} +
+ {% endif %} + {{ form_row(channelPricing.price) }} + {{ form_row(channelPricing.originalPrice) }} +
+ {% endfor %} +
+ + {{ sylius_template_event(['sylius.admin.product_variant.' ~ action ~ '.tab_channel_pricings', 'sylius.admin.product_variant.channelPricings'], {'form': form}) }} +
diff --git a/src/Sylius/Bundle/AdminBundle/Resources/views/ProductVariant/Tab/_details.html.twig b/src/Sylius/Bundle/AdminBundle/Resources/views/ProductVariant/Tab/_details.html.twig index 6f6167c67ed6..c019c97757fa 100644 --- a/src/Sylius/Bundle/AdminBundle/Resources/views/ProductVariant/Tab/_details.html.twig +++ b/src/Sylius/Bundle/AdminBundle/Resources/views/ProductVariant/Tab/_details.html.twig @@ -9,13 +9,12 @@
{{ form_row(form.code) }} {{ form_row(form.enabled) }} +
+ +
{{ form_row(form.shippingCategory) }}
- {{form_label(form.channelPricings)}} - {% include "@SyliusAdmin/Product/_channel_pricing.html.twig" with { product: product_variant.product, variantForm: form } only %} -
-
{{ form_row(form.shippingRequired) }}