<?xml version="1.0" encoding="UTF-8" ?>

<routes xmlns="http://symfony.com/schema/routing"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">

    <!-- Route to the administration login page -->
    <route id="admin.login" path="/admin/login">
        <default key="_controller">Thelia\Controller\Admin\SessionController::showLoginAction</default>
        <default key="not-logged">1</default>
    </route>

    <route id="admin.lost-password" path="/admin/lost-password">
        <default key="_controller">Thelia\Controller\Admin\SessionController::showLostPasswordAction</default>
        <default key="not-logged">1</default>
    </route>

    <route id="admin.password-create" path="/admin/password-create-request" methods="POST">
        <default key="_controller">Thelia\Controller\Admin\SessionController::passwordCreateRequestAction</default>
        <default key="not-logged">1</default>
    </route>

    <route id="admin.password-create-success" path="/admin/password-create-request-success">
        <default key="_controller">Thelia\Controller\Admin\SessionController::passwordCreateRequestSuccessAction</default>
        <default key="not-logged">1</default>
    </route>


    <route id="admin.password-create-form" path="/admin/password-create/{token}">
        <default key="_controller">Thelia\Controller\Admin\SessionController::displayCreateFormAction</default>
        <requirement key="token">.*</requirement>
        <default key="not-logged">1</default>
    </route>

    <route id="admin.password-renewed" path="/admin/password-created">
        <default key="_controller">Thelia\Controller\Admin\SessionController::passwordCreatedAction</default>
        <default key="not-logged">1</default>
    </route>

    <route id="admin.password-renewed-success" path="/admin/password-create-success">
        <default key="_controller">Thelia\Controller\Admin\SessionController::passwordCreatedSuccessAction</default>
        <default key="not-logged">1</default>
    </route>

    <route id="admin.set-email-address" path="/admin/set-email-address">
        <default key="_controller">Thelia\Controller\Admin\AdministratorController::setEmailAction</default>
    </route>

    <!-- Route to the administration logout page -->
    <route id="admin.logout" path="/admin/logout">
        <default key="_controller">Thelia\Controller\Admin\SessionController::checkLogoutAction</default>
    </route>

    <!-- Route to the login check controller -->
    <route id="admin.checklogin" path="/admin/checklogin">
        <default key="_controller">Thelia\Controller\Admin\SessionController::checkLoginAction</default>
        <default key="not-logged">1</default>
    </route>

    <!-- Route to the catalog controller -->

    <route id="admin.catalog" path="/admin/catalog">
        <default key="_controller">Thelia\Controller\Admin\CategoryController::defaultAction</default>
    </route>

    <!-- Route to the file controller -->

    <route id="admin.image.save-ajax" path="/admin/image/type/{parentType}/{parentId}/save-ajax">
        <default key="_controller">Thelia\Controller\Admin\FileController::saveImageAjaxAction</default>
        <requirement key="parentType">.*</requirement>
        <requirement key="parentId">\d+</requirement>
    </route>
    <route id="admin.image.form-ajax" path="/admin/image/type/{parentType}/{parentId}/form-ajax">
        <default key="_controller">Thelia\Controller\Admin\FileController::getImageFormAjaxAction</default>
        <requirement key="parentType">.*</requirement>
        <requirement key="parentId">\d+</requirement>
    </route>
    <route id="admin.image.list-ajax" path="/admin/image/type/{parentType}/{parentId}/list-ajax">
        <default key="_controller">Thelia\Controller\Admin\FileController::getImageListAjaxAction</default>
        <requirement key="parentType">.*</requirement>
        <requirement key="parentId">\d+</requirement>
    </route>
    <route id="admin.image.update-position" path="/admin/image/type/{parentType}/{parentId}/update-position">
        <default key="_controller">Thelia\Controller\Admin\FileController::updateImagePositionAction</default>
        <requirement key="parentType">.*</requirement>
        <requirement key="parentId">\d+</requirement>
    </route>
    <route id="admin.image.update-title" path="/admin/image/type/{parentType}/{imageId}/update-title" methods="post">
        <default key="_controller">Thelia\Controller\Admin\FileController::updateImageTitleAction</default>
        <requirement key="parentType">.*</requirement>
        <requirement key="imageId">\d+</requirement>
    </route>
    <route id="admin.image.toggle.process" path="/admin/image/type/{parentType}/{documentId}/toggle">
        <default key="_controller">Thelia\Controller\Admin\FileController::toggleVisibilityImageAction</default>
        <requirement key="parentType">.*</requirement>
        <requirement key="documentId">\d+</requirement>
    </route>
    <route id="admin.image.update.view" path="/admin/image/type/{parentType}/{imageId}/update" methods="get">
        <default key="_controller">Thelia\Controller\Admin\FileController::viewImageAction</default>
        <requirement key="parentType">.*</requirement>
        <requirement key="imageId">\d+</requirement>
    </route>
    <route id="admin.image.update.process" path="/admin/image/type/{parentType}/{imageId}/update" methods="post">
        <default key="_controller">Thelia\Controller\Admin\FileController::updateImageAction</default>
        <requirement key="parentType">.*</requirement>
        <requirement key="imageId">\d+</requirement>
    </route>
    <route id="admin.image.delete" path="/admin/image/type/{parentType}/delete/{imageId}">
        <default key="_controller">Thelia\Controller\Admin\FileController::deleteImageAction</default>
        <requirement key="parentType">.*</requirement>
        <requirement key="imageId">\d+</requirement>
    </route>

    <route id="admin.document.save-ajax" path="/admin/document/type/{parentType}/{parentId}/save-ajax">
        <default key="_controller">Thelia\Controller\Admin\FileController::saveDocumentAjaxAction</default>
        <requirement key="parentType">.*</requirement>
        <requirement key="parentId">\d+</requirement>
    </route>
    <route id="admin.document.form-ajax" path="/admin/document/type/{parentType}/{parentId}/form-ajax">
        <default key="_controller">Thelia\Controller\Admin\FileController::getDocumentFormAjaxAction</default>
        <requirement key="parentType">.*</requirement>
        <requirement key="parentId">\d+</requirement>
    </route>
    <route id="admin.document.list-ajax" path="/admin/document/type/{parentType}/{parentId}/list-ajax">
        <default key="_controller">Thelia\Controller\Admin\FileController::getDocumentListAjaxAction</default>
        <requirement key="parentType">.*</requirement>
        <requirement key="parentId">\d+</requirement>
    </route>
    <route id="admin.document.update-position" path="/admin/document/type/{parentType}/{parentId}/update-position">
        <default key="_controller">Thelia\Controller\Admin\FileController::updateDocumentPositionAction</default>
        <requirement key="parentType">.*</requirement>
        <requirement key="parentId">\d+</requirement>
    </route>
    <route id="admin.document.toggle.process" path="/admin/document/type/{parentType}/{documentId}/toggle">
        <default key="_controller">Thelia\Controller\Admin\FileController::toggleVisibilityDocumentAction</default>
        <requirement key="parentType">.*</requirement>
        <requirement key="documentId">\d+</requirement>
    </route>
    <route id="admin.document.update.view" path="/admin/document/type/{parentType}/{documentId}/update" methods="get">
        <default key="_controller">Thelia\Controller\Admin\FileController::viewDocumentAction</default>
        <requirement key="parentType">.*</requirement>
        <requirement key="documentId">\d+</requirement>
    </route>
    <route id="admin.document.update.process" path="/admin/document/type/{parentType}/{documentId}/update" methods="post">
        <default key="_controller">Thelia\Controller\Admin\FileController::updateDocumentAction</default>
        <requirement key="parentType">.*</requirement>
        <requirement key="documentId">\d+</requirement>
    </route>
    <route id="admin.document.delete" path="/admin/document/type/{parentType}/delete/{documentId}">
        <default key="_controller">Thelia\Controller\Admin\FileController::deleteDocumentAction</default>
        <requirement key="parentType">.*</requirement>
        <requirement key="documentId">\d+</requirement>
    </route>

    <!-- Customer rule management -->

    <route id="admin.customers" path="/admin/customers">
        <default key="_controller">Thelia\Controller\Admin\CustomerController::defaultAction</default>
    </route>

    <route id="admin.customer.update.view" path="/admin/customer/update">
        <default key="_controller">Thelia\Controller\Admin\CustomerController::updateAction</default>
    </route>

    <route id="admin.customer.update.process" path="/admin/customer/save">
        <default key="_controller">Thelia\Controller\Admin\CustomerController::processUpdateAction</default>
    </route>

    <route id="admin.customer.delete" path="/admin/customer/delete">
        <default key="_controller">Thelia\Controller\Admin\CustomerController::deleteAction</default>
    </route>

    <route id="admin.customer.create" path="/admin/customer/create">
        <default key="_controller">Thelia\Controller\Admin\CustomerController::createAction</default>
    </route>

    <!-- end Customer rule management -->

    <!-- address management -->

    <route id="admin.address.delete" path="/admin/address/delete" methods="post">
        <default key="_controller">Thelia\Controller\Admin\AddressController::deleteAction</default>
    </route>

    <route id="admin.address.makeItDefault" path="/admin/address/use" methods="post">
        <default key="_controller">Thelia\Controller\Admin\AddressController::useAddressAction</default>
    </route>

    <route id="admin.address.create" path="/admin/address/create" methods="post">
        <default key="_controller">Thelia\Controller\Admin\AddressController::createAction</default>
    </route>

    <route id="admin.address.update.view" path="/admin/address/update">
        <default key="_controller">Thelia\Controller\Admin\AddressController::updateAction</default>
    </route>

    <route id="admin.address.save" path="/admin/address/save">
        <default key="_controller">Thelia\Controller\Admin\AddressController::processUpdateAction</default>
    </route>

    <!-- end address management -->

    <!-- order management -->

    <route id="admin.order.list" path="/admin/orders">
        <default key="_controller">Thelia\Controller\Admin\OrderController::indexAction</default>
    </route>

    <route id="admin.order.update.view" path="/admin/order/update/{order_id}">
        <default key="_controller">Thelia\Controller\Admin\OrderController::viewAction</default>
        <requirement key="order_id">\d+</requirement>
    </route>

    <route id="admin.order.list.update.status" path="/admin/order/update/status">
        <default key="_controller">Thelia\Controller\Admin\OrderController::updateStatus</default>
    </route>

    <route id="admin.order.update.status" path="/admin/order/update/{order_id}/status">
        <default key="_controller">Thelia\Controller\Admin\OrderController::updateStatus</default>
    </route>

    <route id="admin.order.update.deliveryRef" path="/admin/order/update/{order_id}/delivery-ref">
        <default key="_controller">Thelia\Controller\Admin\OrderController::updateDeliveryRef</default>
    </route>

    <route id="admin.order.update.address" path="/admin/order/update/{order_id}/address">
        <default key="_controller">Thelia\Controller\Admin\OrderController::updateAddress</default>
    </route>

    <route id="admin.order.pdf.invoice" path="/admin/order/pdf/invoice/{order_id}/{browser}">
        <default key="_controller">Thelia\Controller\Admin\OrderController::generateInvoicePdf</default>
        <default key="browser">0</default>
        <requirement key="browser">[0|1]</requirement>
        <requirement key="order_id">\d+</requirement>
    </route>

    <route id="admin.order.pdf.delivery" path="/admin/order/pdf/delivery/{order_id}/{browser}">
        <default key="_controller">Thelia\Controller\Admin\OrderController::generateDeliveryPdf</default>
        <default key="browser">0</default>
        <requirement key="browser">[0|1]</requirement>
        <requirement key="order_id">\d+</requirement>
    </route>

    <!-- end order management -->

    <!-- order status management -->

    <route id="admin.order-status.default" path="/admin/configuration/order-status">
        <default key="_controller">Thelia\Controller\Admin\OrderStatusController::defaultAction</default>
    </route>

    <route id="admin.order-status.create" path="/admin/configuration/order-status/create">
        <default key="_controller">Thelia\Controller\Admin\OrderStatusController::createAction</default>
    </route>

    <route id="admin.order-status.update" path="/admin/configuration/order-status/update/{order_status_id}">
        <default key="_controller">Thelia\Controller\Admin\OrderStatusController::updateAction</default>
        <requirement key="order_status_id">\d+</requirement>
    </route>

    <route id="admin.order-status.save" path="/admin/configuration/order-status/save/{order_status_id}">
        <default key="_controller">Thelia\Controller\Admin\OrderStatusController::processUpdateAction</default>
        <requirement key="order_status_id">\d+</requirement>
    </route>

    <route id="admin.order-status.delete" path="/admin/configuration/order-status/delete">
        <default key="_controller">Thelia\Controller\Admin\OrderStatusController::deleteAction</default>
    </route>

    <route id="admin.order-status.update-position" path="/admin/configuration/order-status/update-position">
        <default key="_controller">Thelia\Controller\Admin\OrderStatusController::updatePositionAction</default>
    </route>

    <!-- end order status management -->

    <!-- Categories management -->

    <route id="admin.categories.default" path="/admin/categories">
        <default key="_controller">Thelia\Controller\Admin\CategoryController::defaultAction</default>
    </route>

    <route id="admin.categories.create" path="/admin/categories/create">
        <default key="_controller">Thelia\Controller\Admin\CategoryController::createAction</default>
    </route>

    <route id="admin.categories.update" path="/admin/categories/update">
        <default key="_controller">Thelia\Controller\Admin\CategoryController::updateAction</default>
    </route>

    <route id="admin.categories.save" path="/admin/categories/save">
        <default key="_controller">Thelia\Controller\Admin\CategoryController::processUpdateAction</default>
    </route>

    <route id="admin.categories.seo.save" path="/admin/categories/seo/save">
        <default key="_controller">Thelia\Controller\Admin\CategoryController::processUpdateSeoAction</default>
    </route>

    <route id="admin.categories.set-default" path="/admin/categories/toggle-online">
        <default key="_controller">Thelia\Controller\Admin\CategoryController::setToggleVisibilityAction</default>
    </route>

    <route id="admin.categories.delete" path="/admin/categories/delete">
        <default key="_controller">Thelia\Controller\Admin\CategoryController::deleteAction</default>
    </route>

    <route id="admin.categories.update-position" path="/admin/categories/update-position">
        <default key="_controller">Thelia\Controller\Admin\CategoryController::updatePositionAction</default>
    </route>

    <route id="admin.categories.related-content.add" path="/admin/categories/related-content/add">
        <default key="_controller">Thelia\Controller\Admin\CategoryController::addRelatedContentAction</default>
    </route>

    <route id="admin.categories.related-picture.add" path="/admin/categories/related-picture/add">
        <default key="_controller">Thelia\Controller\Admin\CategoryController::addRelatedPictureAction</default>
    </route>

    <route id="admin.categories.related-content.delete" path="/admin/categories/related-content/delete">
        <default key="_controller">Thelia\Controller\Admin\CategoryController::deleteRelatedContentAction</default>
    </route>

    <route id="admin.category.available-related-content" path="/admin/category/{categoryId}/available-related-content/{folderId}.{_format}" methods="GET">
        <default key="_controller">Thelia\Controller\Admin\CategoryController::getAvailableRelatedContentAction</default>
        <requirement key="_format">xml|json</requirement>
    </route>

    <!--  Product Management -->

    <route id="admin.products.default" path="/admin/products">
        <default key="_controller">Thelia\Controller\Admin\ProductController::defaultAction</default>
    </route>

    <route id="admin.products.create" path="/admin/products/create">
        <default key="_controller">Thelia\Controller\Admin\ProductController::createAction</default>
    </route>

    <route id="admin.products.clone" path="/admin/products/clone">
        <default key="_controller">Thelia\Controller\Admin\ProductController::cloneAction</default>
    </route>

    <route id="admin.products.update" path="/admin/products/update">
        <default key="_controller">Thelia\Controller\Admin\ProductController::updateAction</default>
    </route>

    <route id="admin.products.save" path="/admin/products/save">
        <default key="_controller">Thelia\Controller\Admin\ProductController::processUpdateAction</default>
    </route>

    <route id="admin.products.seo.save" path="/admin/products/seo/save">
        <default key="_controller">Thelia\Controller\Admin\ProductController::processUpdateSeoAction</default>
    </route>

    <route id="admin.products.set-default" path="/admin/products/toggle-online">
        <default key="_controller">Thelia\Controller\Admin\ProductController::setToggleVisibilityAction</default>
    </route>

    <route id="admin.products.delete" path="/admin/products/delete">
        <default key="_controller">Thelia\Controller\Admin\ProductController::deleteAction</default>
    </route>

    <route id="admin.products.update-position" path="/admin/products/update-position">
        <default key="_controller">Thelia\Controller\Admin\ProductController::updatePositionAction</default>
    </route>

    <!-- Product categories, content and accessories -->

    <route id="admin.products.related.tab" path="/admin/products/related/tab">
        <default key="_controller">Thelia\Controller\Admin\ProductController::loadRelatedAjaxTabAction</default>
    </route>

    <route id="admin.products.related.tab.categories.search" path="/admin/products/related/tab/categories/search">
        <default key="_controller">Thelia\Controller\Admin\ProductController::searchCategoryAction</default>
    </route>

    <route id="admin.products.related.tab.products.search" path="/admin/products/related/tab/products/search">
        <default key="_controller">Thelia\Controller\Admin\ProductController::searchProductAction</default>
    </route>

    <!-- categories -->

    <route id="admin.products.additional-category.add" path="/admin/products/category/add">
        <default key="_controller">Thelia\Controller\Admin\ProductController::addAdditionalCategoryAction</default>
    </route>

    <route id="admin.products.additional-category.delete" path="/admin/products/category/delete">
        <default key="_controller">Thelia\Controller\Admin\ProductController::deleteAdditionalCategoryAction</default>
    </route>

    <!--  content -->

    <route id="admin.products.related-content.add" path="/admin/products/content/add">
        <default key="_controller">Thelia\Controller\Admin\ProductController::addRelatedContentAction</default>
    </route>

    <route id="admin.products.related-content.delete" path="/admin/products/content/delete">
        <default key="_controller">Thelia\Controller\Admin\ProductController::deleteRelatedContentAction</default>
    </route>

    <route id="admin.product.available-related-content" path="/admin/product/{productId}/available-content/{folderId}.{_format}" methods="GET">
        <default key="_controller">Thelia\Controller\Admin\ProductController::getAvailableRelatedContentAction</default>
        <requirement key="_format">xml|json</requirement>
    </route>

    <route id="admin.product.update-content-position" path="/admin/product/update-content-position">
        <default key="_controller">Thelia\Controller\Admin\ProductController::updateContentPositionAction</default>
    </route>

    <route id="admin.product.calculate-price" path="/admin/product/calculate-price">
        <default key="_controller">Thelia\Controller\Admin\ProductController::priceCalculator</default>
    </route>

    <route id="admin.product.calculate-raw-price" path="/admin/product/calculate-raw-price">
        <default key="_controller">Thelia\Controller\Admin\ProductController::calculatePrice</default>
    </route>

    <route id="admin.product.load-converted-prices" path="/admin/product/load-converted-prices">
        <default key="_controller">Thelia\Controller\Admin\ProductController::loadConvertedPrices</default>
    </route>

    <!-- accessories -->

    <route id="admin.products.accessories.add" path="/admin/products/accessory/add">
        <default key="_controller">Thelia\Controller\Admin\ProductController::addAccessoryAction</default>
    </route>

    <route id="admin.products.accessories.delete" path="/admin/products/accessory/delete">
        <default key="_controller">Thelia\Controller\Admin\ProductController::deleteAccessoryAction</default>
    </route>

    <route id="admin.product.accessories-content" path="/admin/product/{productId}/available-accessories/{categoryId}.{_format}" methods="GET">
        <default key="_controller">Thelia\Controller\Admin\ProductController::getAvailableAccessoriesAction</default>
        <requirement key="_format">xml|json</requirement>
    </route>

    <route id="admin.product.update-accessory-position" path="/admin/product/update-accessory-position">
        <default key="_controller">Thelia\Controller\Admin\ProductController::updateAccessoryPositionAction</default>
    </route>

    <!--Product Features and attributes -->

    <route id="admin.products.attributes.tab" path="/admin/products/attributes/tab">
        <default key="_controller">Thelia\Controller\Admin\ProductController::loadAttributesAjaxTabAction</default>
    </route>

    <route id="admin.products.set-product-template" path="/admin/product/{productId}/set-product-template">
        <default key="_controller">Thelia\Controller\Admin\ProductController::setProductTemplateAction</default>
    </route>

    <route id="admin.products.update-attributes-and-features" path="/admin/product/{productId}/update-attributes-and-features">
        <default key="_controller">Thelia\Controller\Admin\ProductController::updateAttributesAndFeaturesAction</default>
    </route>

    <!-- Combinations -->

    <route id="admin.product.attribute-values" path="/admin/product/{productId}/attribute-values/{attributeId}.{_format}" methods="GET">
        <default key="_controller">Thelia\Controller\Admin\ProductController::getAttributeValuesAction</default>
        <requirement key="_format">xml|json</requirement>
    </route>

    <route id="admin.product.add-attribute-value-to-combination" path="/admin/product/{productId}/add-attribute-value-to-combination/{attributeAvId}/{combination}.{_format}" methods="GET">
        <default key="_controller">Thelia\Controller\Admin\ProductController::addAttributeValueToCombinationAction</default>
        <requirement key="_format">xml|json</requirement>
    </route>

    <route id="admin.product.combination.add" path="/admin/product/combination/add">
        <default key="_controller">Thelia\Controller\Admin\ProductController::addProductSaleElementAction</default>
    </route>

    <route id="admin.product.combination.delete" path="/admin/product/combination/delete">
        <default key="_controller">Thelia\Controller\Admin\ProductController::deleteProductSaleElementAction</default>
    </route>

    <route id="admin.product.combination.update" path="/admin/product/combinations/update">
        <default key="_controller">Thelia\Controller\Admin\ProductController::updateProductSaleElementsAction</default>
    </route>

    <route id="admin.product.combination.build" path="/admin/product/combination/build">
        <default key="_controller">Thelia\Controller\Admin\ProductController::buildCombinationsAction</default>
    </route>

    <route id="admin.product.combination.defaut-price.update" path="/admin/product/default-price/update">
        <default key="_controller">Thelia\Controller\Admin\ProductController::updateProductDefaultSaleElementAction</default>
    </route>

    <!-- Associate a product_sale_elements with a product document / image -->

    <route id="admin.product_sale_elements.document_image_assoc" path="/admin/product_sale_elements/{pseId}/{type}/{typeId}" methods="get">
        <default key="_controller">Thelia\Controller\Admin\ProductController::productSaleElementsProductImageDocumentAssociation</default>
        <requirement key="pseId">\d+</requirement>
        <requirement key="type">.+</requirement>
        <requirement key="typeId">\d+</requirement>
    </route>

    <route id="admin.product_sale_elements.document_image_assoc.get_assoc" path="/admin/product_sale_elements/ajax/{type}/{id}" methods="get">
        <default key="_controller">Thelia\Controller\Admin\ProductController::getAjaxProductSaleElementsImagesDocuments</default>
        <requirement key="id">\d+</requirement>
        <requirement key="type">.+</requirement>
    </route>

    <route id="admin.product.virtual_documents" path="/admin/product/virtual-documents/{productId}/{pseId}" methods="get">
        <default key="_controller">Thelia\Controller\Admin\ProductController::getVirtualDocumentListAjaxAction</default>
        <requirement key="productId">\d+</requirement>
        <requirement key="pseId">\d+</requirement>
    </route>


    <!--  Folder routes management -->

    <route id="admin.folders.default" path="/admin/folders">
        <default key="_controller">Thelia\Controller\Admin\FolderController::defaultAction</default>
    </route>

    <route id="admin.folders.create" path="/admin/folders/create">
        <default key="_controller">Thelia\Controller\Admin\FolderController::createAction</default>
    </route>

    <route id="admin.folders.update" path="/admin/folders/update/{folder_id}">
        <default key="_controller">Thelia\Controller\Admin\FolderController::updateAction</default>
        <requirement key="folder_id">\d+</requirement>
    </route>

    <route id="admin.folders.toggle-online" path="/admin/folders/toggle-online">
        <default key="_controller">Thelia\Controller\Admin\FolderController::setToggleVisibilityAction</default>
    </route>

    <route id="admin.folders.save" path="/admin/folders/save">
        <default key="_controller">Thelia\Controller\Admin\FolderController::processUpdateAction</default>
    </route>

    <route id="admin.folders.seo.save" path="/admin/folders/seo/save">
        <default key="_controller">Thelia\Controller\Admin\FolderController::processUpdateSeoAction</default>
    </route>

    <route id="admin.folders.delete" path="/admin/folders/delete">
        <default key="_controller">Thelia\Controller\Admin\FolderController::deleteAction</default>
    </route>

    <route id="admin.folders.update-position" path="/admin/folders/update-position">
        <default key="_controller">Thelia\Controller\Admin\FolderController::updatePositionAction</default>
    </route>

    <!-- content routes management -->
    <route id="admin.content.create" path="/admin/content/create">
        <default key="_controller">Thelia\Controller\Admin\ContentController::createAction</default>
    </route>

    <route id="admin.content.update" path="/admin/content/update/{content_id}">
        <default key="_controller">Thelia\Controller\Admin\ContentController::updateAction</default>
        <requirement key="content_id">\d+</requirement>
    </route>

    <route id="admin.content.save" path="/admin/content/save">
        <default key="_controller">Thelia\Controller\Admin\ContentController::processUpdateAction</default>
    </route>

    <route id="admin.content.seo.save" path="/admin/content/seo/save">
        <default key="_controller">Thelia\Controller\Admin\ContentController::processUpdateSeoAction</default>
    </route>

    <route id="admin.content.update-position" path="/admin/content/update-position">
        <default key="_controller">Thelia\Controller\Admin\ContentController::updatePositionAction</default>
    </route>

    <route id="admin.content.toggle-online" path="/admin/content/toggle-online">
        <default key="_controller">Thelia\Controller\Admin\ContentController::setToggleVisibilityAction</default>
    </route>

    <route id="admin.content.delete" path="/admin/content/delete">
        <default key="_controller">Thelia\Controller\Admin\ContentController::deleteAction</default>
    </route>

    <route id="admin.content.additional-folder.add" path="/admin/content/folder/add">
        <default key="_controller">Thelia\Controller\Admin\ContentController::addAdditionalFolderAction</default>
    </route>

    <route id="admin.content.additional-folder.delete" path="/admin/content/folder/delete">
        <default key="_controller">Thelia\Controller\Admin\ContentController::removeAdditionalFolderAction</default>
    </route>


    <!-- Route to the Coupon controller (process Coupon browsing) -->

    <route id="admin.coupon.list" path="/admin/coupon">
        <default key="_controller">Thelia\Controller\Admin\CouponController::browseAction</default>
    </route>
    <route id="admin.coupon.create" path="/admin/coupon/create">
        <default key="_controller">Thelia\Controller\Admin\CouponController::createAction</default>
    </route>
    <route id="admin.coupon.update" path="/admin/coupon/update/{couponId}">
        <default key="_controller">Thelia\Controller\Admin\CouponController::updateAction</default>
        <requirement key="couponId">\d+</requirement>
    </route>
    <route id="admin.coupon.delete" path="/admin/coupon/delete">
        <default key="_controller">Thelia\Controller\Admin\CouponController::deleteAction</default>
    </route>
    <route id="admin.coupon.draw.inputs.ajax" path="/admin/coupon/draw/inputs/{couponServiceId}">
        <default key="_controller">Thelia\Controller\Admin\CouponController::getBackOfficeInputsAjaxAction</default>
        <requirement key="couponServiceId">.*</requirement>
    </route>
    <route id="admin.coupon.draw.condition.summaries.ajax" path="/admin/coupon/draw/conditionsSummaries/{couponId}">
        <default key="_controller">Thelia\Controller\Admin\CouponController::getBackOfficeConditionSummariesAjaxAction</default>
        <requirement key="couponId">\d+</requirement>
    </route>
    <route id="admin.coupon.draw.condition.read.inputs.ajax" path="/admin/coupon/draw/read/conditionInputs/{conditionId}">
        <default key="_controller">Thelia\Controller\Admin\CouponController::getConditionEmptyInputAjaxAction</default>
        <requirement key="conditionId">.*</requirement>
    </route>
    <route id="admin.coupon.draw.condition.update.inputs.ajax" path="/admin/coupon/draw/update/conditionInputs/{couponId}/{conditionIndex}">
        <default key="_controller">Thelia\Controller\Admin\CouponController::getConditionToUpdateInputAjaxAction</default>
        <requirement key="couponId">\d+</requirement>
        <requirement key="conditionIndex">\d+</requirement>
    </route>
    <route id="admin.coupon.condition.save" path="/admin/coupon/{couponId}/condition/save" methods="post">
        <default key="_controller">Thelia\Controller\Admin\CouponController::saveConditionsAction</default>
        <requirement key="couponId">\d+</requirement>
    </route>
    <route id="admin.coupon.condition.delete" path="/admin/coupon/{couponId}/condition/delete/{conditionIndex}">
        <default key="_controller">Thelia\Controller\Admin\CouponController::deleteConditionsAction</default>
        <requirement key="couponId">\d+</requirement>
        <requirement key="conditionIndex">\d+</requirement>
    </route>

    <!-- Routes to the Config (system variables) controller -->

    <route id="admin.configuration.index" path="/admin/configuration">
        <default key="_controller">Thelia\Controller\Admin\ConfigurationController::indexAction</default>
    </route>

    <route id="admin.configuration.variables.default" path="/admin/configuration/variables">
        <default key="_controller">Thelia\Controller\Admin\ConfigController::defaultAction</default>
    </route>

    <route id="admin.configuration.variables.update-values" path="/admin/configuration/variables/update-values">
        <default key="_controller">Thelia\Controller\Admin\ConfigController::changeValuesAction</default>
    </route>

    <route id="admin.configuration.variables.create" path="/admin/configuration/variables/create">
        <default key="_controller">Thelia\Controller\Admin\ConfigController::createAction</default>
    </route>

    <route id="admin.configuration.variables.update" path="/admin/configuration/variables/update">
        <default key="_controller">Thelia\Controller\Admin\ConfigController::updateAction</default>
    </route>

    <route id="admin.configuration.variables.save" path="/admin/configuration/variables/save">
        <default key="_controller">Thelia\Controller\Admin\ConfigController::processUpdateAction</default>
    </route>

    <route id="admin.configuration.variables.delete" path="/admin/configuration/variables/delete">
        <default key="_controller">Thelia\Controller\Admin\ConfigController::deleteAction</default>
    </route>

    <!--  Routes to the ConfigStore controller -->

    <route id="admin.configuration.store.default" path="/admin/configuration/store">
        <default key="_controller">Thelia\Controller\Admin\ConfigStoreController::defaultAction</default>
    </route>

    <route id="admin.configuration.store.save" path="/admin/configuration/store/save">
        <default key="_controller">Thelia\Controller\Admin\ConfigStoreController::saveAction</default>
    </route>


    <!--  Routes to the SystemLog controller -->

    <route id="admin.configuration.system-logs.default" path="/admin/configuration/system-logs">
        <default key="_controller">Thelia\Controller\Admin\SystemLogController::defaultAction</default>
    </route>

    <route id="admin.configuration.system-logs.save" path="/admin/configuration/system-logs/save">
        <default key="_controller">Thelia\Controller\Admin\SystemLogController::saveAction</default>
    </route>

    <!-- Routes to the Messages controller -->

    <route id="admin.configuration.messages.default" path="/admin/configuration/messages">
        <default key="_controller">Thelia\Controller\Admin\MessageController::defaultAction</default>
    </route>

    <route id="admin.configuration.messages.create" path="/admin/configuration/messages/create">
        <default key="_controller">Thelia\Controller\Admin\MessageController::createAction</default>
    </route>

    <route id="admin.configuration.messages.update" path="/admin/configuration/messages/update">
        <default key="_controller">Thelia\Controller\Admin\MessageController::updateAction</default>
    </route>

    <route id="admin.configuration.messages.save" path="/admin/configuration/messages/save">
        <default key="_controller">Thelia\Controller\Admin\MessageController::processUpdateAction</default>
    </route>

    <route id="admin.configuration.messages.delete" path="/admin/configuration/messages/delete">
        <default key="_controller">Thelia\Controller\Admin\MessageController::deleteAction</default>
    </route>

    <!-- Routes to the Currencies controller -->

    <route id="admin.configuration.currencies.default" path="/admin/configuration/currencies">
        <default key="_controller">Thelia\Controller\Admin\CurrencyController::defaultAction</default>
    </route>

    <route id="admin.configuration.currencies.create" path="/admin/configuration/currencies/create">
        <default key="_controller">Thelia\Controller\Admin\CurrencyController::createAction</default>
    </route>

    <route id="admin.configuration.currencies.update" path="/admin/configuration/currencies/update">
        <default key="_controller">Thelia\Controller\Admin\CurrencyController::updateAction</default>
    </route>

    <route id="admin.configuration.currencies.save" path="/admin/configuration/currencies/save">
        <default key="_controller">Thelia\Controller\Admin\CurrencyController::processUpdateAction</default>
    </route>

    <route id="admin.configuration.currencies.set-default" path="/admin/configuration/currencies/set-default">
        <default key="_controller">Thelia\Controller\Admin\CurrencyController::setDefaultAction</default>
    </route>

    <route id="admin.configuration.currencies.set-visible" path="/admin/configuration/currencies/set-visible">
        <default key="_controller">Thelia\Controller\Admin\CurrencyController::setVisibleAction</default>
    </route>

    <route id="admin.configuration.currencies.update-position" path="/admin/configuration/currencies/update-position">
        <default key="_controller">Thelia\Controller\Admin\CurrencyController::updatePositionAction</default>
    </route>

    <route id="admin.configuration.currencies.update-rates" path="/admin/configuration/currencies/update-rates">
        <default key="_controller">Thelia\Controller\Admin\CurrencyController::updateRatesAction</default>
    </route>

    <route id="admin.configuration.currencies.delete" path="/admin/configuration/currencies/delete">
        <default key="_controller">Thelia\Controller\Admin\CurrencyController::deleteAction</default>
    </route>


    <!-- Product templates management -->

    <route id="admin.configuration.templates.default" path="/admin/configuration/templates">
        <default key="_controller">Thelia\Controller\Admin\TemplateController::defaultAction</default>
    </route>

    <route id="admin.configuration.templates.create" path="/admin/configuration/templates/create">
        <default key="_controller">Thelia\Controller\Admin\TemplateController::createAction</default>
    </route>

    <route id="admin.configuration.templates.update" path="/admin/configuration/templates/update">
        <default key="_controller">Thelia\Controller\Admin\TemplateController::updateAction</default>
    </route>

    <route id="admin.configuration.templates.save" path="/admin/configuration/templates/save">
        <default key="_controller">Thelia\Controller\Admin\TemplateController::processUpdateAction</default>
    </route>

    <route id="admin.configuration.templates.delete" path="/admin/configuration/templates/delete">
        <default key="_controller">Thelia\Controller\Admin\TemplateController::deleteAction</default>
    </route>

    <route id="admin.configuration.templates.duplicate" path="/admin/configuration/templates/duplicate">
        <default key="_controller">Thelia\Controller\Admin\TemplateController::duplicateAction</default>
    </route>

    <route id="admin.configuration.templates.features.list" path="/admin/configuration/templates/features/list">
        <default key="_controller">Thelia\Controller\Admin\TemplateController::getAjaxFeaturesAction</default>
    </route>

    <route id="admin.configuration.templates.features.add" path="/admin/configuration/templates/features/add">
        <default key="_controller">Thelia\Controller\Admin\TemplateController::addFeatureAction</default>
    </route>

    <route id="admin.configuration.templates.features.delete" path="/admin/configuration/templates/features/delete">
        <default key="_controller">Thelia\Controller\Admin\TemplateController::deleteFeatureAction</default>
    </route>

    <route id="admin.configuration.templates.attributes.update-feature-position" path="/admin/template/update-feature-position">
        <default key="_controller">Thelia\Controller\Admin\TemplateController::updateFeaturePositionAction</default>
    </route>

    <route id="admin.configuration.templates.attributes.list" path="/admin/configuration/templates/attributes/list">
        <default key="_controller">Thelia\Controller\Admin\TemplateController::getAjaxAttributesAction</default>
    </route>

    <route id="admin.configuration.templates.attributes.add" path="/admin/configuration/templates/attributes/add">
        <default key="_controller">Thelia\Controller\Admin\TemplateController::addAttributeAction</default>
    </route>

    <route id="admin.configuration.templates.attributes.delete" path="/admin/configuration/templates/attributes/delete">
        <default key="_controller">Thelia\Controller\Admin\TemplateController::deleteAttributeAction</default>
    </route>

    <route id="admin.configuration.templates.attributes.update-attribute-position" path="/admin/template/update-attribute-position">
        <default key="_controller">Thelia\Controller\Admin\TemplateController::updateAttributePositionAction</default>
    </route>


    <!-- attribute and attributes value management -->

    <route id="admin.configuration.attributes.default" path="/admin/configuration/attributes">
        <default key="_controller">Thelia\Controller\Admin\AttributeController::defaultAction</default>
    </route>

    <route id="admin.configuration.attributes.create" path="/admin/configuration/attributes/create">
        <default key="_controller">Thelia\Controller\Admin\AttributeController::createAction</default>
    </route>

    <route id="admin.configuration.attributes.update" path="/admin/configuration/attributes/update">
        <default key="_controller">Thelia\Controller\Admin\AttributeController::updateAction</default>
    </route>

    <route id="admin.configuration.attributes.save" path="/admin/configuration/attributes/save">
        <default key="_controller">Thelia\Controller\Admin\AttributeController::processUpdateAction</default>
    </route>

    <route id="admin.configuration.attributes.delete" path="/admin/configuration/attributes/delete">
        <default key="_controller">Thelia\Controller\Admin\AttributeController::deleteAction</default>
    </route>

    <route id="admin.configuration.attributes.update-position" path="/admin/configuration/attributes/update-position">
        <default key="_controller">Thelia\Controller\Admin\AttributeController::updatePositionAction</default>
    </route>

    <route id="admin.configuration.attributes.rem-from-all" path="/admin/configuration/attributes/remove-from-all-templates">
        <default key="_controller">Thelia\Controller\Admin\AttributeController::removeFromAllTemplates</default>
    </route>

    <route id="admin.configuration.attributes.add-to-all" path="/admin/configuration/attributes/add-to-all-templates">
        <default key="_controller">Thelia\Controller\Admin\AttributeController::addToAllTemplates</default>
    </route>


    <route id="admin.configuration.attributes-av.create" path="/admin/configuration/attributes-av/create">
        <default key="_controller">Thelia\Controller\Admin\AttributeAvController::createAction</default>
    </route>

    <route id="admin.configuration.attributes-av.update" path="/admin/configuration/attributes-av/update">
        <default key="_controller">Thelia\Controller\Admin\AttributeAvController::updateAction</default>
    </route>

    <route id="admin.configuration.attributes-av.save" path="/admin/configuration/attributes-av/save">
        <default key="_controller">Thelia\Controller\Admin\AttributeAvController::processUpdateAction</default>
    </route>

    <route id="admin.configuration.attributes-av.delete" path="/admin/configuration/attributes-av/delete">
        <default key="_controller">Thelia\Controller\Admin\AttributeAvController::deleteAction</default>
    </route>

    <route id="admin.configuration.attributes-av.update-position" path="/admin/configuration/attributes-av/update-position">
        <default key="_controller">Thelia\Controller\Admin\AttributeAvController::updatePositionAction</default>
    </route>

    <!-- end attribute and feature routes  management -->



    <!-- end countries routes management -->

    <!-- Shipping zones routes management -->

    <route id="admin.configuration.shipping-zones.default" path="/admin/configuration/shipping_zones">
        <default key="_controller">Thelia\Controller\Admin\ShippingZoneController::indexAction</default>
    </route>

    <route id="admin.configuration.shipping-zones.update.view" path="/admin/configuration/shipping_zones/update/{delivery_module_id}" methods="get">
        <default key="_controller">Thelia\Controller\Admin\ShippingZoneController::updateAction</default>
        <requirement key="delivery_module_id">\d+</requirement>
    </route>

    <route id="admin.configuration.shipping-zones.area.add" path="/admin/configuration/shipping_zones/area/add" methods="post">
        <default key="_controller">Thelia\Controller\Admin\ShippingZoneController::addArea</default>
    </route>

    <route id="admin.configuration.shipping-zones.area.remove" path="/admin/configuration/shipping_zones/area/remove">
        <default key="_controller">Thelia\Controller\Admin\ShippingZoneController::removeArea</default>
    </route>

    <!-- end shipping routes management -->

    <!-- Shipping zones routes management -->

    <route id="admin.configuration.shipping-configuration.default" path="/admin/configuration/shipping_configuration">
        <default key="_controller">Thelia\Controller\Admin\AreaController::defaultAction</default>
    </route>

    <route id="admin.configuration.shipping-configuration.update.view" path="/admin/configuration/shipping_configuration/update/{area_id}">
        <default key="_controller">Thelia\Controller\Admin\AreaController::updateAction</default>
        <requirement key="area_id">\d+</requirement>
    </route>

    <route id="admin.configuration.shipping-configuration.save" path="/admin/configuration/shipping_configuration/save/{area_id}">
        <default key="_controller">Thelia\Controller\Admin\AreaController::processUpdateAction</default>
        <requirement key="area_id">\d+</requirement>
    </route>

    <route id="admin.configuration.shipping-configuration.delete" path="/admin/configuration/shipping_configuration/delete">
        <default key="_controller">Thelia\Controller\Admin\AreaController::deleteAction</default>
    </route>

    <route id="admin.configuration.shipping-configuration.create" path="/admin/configuration/shipping_configuration/create">
        <default key="_controller">Thelia\Controller\Admin\AreaController::createAction</default>
    </route>

    <route id="admin.configuration.shipping-configuration.update.postage" path="/admin/configuration/shipping_configuration/update_postage/{area_id}">
        <default key="_controller">Thelia\Controller\Admin\AreaController::updatePostageAction</default>
        <requirement key="area_id">\d+</requirement>
    </route>

    <route id="admin.configuration.shipping-configuration.country.add" path="/admin/configuration/shipping_configuration/country/add" methods="post">
        <default key="_controller">Thelia\Controller\Admin\AreaController::addCountry</default>
    </route>

    <route id="admin.configuration.shipping-configuration.country.remove" path="/admin/configuration/shipping_configuration/country/remove" methods="post">
        <default key="_controller">Thelia\Controller\Admin\AreaController::removeCountry</default>
    </route>

    <route id="admin.configuration.shipping-configuration.countries.remove" path="/admin/configuration/shipping_configuration/countries/remove" methods="post">
        <default key="_controller">Thelia\Controller\Admin\AreaController::removeCountries</default>
    </route>

    <!-- end shipping routes management -->

    <!-- Countries routes management -->

    <route id="admin.configuration.countries.default" path="/admin/configuration/countries">
        <default key="_controller">Thelia\Controller\Admin\CountryController::defaultAction</default>
    </route>

    <route id="admin.configuration.countries.create" path="/admin/configuration/countries/create">
        <default key="_controller">Thelia\Controller\Admin\CountryController::createAction</default>
    </route>

    <route id="admin.configuration.countries.update" path="/admin/configuration/country/update/{country_id}">
        <default key="_controller">Thelia\Controller\Admin\CountryController::updateAction</default>
        <requirement key="country_id">\d+</requirement>
    </route>

    <route id="admin.configuration.countries.save" path="/admin/configuration/country/save/{country_id}">
        <default key="_controller">Thelia\Controller\Admin\CountryController::processUpdateAction</default>
        <requirement key="country_id">\d+</requirement>
    </route>

    <route id="admin.configuration.countries.delete" path="/admin/configuration/countries/delete">
        <default key="_controller">Thelia\Controller\Admin\CountryController::deleteAction</default>
    </route>

    <route id="admin.configuration.countries.toggle-default" path="/admin/configuration/country/toggleDefault">
        <default key="_controller">Thelia\Controller\Admin\CountryController::toggleDefaultAction</default>
    </route>

    <route id="admin.configuration.countries.toggle-online" path="/admin/configuration/country/toggle-online">
        <default key="_controller">Thelia\Controller\Admin\CountryController::setToggleVisibilityAction</default>
    </route>

    <route id="admin.configuration.countries.data" path="/admin/configuration/countries/data">
        <default key="_controller">Thelia\Controller\Admin\CountryController::getDataAction</default>
    </route>

    <!-- end countries routes management -->

    <!-- States routes management -->

    <route id="admin.configuration.states.default" path="/admin/configuration/states">
        <default key="_controller">Thelia\Controller\Admin\StateController::defaultAction</default>
    </route>

    <route id="admin.configuration.states.create" path="/admin/configuration/states/create">
        <default key="_controller">Thelia\Controller\Admin\StateController::createAction</default>
    </route>

    <route id="admin.configuration.states.update" path="/admin/configuration/state/update/{state_id}">
        <default key="_controller">Thelia\Controller\Admin\StateController::updateAction</default>
        <requirement key="state_id">\d+</requirement>
    </route>

    <route id="admin.configuration.states.save" path="/admin/configuration/state/save/{state_id}">
        <default key="_controller">Thelia\Controller\Admin\StateController::processUpdateAction</default>
        <requirement key="state_id">\d+</requirement>
    </route>

    <route id="admin.configuration.states.delete" path="/admin/configuration/states/delete">
        <default key="_controller">Thelia\Controller\Admin\StateController::deleteAction</default>
    </route>

    <route id="admin.configuration.states.toggle-online" path="/admin/configuration/state/toggle-online">
        <default key="_controller">Thelia\Controller\Admin\StateController::setToggleVisibilityAction</default>
    </route>

    <!-- end states routes management -->

    <!-- profiles management -->

    <route id="admin.configuration.profiles.list" path="/admin/configuration/profiles">
        <default key="_controller">Thelia\Controller\Admin\ProfileController::defaultAction</default>
        <requirement key="address_id">\d+</requirement>
    </route>

    <route id="admin.configuration.profiles.update" path="/admin/configuration/profiles/update/{profile_id}">
        <default key="_controller">Thelia\Controller\Admin\ProfileController::updateAction</default>
        <requirement key="tax_id">\d+</requirement>
    </route>

    <route id="admin.configuration.profiles.add" path="/admin/configuration/profiles/add">
        <default key="_controller">Thelia\Controller\Admin\ProfileController::createAction</default>
    </route>

    <route id="admin.configuration.profiles.save" path="/admin/configuration/profiles/save">
        <default key="_controller">Thelia\Controller\Admin\ProfileController::processUpdateAction</default>
    </route>

    <route id="admin.configuration.profiles.saveResourceAccess" path="/admin/configuration/profiles/saveResourceAccess">
        <default key="_controller">Thelia\Controller\Admin\ProfileController::processUpdateResourceAccess</default>
    </route>

    <route id="admin.configuration.profiles.saveModuleAccess" path="/admin/configuration/profiles/saveModuleAccess">
        <default key="_controller">Thelia\Controller\Admin\ProfileController::processUpdateModuleAccess</default>
    </route>

    <route id="admin.configuration.profiles.delete" path="/admin/configuration/profiles/delete">
        <default key="_controller">Thelia\Controller\Admin\ProfileController::deleteAction</default>
    </route>

    <!-- end profiles management -->

    <!-- administrator management -->

    <route id="admin.configuration.administrators.view" path="/admin/configuration/administrators">
        <default key="_controller">Thelia\Controller\Admin\AdministratorController::defaultAction</default>
    </route>

    <route id="admin.configuration.administrators.view-profile" path="/admin/configuration/administrators/view">
        <default key="_controller">Thelia\Controller\Admin\AdministratorController::viewAction</default>
    </route>

    <route id="admin.configuration.administrators.add" path="/admin/configuration/administrators/add">
        <default key="_controller">Thelia\Controller\Admin\AdministratorController::createAction</default>
    </route>

    <route id="admin.configuration.administrators.save" path="/admin/configuration/administrators/save">
        <default key="_controller">Thelia\Controller\Admin\AdministratorController::processUpdateAction</default>
    </route>

    <route id="admin.configuration.administrators.delete" path="/admin/configuration/administrators/delete">
        <default key="_controller">Thelia\Controller\Admin\AdministratorController::deleteAction</default>
    </route>

    <!-- end administrator management -->

    <!-- mailing-system management -->

    <route id="admin.configuration.mailing-system.view" path="/admin/configuration/mailingSystem">
        <default key="_controller">Thelia\Controller\Admin\MailingSystemController::defaultAction</default>
    </route>

    <route id="admin.configuration.mailing-system.save" path="/admin/configuration/mailingSystem/save">
        <default key="_controller">Thelia\Controller\Admin\MailingSystemController::updateAction</default>
    </route>

    <route id="admin.configuration.mailing-system.test" path="/admin/configuration/mailingSystem/test">
        <default key="_controller">Thelia\Controller\Admin\MailingSystemController::testAction</default>
    </route>

    <!-- end mailing-system management -->

    <!-- admin logs display -->

    <route id="admin.configuration.admin-logs.view" path="/admin/configuration/adminLogs">
        <default key="_controller">Thelia\Controller\Admin\AdminLogsController::defaultAction</default>
    </route>

    <route id="admin.configuration.admin-logs.logger" path="/admin/configuration/adminLogs/logger">
        <default key="_controller">Thelia\Controller\Admin\AdminLogsController::loadLoggerAjaxAction</default>
    </route>

    <!-- end admin logs display -->

    <!-- feature and features value management -->

    <route id="admin.configuration.features.default" path="/admin/configuration/features">
        <default key="_controller">Thelia\Controller\Admin\FeatureController::defaultAction</default>
    </route>

    <route id="admin.configuration.features.create" path="/admin/configuration/features/create">
        <default key="_controller">Thelia\Controller\Admin\FeatureController::createAction</default>
    </route>

    <route id="admin.configuration.features.update" path="/admin/configuration/features/update">
        <default key="_controller">Thelia\Controller\Admin\FeatureController::updateAction</default>
    </route>

    <route id="admin.configuration.features.save" path="/admin/configuration/features/save">
        <default key="_controller">Thelia\Controller\Admin\FeatureController::processUpdateAction</default>
    </route>

    <route id="admin.configuration.features.delete" path="/admin/configuration/features/delete">
        <default key="_controller">Thelia\Controller\Admin\FeatureController::deleteAction</default>
    </route>

    <route id="admin.configuration.features.update-position" path="/admin/configuration/features/update-position">
        <default key="_controller">Thelia\Controller\Admin\FeatureController::updatePositionAction</default>
    </route>

    <route id="admin.configuration.features.rem-from-all" path="/admin/configuration/features/remove-from-all-templates">
        <default key="_controller">Thelia\Controller\Admin\FeatureController::removeFromAllTemplates</default>
    </route>

    <route id="admin.configuration.features.add-to-all" path="/admin/configuration/features/add-to-all-templates">
        <default key="_controller">Thelia\Controller\Admin\FeatureController::addToAllTemplates</default>
    </route>


    <route id="admin.configuration.features-av.create" path="/admin/configuration/features-av/create">
        <default key="_controller">Thelia\Controller\Admin\FeatureAvController::createAction</default>
    </route>

    <route id="admin.configuration.features-av.update" path="/admin/configuration/features-av/update">
        <default key="_controller">Thelia\Controller\Admin\FeatureAvController::updateAction</default>
    </route>

    <route id="admin.configuration.features-av.save" path="/admin/configuration/features-av/save">
        <default key="_controller">Thelia\Controller\Admin\FeatureAvController::processUpdateAction</default>
    </route>

    <route id="admin.configuration.features-av.delete" path="/admin/configuration/features-av/delete">
        <default key="_controller">Thelia\Controller\Admin\FeatureAvController::deleteAction</default>
    </route>

    <route id="admin.configuration.features-av.update-position" path="/admin/configuration/features-av/update-position">
        <default key="_controller">Thelia\Controller\Admin\FeatureAvController::updatePositionAction</default>
    </route>

    <!-- end feature and feature routes  management -->

    <!-- cache route management -->
    <route id="admin.configuration.advanced" path="/admin/configuration/advanced">
        <default key="_controller">Thelia\Controller\Admin\AdvancedConfigurationController::defaultAction</default>
    </route>

    <route id="admin.configuration.advanced.flush-cache" path="/admin/configuration/advanced/flush-cache">
        <default key="_controller">Thelia\Controller\Admin\AdvancedConfigurationController::flushCacheAction</default>
    </route>

    <route id="admin.configuration.advanced.flush-assets" path="/admin/configuration/advanced/flush-assets">
        <default key="_controller">Thelia\Controller\Admin\AdvancedConfigurationController::flushAssetsAction</default>
    </route>

    <route id="admin.configuration.advanced.flush-images-and-documents" path="/admin/configuration/advanced/flush-images-and-documents">
        <default key="_controller">Thelia\Controller\Admin\AdvancedConfigurationController::flushImagesAndDocumentsAction</default>
    </route>

    <!-- and cache route management -->

    <!-- Modules rule management -->

    <route id="admin.module" path="/admin/modules">
        <default key="_controller">Thelia\Controller\Admin\ModuleController::indexAction</default>
    </route>

    <route id="admin.module.update" path="/admin/module/update/{module_id}">
        <default key="_controller">Thelia\Controller\Admin\ModuleController::updateAction</default>
        <requirement key="module_id">\d+</requirement>
    </route>

    <route id="admin.module.save" path="/admin/module/save">
        <default key="_controller">Thelia\Controller\Admin\ModuleController::processUpdateAction</default>
    </route>

    <route id="admin.module.toggle-activation" path="/admin/module/toggle-activation/{module_id}">
        <default key="_controller">Thelia\Controller\Admin\ModuleController::toggleActivationAction</default>
        <requirement key="module_id">\d+</requirement>
    </route>

    <route id="admin.module.delete" path="/admin/module/delete">
        <default key="_controller">Thelia\Controller\Admin\ModuleController::deleteAction</default>
    </route>

    <route id="admin.module.update-position" path="/admin/module/update-position">
        <default key="_controller">Thelia\Controller\Admin\ModuleController::updatePositionAction</default>
    </route>

    <route id="admin.module.install" path="/admin/module/install" methods="post">
        <default key="_controller">Thelia\Controller\Admin\ModuleController::installAction</default>
    </route>

    <route id="admin.module.information" path="/admin/module/information/{module_id}">
        <default key="_controller">Thelia\Controller\Admin\ModuleController::informationAction</default>
        <requirement key="module_id">\d+</requirement>
    </route>

    <route id="admin.module.documentation" path="/admin/module/documentation/{module_id}">
        <default key="_controller">Thelia\Controller\Admin\ModuleController::documentationAction</default>
        <requirement key="module_id">\d+</requirement>
    </route>

    <!--
        Generic module route.
        Will be use if module route is not define in module own config file.
    -->
    <route id="admin.module.configure" path="/admin/module/{module_code}">
        <default key="_controller">Thelia\Controller\Admin\ModuleController::configureAction</default>
    </route>



    <!-- end Modules rule management -->

    <!-- Hooks rule management -->

    <route id="admin.hook" path="/admin/hooks">
        <default key="_controller">Thelia\Controller\Admin\HookController::indexAction</default>
    </route>

    <route id="admin.hook.discover" path="/admin/hooks/discover">
        <default key="_controller">Thelia\Controller\Admin\HookController::discoverAction</default>
    </route>

    <route id="admin.hook.discover.save" path="/admin/hooks/discover/save">
        <default key="_controller">Thelia\Controller\Admin\HookController::discoverSaveAction</default>
    </route>

    <route id="admin.hook.create" path="/admin/hooks/create">
        <default key="_controller">Thelia\Controller\Admin\HookController::createAction</default>
    </route>

    <route id="admin.hook.update" path="/admin/hook/update/{hook_id}">
        <default key="_controller">Thelia\Controller\Admin\HookController::updateAction</default>
        <requirement key="hook_id">\d+</requirement>
    </route>

    <route id="admin.hook.save" path="/admin/hook/save/{hook_id}">
        <default key="_controller">Thelia\Controller\Admin\HookController::processUpdateAction</default>
        <requirement key="hook_id">\d+</requirement>
    </route>

    <route id="admin.hook.delete" path="/admin/hooks/delete">
        <default key="_controller">Thelia\Controller\Admin\HookController::deleteAction</default>
    </route>

    <route id="admin.hook.toggle-activation" path="/admin/hook/toggle-activation">
        <default key="_controller">Thelia\Controller\Admin\HookController::toggleActivationAction</default>
    </route>

    <route id="admin.hook.toggle-native" path="/admin/hook/toggle-native">
        <default key="_controller">Thelia\Controller\Admin\HookController::toggleNativeAction</default>
    </route>

    <route id="admin.module-hook" path="/admin/module-hooks">
        <default key="_controller">Thelia\Controller\Admin\ModuleHookController::indexAction</default>
    </route>

    <route id="admin.module-hook.create" path="/admin/module-hooks/create">
        <default key="_controller">Thelia\Controller\Admin\ModuleHookController::createAction</default>
    </route>

    <route id="admin.module-hook.update" path="/admin/module-hook/update/{module_hook_id}">
        <default key="_controller">Thelia\Controller\Admin\ModuleHookController::updateAction</default>
        <requirement key="module_hook_id">\d+</requirement>
    </route>

    <route id="admin.module-hook.save" path="/admin/module-hook/save/{module_hook_id}">
        <default key="_controller">Thelia\Controller\Admin\ModuleHookController::processUpdateAction</default>
        <requirement key="module_hook_id">\d+</requirement>
    </route>

    <route id="admin.module-hook.delete" path="/admin/module-hooks/delete">
        <default key="_controller">Thelia\Controller\Admin\ModuleHookController::deleteAction</default>
    </route>

    <route id="admin.module-hook.toggle-activation" path="/admin/module-hooks/toggle-activation/{module_hook_id}">
        <default key="_controller">Thelia\Controller\Admin\ModuleHookController::toggleActivationAction</default>
        <requirement key="module_hook_id">\d+</requirement>
    </route>

    <route id="admin.module-hook.update-position" path="/admin/module-hooks/update-position">
        <default key="_controller">Thelia\Controller\Admin\ModuleHookController::updatePositionAction</default>
    </route>

    <route id="admin.module-hook.get-module-hook-classnames" path="/admin/module-hooks/get-module-hook-classnames/{moduleId}">
        <default key="_controller">Thelia\Controller\Admin\ModuleHookController::getModuleHookClassnames</default>
    </route>

    <route id="admin.module-hook.get-module-hook-methods" path="/admin/module-hooks/get-module-hook-methods/{moduleId}/{className}">
        <default key="_controller">Thelia\Controller\Admin\ModuleHookController::getModuleHookMethods</default>
    </route>

    <!-- end Hooks rule management -->

    <!-- tax management -->

    <route id="admin.configuration.taxes.update" path="/admin/configuration/taxes/update/{tax_id}">
        <default key="_controller">Thelia\Controller\Admin\TaxController::updateAction</default>
        <requirement key="tax_id">\d+</requirement>
    </route>

    <route id="admin.configuration.taxes.add" path="/admin/configuration/taxes/add">
        <default key="_controller">Thelia\Controller\Admin\TaxController::createAction</default>
    </route>

    <route id="admin.configuration.taxes.save" path="/admin/configuration/taxes/save">
        <default key="_controller">Thelia\Controller\Admin\TaxController::processUpdateAction</default>
    </route>

    <route id="admin.configuration.taxes.delete" path="/admin/configuration/taxes/delete">
        <default key="_controller">Thelia\Controller\Admin\TaxController::deleteAction</default>
    </route>

    <!-- end tax management -->

    <!-- tax rules management -->

    <route id="admin.configuration.taxes-rules.list" path="/admin/configuration/taxes_rules">
        <default key="_controller">Thelia\Controller\Admin\TaxRuleController::defaultAction</default>
    </route>

    <route id="admin.configuration.taxes-rules.update" path="/admin/configuration/taxes_rules/update/{tax_rule_id}">
        <default key="_controller">Thelia\Controller\Admin\TaxRuleController::updateAction</default>
        <requirement key="tax_rule_id">\d+</requirement>
    </route>

    <route id="admin.configuration.taxes-rules.add" path="/admin/configuration/taxes_rules/add">
        <default key="_controller">Thelia\Controller\Admin\TaxRuleController::createAction</default>
    </route>

    <route id="admin.configuration.taxes-rules.save" path="/admin/configuration/taxes_rules/save">
        <default key="_controller">Thelia\Controller\Admin\TaxRuleController::processUpdateAction</default>
    </route>

    <route id="admin.configuration.taxes-rules.saveTaxes" path="/admin/configuration/taxes_rules/saveTaxes">
        <default key="_controller">Thelia\Controller\Admin\TaxRuleController::processUpdateTaxesAction</default>
    </route>

    <route id="admin.configuration.taxes-rules.delete" path="/admin/configuration/taxes_rules/delete">
        <default key="_controller">Thelia\Controller\Admin\TaxRuleController::deleteAction</default>
    </route>

    <route id="admin.configuration.taxes-rules.set-default" path="/admin/configuration/taxes_rules/update/set_default/{tax_rule_id}">
        <default key="_controller">Thelia\Controller\Admin\TaxRuleController::setDefaultAction</default>
        <requirement key="tax_rule_id">\d+</requirement>
    </route>

    <route id="admin.configuration.taxes-rules.get" path="/admin/configuration/taxes_rules/specs/{tax_rule_id}">
        <default key="_controller">Thelia\Controller\Admin\TaxRuleController::specsAction</default>
        <requirement key="tax_rule_id">\d+</requirement>
    </route>

    <!-- end tax rules management -->

    <!-- language management -->

    <route id="admin.configuration.languages" path="/admin/configuration/languages">
        <default key="_controller">Thelia\Controller\Admin\LangController::defaultAction</default>
    </route>

    <route id="admin.configuration.languages.update" path="/admin/configuration/languages/update/{lang_id}">
        <default key="_controller">Thelia\Controller\Admin\LangController::updateAction</default>
        <requirement key="lang_id">\d+</requirement>
    </route>

    <route id="admin.configuration.languages.update.process" path="/admin/configuration/languages/save/{lang_id}">
        <default key="_controller">Thelia\Controller\Admin\LangController::processUpdateAction</default>
        <requirement key="lang_id">\d+</requirement>
    </route>

    <route id="admin.configuration.languages.toggleDefault" path="/admin/configuration/languages/toggleDefault/{lang_id}">
        <default key="_controller">Thelia\Controller\Admin\LangController::toggleDefaultAction</default>
        <requirement key="lang_id">\d+</requirement>
    </route>

    <route id="admin.configuration.languages.toggleActive" path="/admin/configuration/languages/toggleActive/{lang_id}">
        <default key="_controller">Thelia\Controller\Admin\LangController::toggleActiveAction</default>
        <requirement key="lang_id">\d+</requirement>
    </route>

    <route id="admin.configuration.languages.toggleVisible" path="/admin/configuration/languages/toggleVisible/{lang_id}">
        <default key="_controller">Thelia\Controller\Admin\LangController::toggleVisibleAction</default>
        <requirement key="lang_id">\d+</requirement>
    </route>

    <route id="admin.configuration.languages.add" path="/admin/configuration/languages/add">
        <default key="_controller">Thelia\Controller\Admin\LangController::addAction</default>
    </route>

    <route id="admin.configuration.languages.delete" path="/admin/configuration/languages/delete">
        <default key="_controller">Thelia\Controller\Admin\LangController::deleteAction</default>
    </route>

    <route id="admin.configuration.languages.defaultBehavior" path="/admin/configuration/languages/defaultBehavior">
        <default key="_controller">Thelia\Controller\Admin\LangController::defaultBehaviorAction</default>
    </route>

    <route id="admin.configuration.languages.updateUrl" path="/admin/configuration/languages/updateUrl">
        <default key="_controller">Thelia\Controller\Admin\LangController::domainAction</default>
    </route>

    <route id="admin.configuration.languages.domain.activation" path="/admin/configuration/languages/domain/activate">
        <default key="_controller">Thelia\Controller\Admin\LangController::activateDomainAction</default>
    </route>

    <route id="admin.configuration.languages.domain.deactivation" path="/admin/configuration/languages/domain/deactivate">
        <default key="_controller">Thelia\Controller\Admin\LangController::deactivateDomainAction</default>
    </route>

    <!-- translations management -->

    <route id="admin.configuration.translations" path="/admin/configuration/translations">
        <default key="_controller">Thelia\Controller\Admin\TranslationsController::defaultAction</default>
    </route>

    <route id="admin.configuration.translations.update" path="/admin/configuration/translations/update">
        <default key="_controller">Thelia\Controller\Admin\TranslationsController::updateAction</default>
    </route>

    <route id="admin.configuration.translations-customers-title" path="/admin/configuration/translations-customers-title">
        <default key="_controller">Thelia\Controller\Admin\TranslationsCustomerTitleController::defaultAction</default>
    </route>
    <route id="admin.configuration.translations-customers-title.update" path="/admin/configuration/translations-customers-title/update">
        <default key="_controller">Thelia\Controller\Admin\TranslationsCustomerTitleController::updateAction</default>
    </route>

    <!-- Routes to the Brands controller -->

    <route id="admin.brand.default" path="/admin/brand">
        <default key="_controller">Thelia\Controller\Admin\BrandController::defaultAction</default>
    </route>

    <route id="admin.brand.create" path="/admin/brand/create">
        <default key="_controller">Thelia\Controller\Admin\BrandController::createAction</default>
    </route>

    <route id="admin.brand.update" path="/admin/brand/update/{brand_id}">
        <default key="_controller">Thelia\Controller\Admin\BrandController::updateAction</default>
        <requirement key="brand_id">\d+</requirement>
    </route>

    <route id="admin.brand.save" path="/admin/brand/save/{brand_id}">
        <default key="_controller">Thelia\Controller\Admin\BrandController::processUpdateAction</default>
        <requirement key="brand_id">\d+</requirement>
    </route>

    <route id="admin.brand.seo.save" path="/admin/brand/seo/save">
        <default key="_controller">Thelia\Controller\Admin\BrandController::processUpdateSeoAction</default>
    </route>

    <route id="admin.brand.toggle-online" path="/admin/brand/toggle-online">
        <default key="_controller">Thelia\Controller\Admin\BrandController::setToggleVisibilityAction</default>
    </route>

    <route id="admin.brand.update-position" path="/admin/brand/update-position">
        <default key="_controller">Thelia\Controller\Admin\BrandController::updatePositionAction</default>
    </route>

    <route id="admin.brand.delete" path="/admin/brand/delete">
        <default key="_controller">Thelia\Controller\Admin\BrandController::deleteAction</default>
    </route>

    <!-- export management -->

    <route id="export.list" path="/admin/export" methods="get">
        <default key="_controller">Thelia\Controller\Admin\ExportController::indexAction</default>
    </route>

    <route id="export.position" path="/admin/export/position" methods="get">
        <default key="_controller">Thelia\Controller\Admin\ExportController::changeExportPositionAction</default>
    </route>

    <route id="export.category.position" path="/admin/export/position/category" methods="get">
        <default key="_controller">Thelia\Controller\Admin\ExportController::changeCategoryPositionAction</default>
    </route>

    <route id="export.view" path="/admin/export/{id}" methods="get">
        <default key="_controller">Thelia\Controller\Admin\ExportController::configureAction</default>

        <requirement key="id">\d+</requirement>
    </route>

    <route id="export.process" path="/admin/export/{id}" methods="post">
        <default key="_controller">Thelia\Controller\Admin\ExportController::exportAction</default>

        <requirement key="id">\d+</requirement>
    </route>

    <!-- import management -->

    <route id="import.list" path="/admin/import">
        <default key="_controller">Thelia\Controller\Admin\ImportController::indexAction</default>
    </route>

    <route id="import.position" path="/admin/import/position" methods="get">
        <default key="_controller">Thelia\Controller\Admin\ImportController::changeImportPositionAction</default>
    </route>

    <route id="import.category.position" path="/admin/import/position/category" methods="get">
        <default key="_controller">Thelia\Controller\Admin\ImportController::changeCategoryPositionAction</default>
    </route>

    <route id="import.view" path="/admin/import/{id}" methods="get">
        <default key="_controller">Thelia\Controller\Admin\ImportController::configureAction</default>

        <requirement key="id">\d+</requirement>
    </route>

    <route id="import.process" path="/admin/import/{id}" methods="post">
        <default key="_controller">Thelia\Controller\Admin\ImportController::importAction</default>

        <requirement key="id">\d+</requirement>
    </route>

    <!-- Routes to the sales & promotions management -->

    <route id="admin.sale.default" path="/admin/sales">
        <default key="_controller">Thelia\Controller\Admin\SaleController::defaultAction</default>
    </route>

    <route id="admin.sale.reset" path="/admin/sales/reset">
        <default key="_controller">Thelia\Controller\Admin\SaleController::resetSaleStatus</default>
    </route>

    <route id="admin.sale.check-activation" path="/admin/sales/check-activation">
        <default key="_controller">Thelia\Controller\Admin\SaleController::checkSalesActivationStatus</default>
    </route>

    <route id="admin.sale.create" path="/admin/sale/create">
        <default key="_controller">Thelia\Controller\Admin\SaleController::createAction</default>
    </route>

    <route id="admin.sale.update" path="/admin/sale/update/{sale_id}">
        <default key="_controller">Thelia\Controller\Admin\SaleController::updateAction</default>
        <requirement key="sale_id">\d+</requirement>
    </route>

    <route id="admin.sale.save" path="/admin/sale/save/{sale_id}">
        <default key="_controller">Thelia\Controller\Admin\SaleController::processUpdateAction</default>
        <requirement key="sale_id">\d+</requirement>
    </route>

    <route id="admin.sale.delete" path="/admin/sale/delete">
        <default key="_controller">Thelia\Controller\Admin\SaleController::deleteAction</default>
    </route>

    <route id="admin.sale.update.product.list" path="/admin/sale/update-product-list/{sale_id}">
        <default key="_controller">Thelia\Controller\Admin\SaleController::updateProductList</default>
        <requirement key="sale_id">\d+</requirement>
    </route>

    <route id="admin.sale.update.product.attribute.list" path="/admin/sale/update-product-attribute-list/{sale_id}/{product_id}">
        <default key="_controller">Thelia\Controller\Admin\SaleController::updateProductAttributes</default>
        <requirement key="sale_id">\d+</requirement>
        <requirement key="product_id">\d+</requirement>
    </route>

    <route id="admin.sale.toggleActivity" path="/admin/sale/toggle-activity/{sale_id}">
        <default key="_controller">Thelia\Controller\Admin\SaleController::toggleActivity</default>
        <requirement key="sale_id">\d+</requirement>
    </route>

    <!-- Preview message -->
    <route id="admin.email.preview_html" path="/admin/message/preview/{messageId}" methods="get">
        <default key="_controller">Thelia\Controller\Admin\MessageController::previewAsHtmlAction</default>
        <requirement key="messageId">\d+</requirement>
    </route>

    <route id="admin.email.preview_text" path="/admin/message/preview/text/{messageId}" methods="get">
        <default key="_controller">Thelia\Controller\Admin\MessageController::previewAsTextAction</default>
        <requirement key="messageId">\d+</requirement>
    </route>

    <route id="admin.email.test_send" path="/admin/message/send/{messageId}" methods="post">
        <default key="_controller">Thelia\Controller\Admin\MessageController::sendSampleByEmailAction</default>
        <requirement key="messageId">\d+</requirement>
    </route>

    <!-- The default route, to display a template -->

    <route id="admin.processTemplate" path="/admin/{template}">
        <default key="_controller">Thelia\Controller\Admin\AdminController::processTemplateAction</default>
        <requirement key="template">.*</requirement>
    </route>

</routes>
