<?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 administration base -->
    <route id="admin" path="/admin">
        <default key="_controller">Thelia\Controller\Admin\AdminController::indexAction</default>
    </route>

    <!-- home -->

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

    <route id="admin.home.stats" path="/admin/home/stats">
        <default key="_controller">Thelia\Controller\Admin\HomeController::loadStatsAjaxAction</default>
    </route>

    <!-- end home -->

    <!-- Route to the administration login page -->
    <route id="admin.login" path="/admin/login">
        <default key="_controller">Thelia\Controller\Admin\SessionController::showLoginAction</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>
    </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.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.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::indexAction</default>
    </route>

    <route id="admin.customer.update.view" path="/admin/customer/update/{customer_id}" methods="get">
        <default key="_controller">Thelia\Controller\Admin\CustomerController::viewAction</default>
        <requirement key="customer_id">\d+</requirement>
    </route>

    <route id="admin.customer.update.process" path="/admin/customer/update/{customer_id}" methods="post">
        <default key="_controller">Thelia\Controller\Admin\CustomerController::updateAction</default>
        <requirement key="customer_id">\d+</requirement>
    </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/{address_id}">
        <default key="_controller">Thelia\Controller\Admin\AddressController::updateAction</default>
        <requirement key="address_id">\d+</requirement>
    </route>

    <route id="admin.address.save" path="/admin/address/save/{address_id}">
        <default key="_controller">Thelia\Controller\Admin\AddressController::processUpdateAction</default>
        <requirement key="address_id">\d+</requirement>
    </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}">
        <default key="_controller">Thelia\Controller\Admin\OrderController::generateInvoicePdf</default>
        <requirement key="order_id">\d+</requirement>
    </route>

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

    <!-- end order 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.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-content.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>

    <route id="admin.category.ajax" path="/admin/catalog/category/parent/{parentId}.{_format}" methods="GET">
        <default key="_controller">Thelia\Controller\Admin\CategoryController::getByParentIdAction</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.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.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>


    <route id="admin.products.general.tab" path="/admin/products/general/tab">
        <default key="_controller">Thelia\Controller\Admin\ProductController::loadGeneralAjaxTabAction</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>

    <!-- 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::priceCaclulator</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>




    <!--  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.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.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.read" path="/admin/coupon/read/{couponId}">
        <default key="_controller">Thelia\Controller\Admin\CouponController::readAction</default>
        <requirement key="couponId">\d+</requirement>
    </route>
    <route id="admin.coupon.condition.input" path="/admin/coupon/condition/{conditionId}">
        <default key="_controller">Thelia\Controller\Admin\CouponController::getConditionInputAction</default>
        <requirement key="conditionId">.*</requirement>
    </route>
    <route id="admin.coupon.condition.update" path="/admin/coupon/{couponId}/condition/update">
        <default key="_controller">Thelia\Controller\Admin\CouponController::updateConditionsAction</default>
        <requirement key="couponId">\d+</requirement>
    </route>
    <route id="admin.coupon.consume" path="/admin/coupon/consume/{couponCode}">
        <default key="_controller">Thelia\Controller\Admin\CouponController::consumeAction</default>
        <requirement key="couponCode">.*</requirement>
    </route>

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

    <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 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.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>

    <route id="admin.configuration.currencies.update-position" path="/admin/configuration/currencies/update-position">
        <default key="_controller">Thelia\Controller\Admin\CurrencyController::updatePositionAction</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.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/{shipping_zones_id}" methods="get">
        <default key="_controller">Thelia\Controller\Admin\ShippingZoneController::updateAction</default>
        <requirement key="shipping_zones_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}" methods="get">
        <default key="_controller">Thelia\Controller\Admin\AreaController::updateAction</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>

    <!-- 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>

    <!-- end countries 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.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>

    <!-- 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 -->

    <!-- Modules rule management -->

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

    <route id="admin.module.toggle-activation" path="/admin/configuration/modules/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/configuration/modules/delete">
        <default key="_controller">Thelia\Controller\Admin\ModuleController::deleteAction</default>
    </route>

    <!-- end Modules 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>

    <!-- 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.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>

    <!-- 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>
