From 530188fbe731f32f05e28d807a51c0fbe83dc55a Mon Sep 17 00:00:00 2001 From: touffies Date: Fri, 22 Nov 2013 17:35:06 +0100 Subject: [PATCH 1/6] Add routing for Store Configuration --- core/lib/Thelia/Config/Resources/routing/admin.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/core/lib/Thelia/Config/Resources/routing/admin.xml b/core/lib/Thelia/Config/Resources/routing/admin.xml index ab7f11171..591e5c0e7 100755 --- a/core/lib/Thelia/Config/Resources/routing/admin.xml +++ b/core/lib/Thelia/Config/Resources/routing/admin.xml @@ -512,6 +512,17 @@ Thelia\Controller\Admin\ConfigController::deleteAction + + + + Thelia\Controller\Admin\ConfigStoreController::defaultAction + + + + Thelia\Controller\Admin\ConfigStoreController::saveAction + + + From 29ae2d26fe2bc5a829fe19ae4052ea44be78f831 Mon Sep 17 00:00:00 2001 From: touffies Date: Fri, 22 Nov 2013 17:37:44 +0100 Subject: [PATCH 2/6] Add a new admin page to manage the basic store configurations --- core/lib/Thelia/Config/Resources/form.xml | 1 + .../Admin/ConfigStoreController.php | 105 +++++++++++ .../Core/Security/Resource/AdminResources.php | 2 + core/lib/Thelia/Form/ConfigStoreForm.php | 121 +++++++++++++ .../backOffice/default/config-store.html | 170 ++++++++++++++++++ .../backOffice/default/configuration.html | 7 + 6 files changed, 406 insertions(+) create mode 100644 core/lib/Thelia/Controller/Admin/ConfigStoreController.php create mode 100644 core/lib/Thelia/Form/ConfigStoreForm.php create mode 100644 templates/backOffice/default/config-store.html diff --git a/core/lib/Thelia/Config/Resources/form.xml b/core/lib/Thelia/Config/Resources/form.xml index 3548a8016..cf9ccd489 100644 --- a/core/lib/Thelia/Config/Resources/form.xml +++ b/core/lib/Thelia/Config/Resources/form.xml @@ -118,6 +118,7 @@
+ diff --git a/core/lib/Thelia/Controller/Admin/ConfigStoreController.php b/core/lib/Thelia/Controller/Admin/ConfigStoreController.php new file mode 100644 index 000000000..1a9172ec1 --- /dev/null +++ b/core/lib/Thelia/Controller/Admin/ConfigStoreController.php @@ -0,0 +1,105 @@ +. */ +/* */ +/*************************************************************************************/ + +namespace Thelia\Controller\Admin; + + +use Thelia\Core\Security\Resource\AdminResources; +use Thelia\Core\Security\AccessManager; +use Thelia\Form\ConfigStoreForm; +use Thelia\Log\Tlog; +use Thelia\Model\ConfigQuery; +/** + * Class ConfigStoreController + * @package Thelia\Controller\Admin + * @author Christophe Laffont + */ +class ConfigStoreController extends BaseAdminController +{ + + protected function renderTemplate() + { + return $this->render('config-store'); + } + + public function defaultAction() + { + if (null !== $response = $this->checkAuth(AdminResources::STORE, array(), AccessManager::VIEW)) return $response; + + // Hydrate the store configuration form + $configStoreForm = new ConfigStoreForm($this->getRequest(), 'form', array( + 'store_name' => ConfigQuery::read("store_name"), + 'store_email' => ConfigQuery::read("store_email"), + 'store_business_id' => ConfigQuery::read("store_business_id"), + 'store_phone' => ConfigQuery::read("store_phone"), + 'store_fax' => ConfigQuery::read("store_fax"), + 'store_address1' => ConfigQuery::read("store_address1"), + 'store_address2' => ConfigQuery::read("store_address2"), + 'store_address3' => ConfigQuery::read("store_address3"), + 'store_zipcode' => ConfigQuery::read("store_zipcode"), + 'store_city' => ConfigQuery::read("store_city"), + 'store_country' => ConfigQuery::read("store_country") + )); + + $this->getParserContext()->addForm($configStoreForm); + + return $this->renderTemplate(); + } + + public function saveAction() + { + if (null !== $response = $this->checkAuth(AdminResources::STORE, array(), AccessManager::UPDATE)) return $response; + + $error_msg = false; + + $configStoreForm = new ConfigStoreForm($this->getRequest()); + + try { + $form = $this->validateForm($configStoreForm); + + $data = $form->getData(); + + // Update store + foreach($data as $name => $value) { + if(! in_array($name , array('success_url', 'error_message'))) + ConfigQuery::write($name, $value, false); + } + + $this->adminLogAppend(AdminResources::STORE, AccessManager::UPDATE, "Store configuration changed"); + + $this->redirectToRoute('admin.configuration.store.default'); + + } catch (\Exception $ex) { + $error_msg = $ex->getMessage(); + } + + $this->setupFormErrorContext( + $this->getTranslator()->trans("Store configuration failed."), + $error_msg, + $configStoreForm, + $ex + ); + + return $this->renderTemplate(); + } +} diff --git a/core/lib/Thelia/Core/Security/Resource/AdminResources.php b/core/lib/Thelia/Core/Security/Resource/AdminResources.php index e953b83aa..a3e834d9d 100644 --- a/core/lib/Thelia/Core/Security/Resource/AdminResources.php +++ b/core/lib/Thelia/Core/Security/Resource/AdminResources.php @@ -100,5 +100,7 @@ final class AdminResources const SYSTEM_LOG = "admin.configuration.system-log"; + const STORE = "admin.configuration.store"; + const TRANSLATIONS = "admin.configuration.translations"; } diff --git a/core/lib/Thelia/Form/ConfigStoreForm.php b/core/lib/Thelia/Form/ConfigStoreForm.php new file mode 100644 index 000000000..6f6c0f705 --- /dev/null +++ b/core/lib/Thelia/Form/ConfigStoreForm.php @@ -0,0 +1,121 @@ +. */ +/* */ +/*************************************************************************************/ +namespace Thelia\Form; + +use Symfony\Component\Validator\Constraints; +use Thelia\Model\ConfigQuery; +use Symfony\Component\Validator\ExecutionContextInterface; +use Thelia\Log\Tlog; +use Thelia\Core\Translation\Translator; + +class ConfigStoreForm extends BaseForm +{ + protected function buildForm() + { + $this->formBuilder + ->add("store_name", "text", array( + "label" => Translator::getInstance()->trans('Store name'), + "label_attr" => array( + "for" => "store_name" + ) + )) + ->add("store_email", "text", array( + "label" => Translator::getInstance()->trans('Store email address'), + "label_attr" => array( + "for" => "store_email" + ) + )) + ->add("store_business_id", "text", array( + "label" => Translator::getInstance()->trans('Business ID'), + "label_attr" => array( + "for" => "store_business_id" + ) + )) + ->add("store_phone", "text", array( + "label" => Translator::getInstance()->trans("Phone"), + "label_attr" => array( + "for" => "store_phone" + ) + )) + ->add("store_fax", "text", array( + "label" => Translator::getInstance()->trans("Fax"), + "label_attr" => array( + "for" => "store_fax" + ) + )) + ->add("store_address1", "text", array( + "constraints" => array( + new Constraints\NotBlank() + ), + "label_attr" => array( + "for" => "store_address1" + ), + "label" => Translator::getInstance()->trans("Street Address ") + )) + ->add("store_address2", "text", array( + "label" => Translator::getInstance()->trans("Address Line 2"), + "label_attr" => array( + "for" => "store_address2" + ) + )) + ->add("store_address3", "text", array( + "label" => Translator::getInstance()->trans("Address Line 3"), + "label_attr" => array( + "for" => "store_address3" + ) + )) + ->add("store_zipcode", "text", array( + "constraints" => array( + new Constraints\NotBlank() + ), + "label" => Translator::getInstance()->trans("Zip code"), + "label_attr" => array( + "for" => "store_zipcode" + ) + )) + ->add("store_city", "text", array( + "constraints" => array( + new Constraints\NotBlank() + ), + "label" => Translator::getInstance()->trans("City"), + "label_attr" => array( + "for" => "store_city" + ) + )) + ->add("store_country", "text", array( + "constraints" => array( + new Constraints\NotBlank() + ), + "label" => Translator::getInstance()->trans("Country"), + "label_attr" => array( + "for" => "store_country" + ) + )) + ; + } + + public function getName() + { + return "thelia_configuration_store"; + } +} diff --git a/templates/backOffice/default/config-store.html b/templates/backOffice/default/config-store.html new file mode 100644 index 000000000..fec18c8cc --- /dev/null +++ b/templates/backOffice/default/config-store.html @@ -0,0 +1,170 @@ +{extends file="admin-layout.tpl"} + +{block name="page-title"}{intl l='Store'}{/block} + +{block name="check-resource"}admin.configuration.store{/block} +{block name="check-access"}update{/block} + +{block name="main-content"} +
+ +
+ + + +
+
+
+ +
+ {intl l="Store configuration"} +
+
+ +
+
+
+ {form name='thelia.configuration.store'} + + {form_hidden_fields form=$form} + + {include + file = "includes/inner-form-toolbar.html" + hide_flags = true + + page_url = "{url path='/admin/configuration/store'}" + close_url = "{url path='/admin/configuration'}" + } +
+
+

{intl l='General'}

+ + {if $form_error} +
{$form_error_message}
+ {/if} + +
+ {form_field form=$form field='store_name'} +
+ + +
+ +
+
+ {/form_field} + + {form_field form=$form field='store_business_id'} +
+ + +
+ +
+
+ {/form_field} + + {form_field form=$form field='store_email'} +
+ + +
+ +
+
+ {/form_field} + + {form_field form=$form field='store_phone'} +
+ + +
+ +
+
+ {/form_field} + + {form_field form=$form field='store_fax'} +
+ + +
+ +
+
+ {/form_field} +
+
+ +

{intl l="Store address"}

+ + {form_field form=$form field='store_address1'} +
+ + +
+ {/form_field} + + {form_field form=$form field='store_address2'} +
+ +
+ {/form_field} + + {form_field form=$form field='store_address3'} +
+ +
+ {/form_field} + + {form_field form=$form field='store_zipcode'} +
+ + +
+ {/form_field} + + {form_field form=$form field='store_city'} +
+ + +
+ {/form_field} + + {form_field form=$form field='store_country'} +
+ + +
+ {/form_field} + + +
+
+ + {include + file = "includes/inner-form-toolbar.html" + hide_flags = true + + page_url = "{url path='/admin/configuration/store'}" + close_url = "{url path='/admin/configuration'}" + } + + + {/form} +
+
+
+
+
+
+
+{/block} diff --git a/templates/backOffice/default/configuration.html b/templates/backOffice/default/configuration.html index dec253917..debaaa6fb 100644 --- a/templates/backOffice/default/configuration.html +++ b/templates/backOffice/default/configuration.html @@ -116,6 +116,13 @@ {module_include location='system_configuration_top'} + {loop type="auth" name="pcc-store" role="ADMIN" resource="admin.configuration.store" access="VIEW"} + + {intl l='Store'} + + + {/loop} + {loop type="auth" name="pcc2" role="ADMIN" resource="admin.configuration.variable" access="VIEW"} {intl l='System variables'} From 85d9c112d3762e634b4c08880507631f026fe15d Mon Sep 17 00:00:00 2001 From: touffies Date: Fri, 22 Nov 2013 17:40:04 +0100 Subject: [PATCH 3/6] Replace company_name and contact_email by store_name & store_email --- core/lib/Thelia/Action/Order.php | 6 +++--- install/insert.sql | 8 ++++---- .../Front/Controller/ContactController.php | 2 +- templates/frontOffice/default/layout.tpl | 18 +++++++++--------- templates/pdf/default/delivery.html | 2 +- templates/pdf/default/invoice.html | 2 +- web/install/config.php | 4 ++-- web/install/end.php | 8 ++++---- 8 files changed, 25 insertions(+), 25 deletions(-) diff --git a/core/lib/Thelia/Action/Order.php b/core/lib/Thelia/Action/Order.php index 6eb66fdb3..78ebb94d6 100755 --- a/core/lib/Thelia/Action/Order.php +++ b/core/lib/Thelia/Action/Order.php @@ -288,8 +288,8 @@ class Order extends BaseAction implements EventSubscriberInterface */ public function sendOrderEmail(OrderEvent $event) { - $contact_email = ConfigQuery::read('contact_email'); - if($contact_email) { + $store_email = ConfigQuery::read('store_email'); + if($store_email) { $order = $event->getOrder(); $customer = $order->getCustomer(); @@ -311,7 +311,7 @@ class Order extends BaseAction implements EventSubscriberInterface $instance = \Swift_Message::newInstance($subject) ->addTo($customer->getEmail(), $customer->getFirstname()." ".$customer->getLastname()) - ->addFrom(ConfigQuery::read('contact_email'), ConfigQuery::read('company_name')) + ->addFrom($store_email, ConfigQuery::read('store_name')) ; $instance ->setBody($htmlMessage, 'text/html') diff --git a/install/insert.sql b/install/insert.sql index 83218aa68..77e19ad40 100755 --- a/install/insert.sql +++ b/install/insert.sql @@ -30,8 +30,8 @@ INSERT INTO `config` (`name`, `value`, `secured`, `hidden`, `created_at`, `updat ('thelia_customer_remember_me_cookie_name', 'tcrmcn', 0, 0, NOW(), NOW()), ('thelia_customer_remember_me_cookie_expiration', 31536000, 0, 0, NOW(), NOW()), ('session_config.handlers', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeFileSessionHandler', 0, 0, NOW(), NOW()), -('company_name','', 0, 0, NOW(), NOW()), -('contact_email','', 0, 0, NOW(), NOW()), +('store_name','', 0, 1, NOW(), NOW()), +('store_email','', 0, 1, NOW(), NOW()), ('url_site','', 0, 0, NOW(), NOW()), ('one_domain_foreach_lang','0', 1, 1, NOW(), NOW()), ('pdf_invoice_file', 'invoice', 0, 0, NOW(), NOW()), @@ -1294,6 +1294,6 @@ INSERT INTO `message` (`id`, `name`, `secured`, `created_at`, `updated_at`, `ver (1, 'order_confirmation', NULL, NOW(), NOW(), 2, NOW(), NULL); INSERT INTO `message_i18n` (`id`, `locale`, `title`, `subject`, `text_message`, `html_message`) VALUES -(1, 'en_US', 'order confirmation', 'Commande : Commande : {$order_ref}', '{assign var="order_id" value=1}\r\n\r\n{loop name="order.invoice" type="order" id=$order_id customer="*"}\r\n {loop name="currency.order" type="currency" id=$CURRENCY}\r\n {assign "orderCurrency" $CODE}\r\n {/loop}\r\n{loop type="order_address" name="delivery_address" id=$INVOICE_ADDRESS}\r\n{loop type="title" name="order-invoice-address-title" id=$TITLE}{$LONG}{/loop}{$FIRSTNAME} {$LASTNAME}\\r\\n\r\n{$ADDRESS1} {$ADDRESS2} {$ADDRESS3}\\r\\n\r\n{$ZIPCODE} {$CITY}\\r\\n\r\n{loop type="country" name="country_delivery" id=$COUNTRY}{$TITLE}{/loop}\\r\\n\r\n{/loop}\r\nConfirmation de commande {$REF} du {format_date date=$INVOICE_DATE}\\r\\n\\r\\n\r\nLes articles commandés:\\r\\n\r\n{loop type="order_product" name="order-products" order=$ID}\r\n{if $WAS_IN_PROMO == 1}\r\n {assign "realPrice" $PROMO_PRICE}\r\n {assign "realTax" $PROMO_PRICE_TAX}\r\n {assign "realTaxedPrice" $TAXED_PROMO_PRICE}\r\n{else}\r\n {assign "realPrice" $PRICE}\r\n {assign "realTax" $PRICE_TAX}\r\n {assign "realTaxedPrice" $TAXED_PRICE}\r\n{/if}\r\n \\r\\n\r\n Article : {$TITLE}\r\n{ifloop rel="combinations"}\r\n {loop type="order_product_attribute_combination" name="combinations" order_product=$ID}\r\n {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}\\r\\n\r\n{/loop}\r\n{/ifloop}\\r\\n\r\n Quantité : {$QUANTITY}\\r\\n\r\n Prix unitaire TTC : {$realTaxedPrice} {$orderCurrency}\\r\\n\r\n{/loop}\r\n\\r\\n-----------------------------------------\\r\\n\r\nMontant total TTC : {$TOTAL_TAXED_AMOUNT - $POSTAGE} {$orderCurrency} \\r\\n\r\nFrais de port TTC : {$POSTAGE} {$orderCurrency} \\r\\n\r\nSomme totale: {$TOTAL_TAXED_AMOUNT} {$orderCurrency} \\r\\n\r\n==================================\\r\\n\\r\\n\r\nVotre facture est disponible dans la rubrique mon compte sur {config key="url_site"}\r\n{/loop}', '{loop name="order.invoice" type="order" id=$order_id customer="*"}\r\n {loop name="currency.order" type="currency" id=$CURRENCY}\r\n {assign "orderCurrency" $SYMBOL}\r\n {/loop}\r\n{loop type="customer" name="customer.invoice" id=$CUSTOMER current="0"}\r\n {assign var="customer_ref" value=$REF}\r\n{/loop}\r\n\r\n\r\n\r\n \r\n courriel de confirmation de commande de {config key="url_site"} \r\n {literal}\r\n \r\n {/literal}\r\n\r\n\r\n
\r\n

{config key="company_name"}

\r\n

Confirmation de commande

\r\n

N° {$REF} du {format_date date=$INVOICE_DATE output="date"}

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {loop type="order_product" name="order-products" order=$ID}\r\n {if $WAS_IN_PROMO == 1}\r\n {assign "realPrice" $PROMO_PRICE}\r\n {assign "realTax" $PROMO_PRICE_TAX}\r\n {assign "realTaxedPrice" $TAXED_PROMO_PRICE}\r\n {else}\r\n {assign "realPrice" $PRICE}\r\n {assign "realTax" $PRICE_TAX}\r\n {assign "realTaxedPrice" $TAXED_PRICE}\r\n {/if}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/loop}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
RéférenceDésignationP.U. €Qté
{$REF}{$TITLE}\r\n {ifloop rel="combinations"}\r\n {loop type="order_product_attribute_combination" name="combinations" order_product=$ID}\r\n {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}
\r\n {/loop}\r\n {/ifloop}\r\n
{$orderCurrency} {$realTaxedPrice}{$QUANTITY}
 
Montant total avant remise €{$orderCurrency} {$TOTAL_TAXED_AMOUNT - $POSTAGE}
Port €{$orderCurrency} {$POSTAGE}
Montant total de la commande €{$orderCurrency} {$TOTAL_TAXED_AMOUNT}
\r\n
\r\n

LIVRAISON : {loop name="delivery-module" type="module" id=$DELIVERY_MODULE}{$TITLE}{/loop}

\r\n {loop type="order_address" name="delivery_address" id=$INVOICE_ADDRESS}\r\n

N° de client : {$customer_ref}

\r\n

Nom :\r\n {loop type="title" name="order-invoice-address-title" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}

\r\n

N° et rue :\r\n {$ADDRESS1}

\r\n

Complément : {$ADDRESS2}\r\n {$ADDRESS3}

\r\n

Code postal : {$ZIPCODE}

\r\n

Ville : {$CITY}

\r\n

Pays : {loop type="country" name="country_delivery" id=$COUNTRY}{$TITLE}{/loop}

\r\n
\r\n {/loop}\r\n
\r\n

FACTURATION : paiement par {loop name="payment-module" type="module" id=$PAYMENT_MODULE}{$TITLE}{/loop}

\r\n {loop type="order_address" name="delivery_address" id=$DELIVERY_ADDRESS}\r\n

N° de client : {$customer_ref}

\r\n

Nom :\r\n {loop type="title" name="order-invoice-address-title" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}

\r\n

N° et rue :\r\n {$ADDRESS1}

\r\n

Complément : {$ADDRESS2}\r\n {$ADDRESS3}

\r\n

Code postal : {$ZIPCODE}

\r\n

Ville : {$CITY}

\r\n

Pays : {loop type="country" name="country_delivery" id=$COUNTRY}{$TITLE}{/loop}

\r\n
\r\n {/loop}\r\n

Le suivi de votre commande est disponible dans la rubrique mon compte sur {config key="url_site"}

\r\n
\r\n\r\n\r\n{/loop}'), -(1, 'fr_FR', 'order confirmation', 'Commande : {$order_ref}', '{assign var="order_id" value=1}\r\n\r\n{loop name="order.invoice" type="order" id=$order_id customer="*"}\r\n {loop name="currency.order" type="currency" id=$CURRENCY}\r\n {assign "orderCurrency" $CODE}\r\n {/loop}\r\n{loop type="order_address" name="delivery_address" id=$INVOICE_ADDRESS}\r\n{loop type="title" name="order-invoice-address-title" id=$TITLE}{$LONG}{/loop}{$FIRSTNAME} {$LASTNAME}\\r\\n\r\n{$ADDRESS1} {$ADDRESS2} {$ADDRESS3}\\r\\n\r\n{$ZIPCODE} {$CITY}\\r\\n\r\n{loop type="country" name="country_delivery" id=$COUNTRY}{$TITLE}{/loop}\\r\\n\r\n{/loop}\r\nConfirmation de commande {$REF} du {format_date date=$INVOICE_DATE}\\r\\n\\r\\n\r\nLes articles commandés:\\r\\n\r\n{loop type="order_product" name="order-products" order=$ID}\r\n{if $WAS_IN_PROMO == 1}\r\n {assign "realPrice" $PROMO_PRICE}\r\n {assign "realTax" $PROMO_PRICE_TAX}\r\n {assign "realTaxedPrice" $TAXED_PROMO_PRICE}\r\n{else}\r\n {assign "realPrice" $PRICE}\r\n {assign "realTax" $PRICE_TAX}\r\n {assign "realTaxedPrice" $TAXED_PRICE}\r\n{/if}\r\n \\r\\n\r\n Article : {$TITLE}\r\n{ifloop rel="combinations"}\r\n {loop type="order_product_attribute_combination" name="combinations" order_product=$ID}\r\n {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}\\r\\n\r\n{/loop}\r\n{/ifloop}\\r\\n\r\n Quantité : {$QUANTITY}\\r\\n\r\n Prix unitaire TTC : {$realTaxedPrice} {$orderCurrency}\\r\\n\r\n{/loop}\r\n\\r\\n-----------------------------------------\\r\\n\r\nMontant total TTC : {$TOTAL_TAXED_AMOUNT - $POSTAGE} {$orderCurrency} \\r\\n\r\nFrais de port TTC : {$POSTAGE} {$orderCurrency} \\r\\n\r\nSomme totale: {$TOTAL_TAXED_AMOUNT} {$orderCurrency} \\r\\n\r\n==================================\\r\\n\\r\\n\r\nVotre facture est disponible dans la rubrique mon compte sur {config key="url_site"}\r\n{/loop}', '{loop name="order.invoice" type="order" id=$order_id customer="*"}\r\n {loop name="currency.order" type="currency" id=$CURRENCY}\r\n {assign "orderCurrency" $SYMBOL}\r\n {/loop}\r\n{loop type="customer" name="customer.invoice" id=$CUSTOMER current="0"}\r\n {assign var="customer_ref" value=$REF}\r\n{/loop}\r\n\r\n\r\n\r\n \r\n courriel de confirmation de commande de {config key="url_site"} \r\n {literal}\r\n \r\n {/literal}\r\n\r\n\r\n
\r\n

{config key="company_name"}

\r\n

Confirmation de commande

\r\n

N° {$REF} du {format_date date=$INVOICE_DATE output="date"}

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {loop type="order_product" name="order-products" order=$ID}\r\n {if $WAS_IN_PROMO == 1}\r\n {assign "realPrice" $PROMO_PRICE}\r\n {assign "realTax" $PROMO_PRICE_TAX}\r\n {assign "realTaxedPrice" $TAXED_PROMO_PRICE}\r\n {else}\r\n {assign "realPrice" $PRICE}\r\n {assign "realTax" $PRICE_TAX}\r\n {assign "realTaxedPrice" $TAXED_PRICE}\r\n {/if}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/loop}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
RéférenceDésignationP.U. €Qté
{$REF}{$TITLE}\r\n {ifloop rel="combinations"}\r\n {loop type="order_product_attribute_combination" name="combinations" order_product=$ID}\r\n {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}
\r\n {/loop}\r\n {/ifloop}\r\n
{$orderCurrency} {$realTaxedPrice}{$QUANTITY}
 
Montant total avant remise €{$orderCurrency} {$TOTAL_TAXED_AMOUNT - $POSTAGE}
Port €{$orderCurrency} {$POSTAGE}
Montant total de la commande €{$orderCurrency} {$TOTAL_TAXED_AMOUNT}
\r\n
\r\n

LIVRAISON : {loop name="delivery-module" type="module" id=$DELIVERY_MODULE}{$TITLE}{/loop}

\r\n {loop type="order_address" name="delivery_address" id=$INVOICE_ADDRESS}\r\n

N° de client : {$customer_ref}

\r\n

Nom :\r\n {loop type="title" name="order-invoice-address-title" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}

\r\n

N° et rue :\r\n {$ADDRESS1}

\r\n

Complément : {$ADDRESS2}\r\n {$ADDRESS3}

\r\n

Code postal : {$ZIPCODE}

\r\n

Ville : {$CITY}

\r\n

Pays : {loop type="country" name="country_delivery" id=$COUNTRY}{$TITLE}{/loop}

\r\n
\r\n {/loop}\r\n
\r\n

FACTURATION : paiement par {loop name="payment-module" type="module" id=$PAYMENT_MODULE}{$TITLE}{/loop}

\r\n {loop type="order_address" name="delivery_address" id=$DELIVERY_ADDRESS}\r\n

N° de client : {$customer_ref}

\r\n

Nom :\r\n {loop type="title" name="order-invoice-address-title" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}

\r\n

N° et rue :\r\n {$ADDRESS1}

\r\n

Complément : {$ADDRESS2}\r\n {$ADDRESS3}

\r\n

Code postal : {$ZIPCODE}

\r\n

Ville : {$CITY}

\r\n

Pays : {loop type="country" name="country_delivery" id=$COUNTRY}{$TITLE}{/loop}

\r\n
\r\n {/loop}\r\n

Le suivi de votre commande est disponible dans la rubrique mon compte sur {config key="url_site"}

\r\n
\r\n\r\n\r\n{/loop}'); +(1, 'en_US', 'order confirmation', 'Commande : Commande : {$order_ref}', '{assign var="order_id" value=1}\r\n\r\n{loop name="order.invoice" type="order" id=$order_id customer="*"}\r\n {loop name="currency.order" type="currency" id=$CURRENCY}\r\n {assign "orderCurrency" $CODE}\r\n {/loop}\r\n{loop type="order_address" name="delivery_address" id=$INVOICE_ADDRESS}\r\n{loop type="title" name="order-invoice-address-title" id=$TITLE}{$LONG}{/loop}{$FIRSTNAME} {$LASTNAME}\\r\\n\r\n{$ADDRESS1} {$ADDRESS2} {$ADDRESS3}\\r\\n\r\n{$ZIPCODE} {$CITY}\\r\\n\r\n{loop type="country" name="country_delivery" id=$COUNTRY}{$TITLE}{/loop}\\r\\n\r\n{/loop}\r\nConfirmation de commande {$REF} du {format_date date=$INVOICE_DATE}\\r\\n\\r\\n\r\nLes articles commandés:\\r\\n\r\n{loop type="order_product" name="order-products" order=$ID}\r\n{if $WAS_IN_PROMO == 1}\r\n {assign "realPrice" $PROMO_PRICE}\r\n {assign "realTax" $PROMO_PRICE_TAX}\r\n {assign "realTaxedPrice" $TAXED_PROMO_PRICE}\r\n{else}\r\n {assign "realPrice" $PRICE}\r\n {assign "realTax" $PRICE_TAX}\r\n {assign "realTaxedPrice" $TAXED_PRICE}\r\n{/if}\r\n \\r\\n\r\n Article : {$TITLE}\r\n{ifloop rel="combinations"}\r\n {loop type="order_product_attribute_combination" name="combinations" order_product=$ID}\r\n {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}\\r\\n\r\n{/loop}\r\n{/ifloop}\\r\\n\r\n Quantité : {$QUANTITY}\\r\\n\r\n Prix unitaire TTC : {$realTaxedPrice} {$orderCurrency}\\r\\n\r\n{/loop}\r\n\\r\\n-----------------------------------------\\r\\n\r\nMontant total TTC : {$TOTAL_TAXED_AMOUNT - $POSTAGE} {$orderCurrency} \\r\\n\r\nFrais de port TTC : {$POSTAGE} {$orderCurrency} \\r\\n\r\nSomme totale: {$TOTAL_TAXED_AMOUNT} {$orderCurrency} \\r\\n\r\n==================================\\r\\n\\r\\n\r\nVotre facture est disponible dans la rubrique mon compte sur {config key="url_site"}\r\n{/loop}', '{loop name="order.invoice" type="order" id=$order_id customer="*"}\r\n {loop name="currency.order" type="currency" id=$CURRENCY}\r\n {assign "orderCurrency" $SYMBOL}\r\n {/loop}\r\n{loop type="customer" name="customer.invoice" id=$CUSTOMER current="0"}\r\n {assign var="customer_ref" value=$REF}\r\n{/loop}\r\n\r\n\r\n\r\n \r\n courriel de confirmation de commande de {config key="url_site"} \r\n {literal}\r\n \r\n {/literal}\r\n\r\n\r\n
\r\n

{config key="store_name"}

\r\n

Confirmation de commande

\r\n

N° {$REF} du {format_date date=$INVOICE_DATE output="date"}

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {loop type="order_product" name="order-products" order=$ID}\r\n {if $WAS_IN_PROMO == 1}\r\n {assign "realPrice" $PROMO_PRICE}\r\n {assign "realTax" $PROMO_PRICE_TAX}\r\n {assign "realTaxedPrice" $TAXED_PROMO_PRICE}\r\n {else}\r\n {assign "realPrice" $PRICE}\r\n {assign "realTax" $PRICE_TAX}\r\n {assign "realTaxedPrice" $TAXED_PRICE}\r\n {/if}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/loop}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
RéférenceDésignationP.U. €Qté
{$REF}{$TITLE}\r\n {ifloop rel="combinations"}\r\n {loop type="order_product_attribute_combination" name="combinations" order_product=$ID}\r\n {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}
\r\n {/loop}\r\n {/ifloop}\r\n
{$orderCurrency} {$realTaxedPrice}{$QUANTITY}
 
Montant total avant remise €{$orderCurrency} {$TOTAL_TAXED_AMOUNT - $POSTAGE}
Port €{$orderCurrency} {$POSTAGE}
Montant total de la commande €{$orderCurrency} {$TOTAL_TAXED_AMOUNT}
\r\n
\r\n

LIVRAISON : {loop name="delivery-module" type="module" id=$DELIVERY_MODULE}{$TITLE}{/loop}

\r\n {loop type="order_address" name="delivery_address" id=$INVOICE_ADDRESS}\r\n

N° de client : {$customer_ref}

\r\n

Nom :\r\n {loop type="title" name="order-invoice-address-title" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}

\r\n

N° et rue :\r\n {$ADDRESS1}

\r\n

Complément : {$ADDRESS2}\r\n {$ADDRESS3}

\r\n

Code postal : {$ZIPCODE}

\r\n

Ville : {$CITY}

\r\n

Pays : {loop type="country" name="country_delivery" id=$COUNTRY}{$TITLE}{/loop}

\r\n
\r\n {/loop}\r\n
\r\n

FACTURATION : paiement par {loop name="payment-module" type="module" id=$PAYMENT_MODULE}{$TITLE}{/loop}

\r\n {loop type="order_address" name="delivery_address" id=$DELIVERY_ADDRESS}\r\n

N° de client : {$customer_ref}

\r\n

Nom :\r\n {loop type="title" name="order-invoice-address-title" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}

\r\n

N° et rue :\r\n {$ADDRESS1}

\r\n

Complément : {$ADDRESS2}\r\n {$ADDRESS3}

\r\n

Code postal : {$ZIPCODE}

\r\n

Ville : {$CITY}

\r\n

Pays : {loop type="country" name="country_delivery" id=$COUNTRY}{$TITLE}{/loop}

\r\n
\r\n {/loop}\r\n

Le suivi de votre commande est disponible dans la rubrique mon compte sur {config key="url_site"}

\r\n
\r\n\r\n\r\n{/loop}'), +(1, 'fr_FR', 'order confirmation', 'Commande : {$order_ref}', '{assign var="order_id" value=1}\r\n\r\n{loop name="order.invoice" type="order" id=$order_id customer="*"}\r\n {loop name="currency.order" type="currency" id=$CURRENCY}\r\n {assign "orderCurrency" $CODE}\r\n {/loop}\r\n{loop type="order_address" name="delivery_address" id=$INVOICE_ADDRESS}\r\n{loop type="title" name="order-invoice-address-title" id=$TITLE}{$LONG}{/loop}{$FIRSTNAME} {$LASTNAME}\\r\\n\r\n{$ADDRESS1} {$ADDRESS2} {$ADDRESS3}\\r\\n\r\n{$ZIPCODE} {$CITY}\\r\\n\r\n{loop type="country" name="country_delivery" id=$COUNTRY}{$TITLE}{/loop}\\r\\n\r\n{/loop}\r\nConfirmation de commande {$REF} du {format_date date=$INVOICE_DATE}\\r\\n\\r\\n\r\nLes articles commandés:\\r\\n\r\n{loop type="order_product" name="order-products" order=$ID}\r\n{if $WAS_IN_PROMO == 1}\r\n {assign "realPrice" $PROMO_PRICE}\r\n {assign "realTax" $PROMO_PRICE_TAX}\r\n {assign "realTaxedPrice" $TAXED_PROMO_PRICE}\r\n{else}\r\n {assign "realPrice" $PRICE}\r\n {assign "realTax" $PRICE_TAX}\r\n {assign "realTaxedPrice" $TAXED_PRICE}\r\n{/if}\r\n \\r\\n\r\n Article : {$TITLE}\r\n{ifloop rel="combinations"}\r\n {loop type="order_product_attribute_combination" name="combinations" order_product=$ID}\r\n {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}\\r\\n\r\n{/loop}\r\n{/ifloop}\\r\\n\r\n Quantité : {$QUANTITY}\\r\\n\r\n Prix unitaire TTC : {$realTaxedPrice} {$orderCurrency}\\r\\n\r\n{/loop}\r\n\\r\\n-----------------------------------------\\r\\n\r\nMontant total TTC : {$TOTAL_TAXED_AMOUNT - $POSTAGE} {$orderCurrency} \\r\\n\r\nFrais de port TTC : {$POSTAGE} {$orderCurrency} \\r\\n\r\nSomme totale: {$TOTAL_TAXED_AMOUNT} {$orderCurrency} \\r\\n\r\n==================================\\r\\n\\r\\n\r\nVotre facture est disponible dans la rubrique mon compte sur {config key="url_site"}\r\n{/loop}', '{loop name="order.invoice" type="order" id=$order_id customer="*"}\r\n {loop name="currency.order" type="currency" id=$CURRENCY}\r\n {assign "orderCurrency" $SYMBOL}\r\n {/loop}\r\n{loop type="customer" name="customer.invoice" id=$CUSTOMER current="0"}\r\n {assign var="customer_ref" value=$REF}\r\n{/loop}\r\n\r\n\r\n\r\n \r\n courriel de confirmation de commande de {config key="url_site"} \r\n {literal}\r\n \r\n {/literal}\r\n\r\n\r\n
\r\n

{config key="store_name"}

\r\n

Confirmation de commande

\r\n

N° {$REF} du {format_date date=$INVOICE_DATE output="date"}

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {loop type="order_product" name="order-products" order=$ID}\r\n {if $WAS_IN_PROMO == 1}\r\n {assign "realPrice" $PROMO_PRICE}\r\n {assign "realTax" $PROMO_PRICE_TAX}\r\n {assign "realTaxedPrice" $TAXED_PROMO_PRICE}\r\n {else}\r\n {assign "realPrice" $PRICE}\r\n {assign "realTax" $PRICE_TAX}\r\n {assign "realTaxedPrice" $TAXED_PRICE}\r\n {/if}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/loop}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
RéférenceDésignationP.U. €Qté
{$REF}{$TITLE}\r\n {ifloop rel="combinations"}\r\n {loop type="order_product_attribute_combination" name="combinations" order_product=$ID}\r\n {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}
\r\n {/loop}\r\n {/ifloop}\r\n
{$orderCurrency} {$realTaxedPrice}{$QUANTITY}
 
Montant total avant remise €{$orderCurrency} {$TOTAL_TAXED_AMOUNT - $POSTAGE}
Port €{$orderCurrency} {$POSTAGE}
Montant total de la commande €{$orderCurrency} {$TOTAL_TAXED_AMOUNT}
\r\n
\r\n

LIVRAISON : {loop name="delivery-module" type="module" id=$DELIVERY_MODULE}{$TITLE}{/loop}

\r\n {loop type="order_address" name="delivery_address" id=$INVOICE_ADDRESS}\r\n

N° de client : {$customer_ref}

\r\n

Nom :\r\n {loop type="title" name="order-invoice-address-title" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}

\r\n

N° et rue :\r\n {$ADDRESS1}

\r\n

Complément : {$ADDRESS2}\r\n {$ADDRESS3}

\r\n

Code postal : {$ZIPCODE}

\r\n

Ville : {$CITY}

\r\n

Pays : {loop type="country" name="country_delivery" id=$COUNTRY}{$TITLE}{/loop}

\r\n
\r\n {/loop}\r\n
\r\n

FACTURATION : paiement par {loop name="payment-module" type="module" id=$PAYMENT_MODULE}{$TITLE}{/loop}

\r\n {loop type="order_address" name="delivery_address" id=$DELIVERY_ADDRESS}\r\n

N° de client : {$customer_ref}

\r\n

Nom :\r\n {loop type="title" name="order-invoice-address-title" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}

\r\n

N° et rue :\r\n {$ADDRESS1}

\r\n

Complément : {$ADDRESS2}\r\n {$ADDRESS3}

\r\n

Code postal : {$ZIPCODE}

\r\n

Ville : {$CITY}

\r\n

Pays : {loop type="country" name="country_delivery" id=$COUNTRY}{$TITLE}{/loop}

\r\n
\r\n {/loop}\r\n

Le suivi de votre commande est disponible dans la rubrique mon compte sur {config key="url_site"}

\r\n
\r\n\r\n\r\n{/loop}'); diff --git a/local/modules/Front/Controller/ContactController.php b/local/modules/Front/Controller/ContactController.php index 567528836..2ff4452d7 100644 --- a/local/modules/Front/Controller/ContactController.php +++ b/local/modules/Front/Controller/ContactController.php @@ -47,7 +47,7 @@ class ContactController extends BaseFrontController $message = \Swift_Message::newInstance($form->get('subject')->getData()) ->addFrom($form->get('email')->getData(), $form->get('name')->getData()) - ->addTo(ConfigQuery::read('contact_email'), ConfigQuery::read('company_name')) + ->addTo(ConfigQuery::read('store_email'), ConfigQuery::read('store_name')) ->setBody($form->get('message')->getData()) ; diff --git a/templates/frontOffice/default/layout.tpl b/templates/frontOffice/default/layout.tpl index d8433e848..00d11f545 100644 --- a/templates/frontOffice/default/layout.tpl +++ b/templates/frontOffice/default/layout.tpl @@ -1,9 +1,9 @@ {* Declare assets directory, relative to template base directory *} {declare_assets directory='assets'} {block name="no-return-functions"}{/block} -{assign var="company_name" value="{config key="company_name"}"} -{if not $company_name} - {assign var="company_name" value="{intl l='Thelia V2'}"} +{assign var="store_name" value="{config key="store_name"}"} +{if not $store_name} + {assign var="store_name" value="{intl l='Thelia V2'}"} {/if} @@ -146,8 +146,8 @@ GNU General Public License : http://www.gnu.org/licenses/