fin desktop
134
modules/advreassurance/advreassurance.php
Normal file
@ -0,0 +1,134 @@
|
||||
<?php
|
||||
|
||||
if (!defined('_CAN_LOAD_FILES_'))
|
||||
exit;
|
||||
|
||||
include_once(dirname(__FILE__) . '/classes/AdvRea.php');
|
||||
|
||||
class AdvReassurance extends Module
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->name = 'advreassurance';
|
||||
$this->tab = 'front_office_features';
|
||||
$this->version = '1.0';
|
||||
$this->author = 'Antadis';
|
||||
$this->need_instance = 0;
|
||||
|
||||
$this->bootstrap = true;
|
||||
parent::__construct();
|
||||
|
||||
$this->displayName = $this->l('Reassurance avancé');
|
||||
$this->description = $this->l('Gestion des blocks reassurance');
|
||||
}
|
||||
|
||||
public function install()
|
||||
{
|
||||
$sql = array();
|
||||
|
||||
$sql[] =
|
||||
'CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'advreassurance` (
|
||||
`id_reassurance` int(10) unsigned NOT NULL auto_increment,
|
||||
`position` INT(11) UNSIGNED NOT NULL default 0,
|
||||
`active` INT(11) UNSIGNED NOT NULL default 1,
|
||||
PRIMARY KEY (`id_reassurance`)
|
||||
) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=utf8';
|
||||
|
||||
$sql[] =
|
||||
'CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'advreassurance_lang` (
|
||||
`id_reassurance` int(10) unsigned NOT NULL,
|
||||
`id_lang` int(10) unsigned NOT NULL,
|
||||
`title` varchar(255) NOT NULL,
|
||||
`subtitle` varchar(255) NOT NULL,
|
||||
`url` varchar(255),
|
||||
PRIMARY KEY (`id_reassurance`,`id_lang`)
|
||||
) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=utf8';
|
||||
|
||||
$sql[] =
|
||||
'CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'advreassurance_shop` (
|
||||
`id_reassurance` int(10) unsigned NOT NULL auto_increment,
|
||||
`id_shop` int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (`id_reassurance`, `id_shop`)
|
||||
) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=utf8';
|
||||
|
||||
|
||||
foreach ($sql as $_sql) {
|
||||
Db::getInstance()->Execute($_sql);
|
||||
}
|
||||
|
||||
$tab = new Tab();
|
||||
$tab->class_name = 'AdminAdvReassurance';
|
||||
$tab->id_parent = Tab::getCurrentParentId();
|
||||
$tab->module = $this->name;
|
||||
$languages = Language::getLanguages();
|
||||
foreach ($languages as $language) {
|
||||
$tab->name[$language['id_lang']] = 'Reassurance';
|
||||
}
|
||||
|
||||
$img_dir = _PS_IMG_DIR_ . 'reassurance';
|
||||
$folder = is_dir($img_dir);
|
||||
if (!$folder)
|
||||
{
|
||||
$folder = mkdir($img_dir, 0755, true);
|
||||
}
|
||||
|
||||
return parent::install() && $tab->add() && $this->registerHook('displayReassurance') && $this->registerHook('actionRefreshReassurance') && $folder;
|
||||
|
||||
}
|
||||
|
||||
public function uninstall()
|
||||
{
|
||||
$sql = 'DROP TABLE IF EXISTS
|
||||
`' . _DB_PREFIX_ . 'advreassurance_lang`,
|
||||
`' . _DB_PREFIX_ . 'advreassurance_shop`,
|
||||
`' . _DB_PREFIX_ . 'advreassurance`
|
||||
';
|
||||
|
||||
Db::getInstance()->Execute($sql);
|
||||
|
||||
$idTab = Tab::getIdFromClassName('AdminAdvReassurance');
|
||||
if ($idTab) {
|
||||
$tab = new Tab($idTab);
|
||||
$tab->delete();
|
||||
}
|
||||
|
||||
return parent::uninstall();
|
||||
}
|
||||
|
||||
public function assignBlocks()
|
||||
{
|
||||
$blocks = AdvRea::getBlocks();
|
||||
if (!$blocks)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->smarty->assign('blocks', $blocks);
|
||||
}
|
||||
|
||||
public function hookDisplayReassurance($params)
|
||||
{
|
||||
if (!$this->isCached('advreassurance.tpl', $this->getCacheId()))
|
||||
{
|
||||
$this->assignBlocks();
|
||||
}
|
||||
|
||||
return $this->display(__FILE__, 'advreassurance.tpl', $this->getCacheId());
|
||||
}
|
||||
|
||||
public function hookDisplayReassuranceBottom($params)
|
||||
{
|
||||
if (!$this->isCached('advreassurance-bottom.tpl', $this->getCacheId()))
|
||||
{
|
||||
$this->assignBlocks();
|
||||
}
|
||||
|
||||
return $this->display(__FILE__, 'advreassurance-bottom.tpl', $this->getCacheId());
|
||||
}
|
||||
|
||||
public function hookActionRefreshReassurance()
|
||||
{
|
||||
$this->_clearCache('advreassurance');
|
||||
}
|
||||
|
||||
}
|
133
modules/advreassurance/classes/AdvRea.php
Normal file
@ -0,0 +1,133 @@
|
||||
<?php
|
||||
|
||||
class AdvRea extends ObjectModel {
|
||||
|
||||
public $id_reassurance;
|
||||
public $position;
|
||||
public $active;
|
||||
|
||||
public $title;
|
||||
public $subtitle;
|
||||
public $url;
|
||||
|
||||
public static $definition = array(
|
||||
'table' => 'advreassurance',
|
||||
'primary' => 'id_reassurance',
|
||||
'multilang' => TRUE,
|
||||
'fields' => array(
|
||||
'id_reassurance' => array('type' => self::TYPE_INT, 'validate' => 'isInt'),
|
||||
'position' => array('type' => self::TYPE_INT, 'validate' => 'isInt'),
|
||||
'active' => array('type' => self::TYPE_INT, 'validate' => 'isInt'),
|
||||
|
||||
// Lang fields
|
||||
'title' => array('type' => self::TYPE_STRING, 'lang' => TRUE, 'validate' => 'isGenericName', 'size' => 255),
|
||||
'subtitle' => array('type' => self::TYPE_STRING, 'lang' => TRUE, 'validate' => 'isGenericName', 'size' => 255),
|
||||
'url' => array('type' => self::TYPE_STRING, 'lang' => TRUE, 'validate' => 'isUrl', 'size' => 255)
|
||||
)
|
||||
);
|
||||
|
||||
public function __construct($id = NULL, $id_lang = NULL, $id_shop = NULL) {
|
||||
parent::__construct($id, $id_lang, $id_shop);
|
||||
|
||||
$this->image_dir = _PS_IMG_DIR_ . 'reassurance/';
|
||||
}
|
||||
|
||||
public function add($null_values = false, $autodate = true)
|
||||
{
|
||||
$result = parent::add($null_values, $autodate);
|
||||
Hook::exec('actionRefreshReassurance');
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function update($null_values = FALSE) {
|
||||
$result = parent::update($null_values);
|
||||
Hook::exec('actionRefreshReassurance');
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function delete($null_values = FALSE) {
|
||||
$result = parent::delete($null_values);
|
||||
Hook::exec('actionRefreshReassurance');
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public static function getBlocks()
|
||||
{
|
||||
$context = Context::getContext();
|
||||
|
||||
$reassurances = Db::getInstance()->executeS('
|
||||
SELECT *
|
||||
FROM `'._DB_PREFIX_.'advreassurance` adv
|
||||
JOIN `'._DB_PREFIX_.'advreassurance_lang` advl ON adv.`id_reassurance` = advl.`id_reassurance` AND id_lang = '. (int)$context->language->id . '
|
||||
WHERE adv.`active` = 1
|
||||
ORDER BY `position` ASC
|
||||
');
|
||||
|
||||
return $reassurances;
|
||||
}
|
||||
|
||||
public function cleanPositions(){
|
||||
return Db::getInstance()->execute('UPDATE `'._DB_PREFIX_.'advreassurance`
|
||||
SET `position`= `position` - 1
|
||||
WHERE `id_reassurance` = '.(int)$this->id_reassurance.'
|
||||
AND `position` > '.(int)$this->position);
|
||||
}
|
||||
|
||||
public function updatePosition($way, $position)
|
||||
{
|
||||
$sql = 'SELECT `position`, `id_reassurance`
|
||||
FROM `'._DB_PREFIX_.'advreassurance`
|
||||
ORDER BY `position` ASC';
|
||||
if (!$res = Db::getInstance()->executeS($sql))
|
||||
return false;
|
||||
|
||||
foreach ($res as $row)
|
||||
if ((int)$row['id_reassurance'] == (int)$this->id_reassurance)
|
||||
$moved_row = $row;
|
||||
|
||||
if (!isset($moved_row) || !isset($position))
|
||||
return false;
|
||||
|
||||
// < and > statements rather than BETWEEN operator
|
||||
// since BETWEEN is treated differently according to databases
|
||||
$res = Db::getInstance()->execute('
|
||||
UPDATE `'._DB_PREFIX_.'advreassurance`
|
||||
SET `position`= `position` '.($way ? '- 1' : '+ 1').'
|
||||
AND `position`
|
||||
'.($way
|
||||
? '> '.(int)$moved_row['position'].' AND `position` <= '.(int)$position
|
||||
: '< '.(int)$moved_row['position'].' AND `position` >= '.(int)$position)
|
||||
)
|
||||
&& Db::getInstance()->execute('
|
||||
UPDATE `'._DB_PREFIX_.'advreassurance`
|
||||
SET `position` = '.(int)$position.'
|
||||
WHERE `id_reassurance`='.(int)$moved_row['id_reassurance']
|
||||
);
|
||||
$this->refreshPositions();
|
||||
|
||||
Hook::exec('actionRefreshReassurance');
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
public function refreshPositions(){
|
||||
$sql = 'SELECT `id_reassurance`
|
||||
FROM `'._DB_PREFIX_.'advreassurance`
|
||||
ORDER BY `position` ASC';
|
||||
if (!$blocks = Db::getInstance()->executeS($sql))
|
||||
return false;
|
||||
|
||||
$pos=0;
|
||||
foreach ($blocks as $block) {
|
||||
Db::getInstance()->execute('
|
||||
UPDATE `'._DB_PREFIX_.'advreassurance`
|
||||
SET `position` = '.(int)$pos.'
|
||||
WHERE `id_reassurance`='.(int)$block['id_reassurance']);
|
||||
$pos++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
243
modules/advreassurance/controllers/admin/AdminAdvReassurance.php
Normal file
@ -0,0 +1,243 @@
|
||||
<?php
|
||||
include_once dirname(__FILE__).'/../../classes/AdvRea.php';
|
||||
|
||||
class AdminAdvReassuranceController extends ModuleAdminController {
|
||||
|
||||
public function __construct() {
|
||||
|
||||
$this->table = 'advreassurance';
|
||||
$this->className = 'AdvRea';
|
||||
$this->identifier = 'id_reassurance';
|
||||
$this->lang = TRUE;
|
||||
$this->deleted = FALSE;
|
||||
$this->bootstrap = TRUE;
|
||||
$this->fieldImageSettings = array(
|
||||
'name' => 'image',
|
||||
'dir' => 'reassurance'
|
||||
);
|
||||
$this->position_identifier = 'id_reassurance';
|
||||
$this->_defaultOrderBy = 'position';
|
||||
|
||||
parent::__construct();
|
||||
|
||||
$this->actions = array('edit', 'delete');
|
||||
|
||||
$this->fields_list = array(
|
||||
'id_reassurance' => array(
|
||||
'title' => 'ID',
|
||||
'width' => 25
|
||||
),
|
||||
'image' => array(
|
||||
'title' => $this->module->l('Image'),
|
||||
'image' => $this->fieldImageSettings['dir'],
|
||||
'width' => 75
|
||||
),
|
||||
'title' => array(
|
||||
'title' => $this->module->l('Titre'),
|
||||
),
|
||||
'subtitle' => array(
|
||||
'title' => $this->module->l('Sout-titre'),
|
||||
),
|
||||
'url' => array(
|
||||
'title' => $this->module->l('Url'),
|
||||
'width' => 45,
|
||||
),
|
||||
'position' => array(
|
||||
'title' => $this->l('Position'),
|
||||
'align' => 'center',
|
||||
'position' => 'position',
|
||||
'filter_key' => 'a!position'
|
||||
)
|
||||
);
|
||||
|
||||
if (Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_ALL){
|
||||
$this->_join .= 'JOIN `'._DB_PREFIX_.'advreassurance_shop` as ashop ON a.`id_reassurance` = ashop.`id_reassurance` AND ashop.`id_shop` IN ('.implode(', ', Shop::getContextListShopID()).') ';
|
||||
$this->_group .= 'GROUP BY ashop.`id_reassurance`';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function initPageHeaderToolbar() {
|
||||
parent::initPageHeaderToolbar();
|
||||
|
||||
if ($this->display != 'edit' && $this->display != 'add') {
|
||||
$this->page_header_toolbar_btn['new_link'] = array(
|
||||
'href' => self::$currentIndex.'&id_parent='.(int)Tools::getValue('id_reassurance').'&addadvreassurance&token='.$this->token,
|
||||
'desc' => $this->l('Ajouter un nouveau block', NULL, NULL, FALSE),
|
||||
'icon' => 'process-icon-new'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public function renderView() {
|
||||
return $this->renderList();
|
||||
}
|
||||
|
||||
public function renderForm() {
|
||||
|
||||
|
||||
$this->fields_form = array(
|
||||
'tinymce' => TRUE,
|
||||
'legend' => array(
|
||||
'title' => $this->className,
|
||||
),
|
||||
'submit' => array(
|
||||
'name' => 'submitAdvReassurancer',
|
||||
'title' => $this->l('Save'),
|
||||
),
|
||||
'input' => array(
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Titre'),
|
||||
'name' => 'title',
|
||||
'lang' => TRUE,
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Sous-titre'),
|
||||
'name' => 'subtitle',
|
||||
'lang' => TRUE,
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Lien'),
|
||||
'name' => 'url',
|
||||
'lang' => TRUE
|
||||
),
|
||||
array(
|
||||
'type' => 'switch',
|
||||
'label' => $this->l('Activé'),
|
||||
'name' => 'active',
|
||||
'required' => FALSE,
|
||||
'is_bool' => TRUE,
|
||||
'default' => 1,
|
||||
'values' => array(
|
||||
array(
|
||||
'id' => 'active_on',
|
||||
'value' => 1,
|
||||
'label' => $this->l('Enabled')
|
||||
),
|
||||
array(
|
||||
'id' => 'active_off',
|
||||
'value' => 0,
|
||||
'label' => $this->l('Disabled')
|
||||
)
|
||||
),
|
||||
),
|
||||
array(
|
||||
'type' => 'shop',
|
||||
'label' => $this->l('Shop'),
|
||||
'form_group_class' => 'fieldhide input_association',
|
||||
'name' => 'checkBoxShopAsso_advreassurance'
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$obj = $this->loadObject(TRUE);
|
||||
|
||||
$image = FALSE;
|
||||
$image_url = '';
|
||||
$image_size = '';
|
||||
|
||||
if($obj)
|
||||
{
|
||||
$image = _PS_IMG_DIR_ . 'reassurance/' . $obj->id.'.jpg';
|
||||
$image_url = ImageManager::thumbnail($image, $this->table.'_'.(int)$obj->id.'.'.$this->imageType, 350, $this->imageType, TRUE, TRUE);
|
||||
$image_size = file_exists($image) ? filesize($image) / 1000 : FALSE;
|
||||
}
|
||||
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'file',
|
||||
'label' => $this->l('Image'),
|
||||
'name' => 'image',
|
||||
'display_image' => TRUE,
|
||||
'lang' => TRUE,
|
||||
'image' => $image_url,
|
||||
'size' => $image_size,
|
||||
'delete_url' => self::$currentIndex.'&'.$this->identifier.'='.$this->object->id.'&token='.$this->token.'&deleteImage=1'
|
||||
);
|
||||
|
||||
return parent::renderForm();
|
||||
}
|
||||
|
||||
protected function copyFromPost(&$object, $table) {
|
||||
parent::copyFromPost($object, $table);
|
||||
|
||||
if(Shop::isFeatureActive())
|
||||
{
|
||||
$object->id_shop_list = array();
|
||||
foreach (Tools::getValue('checkBoxShopAsso_advreassurance') as $id_shop => $value)
|
||||
$object->id_shop_list[] = $id_shop;
|
||||
}
|
||||
}
|
||||
|
||||
public function postProcess() {
|
||||
if (Tools::getValue('deleteImage')) {
|
||||
$this->processForceDeleteImage();
|
||||
$this->refreshPreview();
|
||||
}
|
||||
return parent::postProcess();
|
||||
}
|
||||
|
||||
public function processForceDeleteImage() {
|
||||
$link = $this->loadObject(TRUE);
|
||||
|
||||
if (Validate::isLoadedObject($link))
|
||||
{
|
||||
$link->deleteImage(TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
protected function postImage($id) {
|
||||
$ret = parent::postImage($id);
|
||||
$this->refreshPreview();
|
||||
|
||||
if (isset($_FILES) && count($_FILES) && $_FILES['image']['name'] != NULL && !empty($this->object->id) )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
public function refreshPreview()
|
||||
{
|
||||
$current_preview = _PS_TMP_IMG_DIR_.'advreassurance_mini_'.$this->object->id_reassurance.'_'.$this->context->shop->id.'.jpg';
|
||||
|
||||
if (file_exists($current_preview)) {
|
||||
unlink($current_preview);
|
||||
}
|
||||
}
|
||||
|
||||
public function ajaxProcessUpdatePositions()
|
||||
{
|
||||
$way = (int)(Tools::getValue('way'));
|
||||
$id = (int)(Tools::getValue('id'));
|
||||
$positions = Tools::getValue('slide');
|
||||
$obj = 'advreassurance';
|
||||
|
||||
if (is_array($positions)){
|
||||
foreach ($positions as $position => $value)
|
||||
{
|
||||
$pos = explode('_', $value);
|
||||
|
||||
if (isset($pos[2]) && (int)$pos[2] === $id)
|
||||
{
|
||||
$menu_obj = new AdvRea((int)$pos[2]);
|
||||
|
||||
if (Validate::isLoadedObject($menu_obj))
|
||||
if (isset($position) && $menu_obj->updatePosition($way, $position))
|
||||
{
|
||||
echo 'ok position '.(int)$position.' for '.$obj.' '.(int)$pos[2]."\r\n";
|
||||
}
|
||||
else
|
||||
echo '{"hasError" : true, "errors" : "Can not update '.$obj.' '.(int)$id.' to position '.(int)$position.' "}';
|
||||
else
|
||||
echo '{"hasError" : true, "errors" : "This '.$obj.' ('.(int)$id.') cannot be loaded"}';
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
35
modules/advreassurance/index.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2014 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2014 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
|
||||
|
||||
header("Cache-Control: no-store, no-cache, must-revalidate");
|
||||
header("Cache-Control: post-check=0, pre-check=0", false);
|
||||
header("Pragma: no-cache");
|
||||
|
||||
header("Location: ../");
|
||||
exit;
|
14
modules/advreassurance/js/advslider.js
Normal file
BIN
modules/advreassurance/logo.gif
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
modules/advreassurance/logo.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
@ -0,0 +1,3 @@
|
||||
<!-- Block Advmenu module -->
|
||||
|
||||
<!-- /Block Advmenu module -->
|
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.4 KiB |
52
modules/prestaerp/logs/log_04-04-2016.log
Normal file
@ -0,0 +1,52 @@
|
||||
*CRITICAL* 2016/04/04 - 10:42:46: File name: ErpProductCombination.php - Line No: 293
|
||||
Message: HTTP/1.1 200 OK
|
||||
Server: nginx/1.1.19
|
||||
Date: Mon, 04 Apr 2016 08:47:09 GMT
|
||||
Content-Type: text/xml
|
||||
Content-Length: 325
|
||||
Connection: close
|
||||
|
||||
<?xml version='1.0'?>
|
||||
<methodResponse>
|
||||
<fault>
|
||||
<value><struct>
|
||||
<member>
|
||||
<name>faultCode</name>
|
||||
<value><string>warning -- Attention !
|
||||
|
||||
La quantité ne peut pas être négative.</string></value>
|
||||
</member>
|
||||
<member>
|
||||
<name>faultString</name>
|
||||
<value><string></string></value>
|
||||
</member>
|
||||
</struct></value>
|
||||
</fault>
|
||||
</methodResponse>
|
||||
|
||||
*CRITICAL* 2016/04/04 - 10:42:47: File name: ErpProductCombination.php - Line No: 293
|
||||
Message: HTTP/1.1 200 OK
|
||||
Server: nginx/1.1.19
|
||||
Date: Mon, 04 Apr 2016 08:47:09 GMT
|
||||
Content-Type: text/xml
|
||||
Content-Length: 325
|
||||
Connection: close
|
||||
|
||||
<?xml version='1.0'?>
|
||||
<methodResponse>
|
||||
<fault>
|
||||
<value><struct>
|
||||
<member>
|
||||
<name>faultCode</name>
|
||||
<value><string>warning -- Attention !
|
||||
|
||||
La quantité ne peut pas être négative.</string></value>
|
||||
</member>
|
||||
<member>
|
||||
<name>faultString</name>
|
||||
<value><string></string></value>
|
||||
</member>
|
||||
</struct></value>
|
||||
</fault>
|
||||
</methodResponse>
|
||||
|
265
override/classes/Cart.php
Normal file
@ -0,0 +1,265 @@
|
||||
<?php
|
||||
|
||||
class Cart extends CartCore
|
||||
{
|
||||
public function getProducts($refresh = false, $id_product = false, $id_country = null)
|
||||
{
|
||||
if (!$this->id) {
|
||||
return array();
|
||||
}
|
||||
// Product cache must be strictly compared to NULL, or else an empty cart will add dozens of queries
|
||||
if ($this->_products !== null && !$refresh) {
|
||||
// Return product row with specified ID if it exists
|
||||
if (is_int($id_product)) {
|
||||
foreach ($this->_products as $product) {
|
||||
if ($product['id_product'] == $id_product) {
|
||||
return array($product);
|
||||
}
|
||||
}
|
||||
return array();
|
||||
}
|
||||
return $this->_products;
|
||||
}
|
||||
|
||||
// Build query
|
||||
$sql = new DbQuery();
|
||||
|
||||
// Build SELECT
|
||||
$sql->select('cp.`id_product_attribute`, cp.`id_product`, cp.`quantity` AS cart_quantity, cp.id_shop, pl.`name`, p.`is_virtual`,
|
||||
pl.`description_short`, pl.`available_now`, pl.`available_later`, product_shop.`id_category_default`, p.`id_supplier`,
|
||||
p.`id_manufacturer`, p.`nb_per_box`, product_shop.`on_sale`, product_shop.`ecotax`, product_shop.`additional_shipping_cost`,
|
||||
product_shop.`available_for_order`, product_shop.`price`, product_shop.`active`, product_shop.`unity`, product_shop.`unit_price_ratio`,
|
||||
stock.`quantity` AS quantity_available, p.`width`, p.`height`, p.`depth`, stock.`out_of_stock`, p.`weight`,
|
||||
p.`date_add`, p.`date_upd`, IFNULL(stock.quantity, 0) as quantity, pl.`link_rewrite`, cl.`link_rewrite` AS category,
|
||||
CONCAT(LPAD(cp.`id_product`, 10, 0), LPAD(IFNULL(cp.`id_product_attribute`, 0), 10, 0), IFNULL(cp.`id_address_delivery`, 0)) AS unique_id, cp.id_address_delivery,
|
||||
product_shop.advanced_stock_management, ps.product_supplier_reference supplier_reference');
|
||||
|
||||
// Build FROM
|
||||
$sql->from('cart_product', 'cp');
|
||||
|
||||
// Build JOIN
|
||||
$sql->leftJoin('product', 'p', 'p.`id_product` = cp.`id_product`');
|
||||
$sql->innerJoin('product_shop', 'product_shop', '(product_shop.`id_shop` = cp.`id_shop` AND product_shop.`id_product` = p.`id_product`)');
|
||||
$sql->leftJoin('product_lang', 'pl', '
|
||||
p.`id_product` = pl.`id_product`
|
||||
AND pl.`id_lang` = '.(int)$this->id_lang.Shop::addSqlRestrictionOnLang('pl', 'cp.id_shop')
|
||||
);
|
||||
|
||||
$sql->leftJoin('category_lang', 'cl', '
|
||||
product_shop.`id_category_default` = cl.`id_category`
|
||||
AND cl.`id_lang` = '.(int)$this->id_lang.Shop::addSqlRestrictionOnLang('cl', 'cp.id_shop')
|
||||
);
|
||||
|
||||
$sql->leftJoin('product_supplier', 'ps', 'ps.`id_product` = cp.`id_product` AND ps.`id_product_attribute` = cp.`id_product_attribute` AND ps.`id_supplier` = p.`id_supplier`');
|
||||
|
||||
// @todo test if everything is ok, then refactorise call of this method
|
||||
$sql->join(Product::sqlStock('cp', 'cp'));
|
||||
|
||||
// Build WHERE clauses
|
||||
$sql->where('cp.`id_cart` = '.(int)$this->id);
|
||||
if ($id_product) {
|
||||
$sql->where('cp.`id_product` = '.(int)$id_product);
|
||||
}
|
||||
$sql->where('p.`id_product` IS NOT NULL');
|
||||
|
||||
// Build ORDER BY
|
||||
$sql->orderBy('cp.`date_add`, cp.`id_product`, cp.`id_product_attribute` ASC');
|
||||
|
||||
if (Customization::isFeatureActive()) {
|
||||
$sql->select('cu.`id_customization`, cu.`quantity` AS customization_quantity');
|
||||
$sql->leftJoin('customization', 'cu',
|
||||
'p.`id_product` = cu.`id_product` AND cp.`id_product_attribute` = cu.`id_product_attribute` AND cu.`id_cart` = '.(int)$this->id);
|
||||
$sql->groupBy('cp.`id_product_attribute`, cp.`id_product`, cp.`id_shop`');
|
||||
} else {
|
||||
$sql->select('NULL AS customization_quantity, NULL AS id_customization');
|
||||
}
|
||||
|
||||
if (Combination::isFeatureActive()) {
|
||||
$sql->select('
|
||||
product_attribute_shop.`price` AS price_attribute, product_attribute_shop.`ecotax` AS ecotax_attr,
|
||||
IF (IFNULL(pa.`reference`, \'\') = \'\', p.`reference`, pa.`reference`) AS reference,
|
||||
(p.`weight`+ pa.`weight`) weight_attribute,
|
||||
IF (IFNULL(pa.`ean13`, \'\') = \'\', p.`ean13`, pa.`ean13`) AS ean13,
|
||||
IF (IFNULL(pa.`upc`, \'\') = \'\', p.`upc`, pa.`upc`) AS upc,
|
||||
IFNULL(product_attribute_shop.`minimal_quantity`, product_shop.`minimal_quantity`) as minimal_quantity,
|
||||
IF(product_attribute_shop.wholesale_price > 0, product_attribute_shop.wholesale_price, product_shop.`wholesale_price`) wholesale_price
|
||||
');
|
||||
|
||||
$sql->leftJoin('product_attribute', 'pa', 'pa.`id_product_attribute` = cp.`id_product_attribute`');
|
||||
$sql->leftJoin('product_attribute_shop', 'product_attribute_shop', '(product_attribute_shop.`id_shop` = cp.`id_shop` AND product_attribute_shop.`id_product_attribute` = pa.`id_product_attribute`)');
|
||||
} else {
|
||||
$sql->select(
|
||||
'p.`reference` AS reference, p.`ean13`,
|
||||
p.`upc` AS upc, product_shop.`minimal_quantity` AS minimal_quantity, product_shop.`wholesale_price` wholesale_price'
|
||||
);
|
||||
}
|
||||
|
||||
$sql->select('image_shop.`id_image` id_image, il.`legend`');
|
||||
$sql->leftJoin('image_shop', 'image_shop', 'image_shop.`id_product` = p.`id_product` AND image_shop.cover=1 AND image_shop.id_shop='.(int)$this->id_shop);
|
||||
$sql->leftJoin('image_lang', 'il', 'il.`id_image` = image_shop.`id_image` AND il.`id_lang` = '.(int)$this->id_lang);
|
||||
|
||||
$result = Db::getInstance()->executeS($sql);
|
||||
|
||||
// Reset the cache before the following return, or else an empty cart will add dozens of queries
|
||||
$products_ids = array();
|
||||
$pa_ids = array();
|
||||
if ($result) {
|
||||
foreach ($result as $key => $row) {
|
||||
$products_ids[] = $row['id_product'];
|
||||
$pa_ids[] = $row['id_product_attribute'];
|
||||
$specific_price = SpecificPrice::getSpecificPrice($row['id_product'], $this->id_shop, $this->id_currency, $id_country, $this->id_shop_group, $row['cart_quantity'], $row['id_product_attribute'], $this->id_customer, $this->id);
|
||||
if ($specific_price) {
|
||||
$reduction_type_row = array('reduction_type' => $specific_price['reduction_type']);
|
||||
} else {
|
||||
$reduction_type_row = array('reduction_type' => 0);
|
||||
}
|
||||
|
||||
$result[$key] = array_merge($row, $reduction_type_row);
|
||||
}
|
||||
}
|
||||
// Thus you can avoid one query per product, because there will be only one query for all the products of the cart
|
||||
Product::cacheProductsFeatures($products_ids);
|
||||
Cart::cacheSomeAttributesLists($pa_ids, $this->id_lang);
|
||||
|
||||
$this->_products = array();
|
||||
if (empty($result)) {
|
||||
return array();
|
||||
}
|
||||
|
||||
$ecotax_rate = (float)Tax::getProductEcotaxRate($this->{Configuration::get('PS_TAX_ADDRESS_TYPE')});
|
||||
$apply_eco_tax = Product::$_taxCalculationMethod == PS_TAX_INC && (int)Configuration::get('PS_TAX');
|
||||
$cart_shop_context = Context::getContext()->cloneContext();
|
||||
|
||||
foreach ($result as &$row) {
|
||||
if (isset($row['ecotax_attr']) && $row['ecotax_attr'] > 0) {
|
||||
$row['ecotax'] = (float)$row['ecotax_attr'];
|
||||
}
|
||||
|
||||
$row['stock_quantity'] = (int)$row['quantity'];
|
||||
// for compatibility with 1.2 themes
|
||||
$row['quantity'] = (int)$row['cart_quantity'];
|
||||
|
||||
if (isset($row['id_product_attribute']) && (int)$row['id_product_attribute'] && isset($row['weight_attribute'])) {
|
||||
$row['weight'] = (float)$row['weight_attribute'];
|
||||
}
|
||||
|
||||
if (Configuration::get('PS_TAX_ADDRESS_TYPE') == 'id_address_invoice') {
|
||||
$address_id = (int)$this->id_address_invoice;
|
||||
} else {
|
||||
$address_id = (int)$row['id_address_delivery'];
|
||||
}
|
||||
if (!Address::addressExists($address_id)) {
|
||||
$address_id = null;
|
||||
}
|
||||
|
||||
if ($cart_shop_context->shop->id != $row['id_shop']) {
|
||||
$cart_shop_context->shop = new Shop((int)$row['id_shop']);
|
||||
}
|
||||
|
||||
$address = Address::initialize($address_id, true);
|
||||
$id_tax_rules_group = Product::getIdTaxRulesGroupByIdProduct((int)$row['id_product'], $cart_shop_context);
|
||||
$tax_calculator = TaxManagerFactory::getManager($address, $id_tax_rules_group)->getTaxCalculator();
|
||||
|
||||
$row['price_without_reduction'] = Product::getPriceStatic(
|
||||
(int)$row['id_product'],
|
||||
true,
|
||||
isset($row['id_product_attribute']) ? (int)$row['id_product_attribute'] : null,
|
||||
6,
|
||||
null,
|
||||
false,
|
||||
false,
|
||||
$row['cart_quantity'],
|
||||
false,
|
||||
(int)$this->id_customer ? (int)$this->id_customer : null,
|
||||
(int)$this->id,
|
||||
$address_id,
|
||||
$specific_price_output,
|
||||
true,
|
||||
true,
|
||||
$cart_shop_context
|
||||
);
|
||||
|
||||
$row['price_with_reduction'] = Product::getPriceStatic(
|
||||
(int)$row['id_product'],
|
||||
true,
|
||||
isset($row['id_product_attribute']) ? (int)$row['id_product_attribute'] : null,
|
||||
6,
|
||||
null,
|
||||
false,
|
||||
true,
|
||||
$row['cart_quantity'],
|
||||
false,
|
||||
(int)$this->id_customer ? (int)$this->id_customer : null,
|
||||
(int)$this->id,
|
||||
$address_id,
|
||||
$specific_price_output,
|
||||
true,
|
||||
true,
|
||||
$cart_shop_context
|
||||
);
|
||||
|
||||
$row['price'] = $row['price_with_reduction_without_tax'] = Product::getPriceStatic(
|
||||
(int)$row['id_product'],
|
||||
false,
|
||||
isset($row['id_product_attribute']) ? (int)$row['id_product_attribute'] : null,
|
||||
6,
|
||||
null,
|
||||
false,
|
||||
true,
|
||||
$row['cart_quantity'],
|
||||
false,
|
||||
(int)$this->id_customer ? (int)$this->id_customer : null,
|
||||
(int)$this->id,
|
||||
$address_id,
|
||||
$specific_price_output,
|
||||
true,
|
||||
true,
|
||||
$cart_shop_context
|
||||
);
|
||||
|
||||
switch (Configuration::get('PS_ROUND_TYPE')) {
|
||||
case Order::ROUND_TOTAL:
|
||||
$row['total'] = $row['price_with_reduction_without_tax'] * (int)$row['cart_quantity'];
|
||||
$row['total_wt'] = $row['price_with_reduction'] * (int)$row['cart_quantity'];
|
||||
break;
|
||||
case Order::ROUND_LINE:
|
||||
$row['total'] = Tools::ps_round($row['price_with_reduction_without_tax'] * (int)$row['cart_quantity'], _PS_PRICE_COMPUTE_PRECISION_);
|
||||
$row['total_wt'] = Tools::ps_round($row['price_with_reduction'] * (int)$row['cart_quantity'], _PS_PRICE_COMPUTE_PRECISION_);
|
||||
break;
|
||||
|
||||
case Order::ROUND_ITEM:
|
||||
default:
|
||||
$row['total'] = Tools::ps_round($row['price_with_reduction_without_tax'], _PS_PRICE_COMPUTE_PRECISION_) * (int)$row['cart_quantity'];
|
||||
$row['total_wt'] = Tools::ps_round($row['price_with_reduction'], _PS_PRICE_COMPUTE_PRECISION_) * (int)$row['cart_quantity'];
|
||||
break;
|
||||
}
|
||||
|
||||
$row['price_wt'] = $row['price_with_reduction'];
|
||||
$row['description_short'] = Tools::nl2br($row['description_short']);
|
||||
|
||||
// check if a image associated with the attribute exists
|
||||
if ($row['id_product_attribute']) {
|
||||
$row2 = Image::getBestImageAttribute($row['id_shop'], $this->id_lang, $row['id_product'], $row['id_product_attribute']);
|
||||
if ($row2) {
|
||||
$row = array_merge($row, $row2);
|
||||
}
|
||||
}
|
||||
|
||||
$row['reduction_applies'] = ($specific_price_output && (float)$specific_price_output['reduction']);
|
||||
$row['quantity_discount_applies'] = ($specific_price_output && $row['cart_quantity'] >= (int)$specific_price_output['from_quantity']);
|
||||
$row['id_image'] = Product::defineProductImage($row, $this->id_lang);
|
||||
$row['allow_oosp'] = Product::isAvailableWhenOutOfStock($row['out_of_stock']);
|
||||
$row['features'] = Product::getFeaturesStatic((int)$row['id_product']);
|
||||
|
||||
if (array_key_exists($row['id_product_attribute'].'-'.$this->id_lang, self::$_attributesLists)) {
|
||||
$row = array_merge($row, self::$_attributesLists[$row['id_product_attribute'].'-'.$this->id_lang]);
|
||||
}
|
||||
|
||||
$row = Product::getTaxesInformations($row, $cart_shop_context);
|
||||
|
||||
$this->_products[] = $row;
|
||||
}
|
||||
|
||||
return $this->_products;
|
||||
}
|
||||
}
|
@ -310,4 +310,84 @@ class AuthController extends AuthControllerCore
|
||||
$this->context->smarty->assign('account_error', $this->errors);
|
||||
}
|
||||
}
|
||||
|
||||
protected function processSubmitLogin()
|
||||
{
|
||||
Hook::exec('actionBeforeAuthentication');
|
||||
$passwd = trim(Tools::getValue('passwd'));
|
||||
$_POST['passwd'] = null;
|
||||
$email = trim(Tools::getValue('email'));
|
||||
if (empty($email)) {
|
||||
$this->errors[] = Tools::displayError('An email address required.');
|
||||
} elseif (!Validate::isEmail($email)) {
|
||||
$this->errors[] = Tools::displayError('Invalid email address.');
|
||||
} elseif (empty($passwd)) {
|
||||
$this->errors[] = Tools::displayError('Password is required.');
|
||||
} elseif (!Validate::isPasswd($passwd)) {
|
||||
$this->errors[] = Tools::displayError('Invalid password.');
|
||||
} else {
|
||||
$customer = new Customer();
|
||||
$authentication = $customer->getByEmail(trim($email), trim($passwd));
|
||||
if (isset($authentication->active) && !$authentication->active) {
|
||||
$this->errors[] = Tools::displayError('Your account isn\'t available at this time, please contact us');
|
||||
} elseif (!$authentication || !$customer->id) {
|
||||
$this->errors[] = Tools::displayError('Authentication failed.');
|
||||
} else {
|
||||
$this->context->cookie->id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare: CompareProduct::getIdCompareByIdCustomer($customer->id);
|
||||
$this->context->cookie->id_customer = (int)($customer->id);
|
||||
$this->context->cookie->customer_lastname = $customer->lastname;
|
||||
$this->context->cookie->customer_firstname = $customer->firstname;
|
||||
$this->context->cookie->logged = 1;
|
||||
$customer->logged = 1;
|
||||
$this->context->cookie->is_guest = $customer->isGuest();
|
||||
$this->context->cookie->passwd = $customer->passwd;
|
||||
$this->context->cookie->email = $customer->email;
|
||||
|
||||
// Add customer to the context
|
||||
$this->context->customer = $customer;
|
||||
|
||||
if (Configuration::get('PS_CART_FOLLOWING') && (empty($this->context->cookie->id_cart) || Cart::getNbProducts($this->context->cookie->id_cart) == 0) && $id_cart = (int)Cart::lastNoneOrderedCart($this->context->customer->id)) {
|
||||
$this->context->cart = new Cart($id_cart);
|
||||
} else {
|
||||
$id_carrier = (int)$this->context->cart->id_carrier;
|
||||
$this->context->cart->id_carrier = 0;
|
||||
$this->context->cart->setDeliveryOption(null);
|
||||
$this->context->cart->id_address_delivery = (int)Address::getFirstCustomerAddressId((int)($customer->id));
|
||||
$this->context->cart->id_address_invoice = (int)Address::getFirstCustomerAddressId((int)($customer->id));
|
||||
}
|
||||
$this->context->cart->id_customer = (int)$customer->id;
|
||||
$this->context->cart->secure_key = $customer->secure_key;
|
||||
|
||||
if ($this->ajax && isset($id_carrier) && $id_carrier && Configuration::get('PS_ORDER_PROCESS_TYPE')) {
|
||||
$delivery_option = array($this->context->cart->id_address_delivery => $id_carrier.',');
|
||||
$this->context->cart->setDeliveryOption($delivery_option);
|
||||
}
|
||||
|
||||
$this->context->cart->save();
|
||||
$this->context->cookie->id_cart = (int)$this->context->cart->id;
|
||||
$this->context->cookie->write();
|
||||
$this->context->cart->autosetProductAddress();
|
||||
|
||||
Hook::exec('actionAuthentication', array('customer' => $this->context->customer));
|
||||
|
||||
// Login information have changed, so we check if the cart rules still apply
|
||||
CartRule::autoRemoveFromCart($this->context);
|
||||
CartRule::autoAddToCart($this->context);
|
||||
|
||||
if (!$this->ajax) {
|
||||
Tools::redirect($this->context->link->getCategoryLink(IndexController::CATEGORY));
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($this->ajax) {
|
||||
$return = array(
|
||||
'hasError' => !empty($this->errors),
|
||||
'errors' => $this->errors,
|
||||
'token' => Tools::getToken(false)
|
||||
);
|
||||
$this->ajaxDie(Tools::jsonEncode($return));
|
||||
} else {
|
||||
$this->context->smarty->assign('authentification_error', $this->errors);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,13 @@
|
||||
|
||||
class CategoryController extends CategoryControllerCore
|
||||
{
|
||||
public function init()
|
||||
{
|
||||
$this->addJS(_THEME_JS_DIR_.'tools/flexslider.js');
|
||||
|
||||
parent::init();
|
||||
}
|
||||
|
||||
public function initContent()
|
||||
{
|
||||
if($this->category->id == Category::CATEGORY_COLLECTION)
|
||||
|
@ -13,6 +13,12 @@ class OrderConfirmationController extends OrderConfirmationControllerCore
|
||||
|
||||
$summary = $cart->getSummaryDetails();
|
||||
|
||||
$productNumber = 0;
|
||||
foreach($summary['products'] as $product)
|
||||
{
|
||||
$productNumber += $product['cart_quantity'];
|
||||
}
|
||||
|
||||
$this->context->smarty->assign(
|
||||
array(
|
||||
'customer' => $customer,
|
||||
@ -25,6 +31,8 @@ class OrderConfirmationController extends OrderConfirmationControllerCore
|
||||
'gift_products' => $summary['gift_products'],
|
||||
'noDeleteButton' => true,
|
||||
|
||||
'productNumber' => $productNumber,
|
||||
'total_products' => $summary['total_products'],
|
||||
'total_products_wt' => $summary['total_products_wt'],
|
||||
'total_shipping_tax_exc' => $summary['total_shipping_tax_exc'],
|
||||
'total_price' => $summary['total_price'],
|
||||
|
@ -18,6 +18,12 @@ class ParentOrderController extends ParentOrderControllerCore
|
||||
|
||||
protected function _assignSummaryInformations()
|
||||
{
|
||||
if(Tools::getIsset('emptyCart'))
|
||||
{
|
||||
$this->context->cart->delete();
|
||||
Tools::redirect($this->context->link->getPageLink('order'));
|
||||
}
|
||||
|
||||
$summary = $this->context->cart->getSummaryDetails();
|
||||
|
||||
$customizedDatas = Product::getAllCustomizedDatas($this->context->cart->id);
|
||||
@ -69,12 +75,6 @@ class ParentOrderController extends ParentOrderControllerCore
|
||||
$product['is_discounted'] = $product['price_without_specific_price'] != $product['price_wt'];
|
||||
}
|
||||
|
||||
$summary['nbProducts'] = 0;
|
||||
foreach ($summary['products'] as $product)
|
||||
{
|
||||
$summary['nbProducts'] += (int)$product['cart_quantity'];
|
||||
}
|
||||
|
||||
// Get available cart rules and unset the cart rules already in the cart
|
||||
$available_cart_rules = CartRule::getCustomerCartRules($this->context->language->id, (isset($this->context->customer->id) ? $this->context->customer->id : 0), true, true, true, $this->context->cart);
|
||||
$cart_cart_rules = $this->context->cart->getCartRules();
|
||||
@ -122,6 +122,7 @@ class ParentOrderController extends ParentOrderControllerCore
|
||||
'HOOK_SHOPPING_CART_EXTRA' => Hook::exec('displayShoppingCart', $summary),
|
||||
'DISPLAY_CART_SUMMARY_STOCK_INFO' => Hook::exec('displayCartSummaryStockInfo', $summary)
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -13,18 +13,17 @@
|
||||
{foreach $option_list as $key => $option}
|
||||
<div class="delivery-option clearfix delivery-{$key|replace:',':''} radio-box">
|
||||
<div class="inner">
|
||||
<div class="lg2 xs3 xxs2 radio-button valign-middle">
|
||||
<div class="sm3 xs3 xxs2 radio-button valign-middle">
|
||||
<input id="delivery_option_{$id_address|intval}_{$option@index}" class="custom-input inline delivery_option_radio" type="radio" name="delivery_option[{$id_address|intval}]" data-key="{$key}" data-id_address="{$id_address|intval}" value="{$key}"{if isset($delivery_option[$id_address]) && $delivery_option[$id_address] == $key} checked="checked"{/if} />
|
||||
{foreach $option.carrier_list as $carrier}
|
||||
{if $carrier.logo}
|
||||
<img class="hidden-xs hidden-xxs" src="{$carrier.logo|escape:'htmlall':'UTF-8'}" alt="{$carrier.instance->name|escape:'htmlall':'UTF-8'}"/>
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
<input id="delivery_option_{$id_address|intval}_{$option@index}" class="custom-input inline delivery_option_radio" type="radio" name="delivery_option[{$id_address|intval}]" data-key="{$key}" data-id_address="{$id_address|intval}" value="{$key}"{if isset($delivery_option[$id_address]) && $delivery_option[$id_address] == $key} checked="checked"{/if} />
|
||||
|
||||
</div>
|
||||
|
||||
<div class="lg8 xs6 xxs5 desc">
|
||||
<div class="sm7 xs6 xxs5 desc">
|
||||
<span class="carrier-name">{$carrier.instance->name|escape:'htmlall':'UTF-8'}</span>
|
||||
{if isset($carrier.instance->delay[$cookie->id_lang])}
|
||||
{$carrier.instance->delay[$cookie->id_lang]|escape:'htmlall':'UTF-8'}
|
||||
{/if}
|
||||
|
@ -205,8 +205,27 @@ body.content_only { margin: 0 }
|
||||
|
||||
|
||||
#footer {
|
||||
background: #1f1f1f;
|
||||
color: #fff;
|
||||
padding: 45px 15px;
|
||||
}
|
||||
|
||||
#footer li {
|
||||
padding-right: 5%;
|
||||
}
|
||||
#footer li .title {
|
||||
border-right: 1px solid #fff;
|
||||
display: block;
|
||||
font-family: 'ITCAvantGarde';
|
||||
font-size: 14px;
|
||||
padding: 0 0 10px 0;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
#footer li:last-child .title { border: 0; }
|
||||
#footer li .subtitle {
|
||||
border-right: 1px solid #fff;
|
||||
display: block;
|
||||
}
|
||||
#footer li:last-child .subtitle { border: 0; }
|
||||
|
||||
@media (max-width: 1199px) {
|
||||
|
||||
@ -248,8 +267,8 @@ body.content_only { margin: 0 }
|
||||
color: #828282;
|
||||
}
|
||||
#order_step li.step_current { color: #fff; z-index: 5; }
|
||||
#order_step li.step_done { background: #f25f0f; border-left: 1px solid #bb5100; color: #fff }
|
||||
#order_step li.step_done a { color: #fff; font-weight: 600 }
|
||||
#order_step li.step_done { color: #828282 }
|
||||
#order_step li.step_done a { color: #828282; text-decoration: none; }
|
||||
#order_step li a { color: #333; }
|
||||
|
||||
#shopping-cart-products {
|
||||
@ -337,7 +356,9 @@ body.content_only { margin: 0 }
|
||||
width: 55px;
|
||||
}
|
||||
#shopping-cart-products .product-stock {
|
||||
font-size: 12px;
|
||||
font-size: 13px;
|
||||
line-height: 15px;
|
||||
padding: 0 60px;
|
||||
}
|
||||
#shopping-cart-products .product-stock span:before {
|
||||
background: #3fd9ac;
|
||||
@ -382,87 +403,147 @@ body.content_only { margin: 0 }
|
||||
}
|
||||
#shopping-cart-calcul .discount_form {
|
||||
background: #fff;
|
||||
border: 1px solid #f0f0f0;
|
||||
border: 3px solid #f0f0f0;
|
||||
padding: 20px;
|
||||
position: relative;
|
||||
z-index: 1
|
||||
}
|
||||
#shopping-cart-calcul .discount_form .inner {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
#shopping-cart-calcul .discount_form label {
|
||||
display: block;
|
||||
margin-bottom: 25px;
|
||||
position: relative;
|
||||
}
|
||||
#shopping-cart-calcul .discount_form label span {
|
||||
background: #fff;
|
||||
color: #363842;
|
||||
display: block;
|
||||
font-family: 'ITCAvantGarde';
|
||||
font-size: 12px;
|
||||
padding: 0 0 20px 0;
|
||||
margin-bottom: 10px;
|
||||
position: relative;
|
||||
text-transform: uppercase;
|
||||
z-index: 3;
|
||||
}
|
||||
#shopping-cart-calcul .discount_form label:before {
|
||||
box-shadow: 0 0 20px 0px rgba(0, 0, 0, 0.3);
|
||||
border-radius: 500px;
|
||||
content: "";
|
||||
display: block;
|
||||
height: 40%;
|
||||
left: 20%;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 60%;
|
||||
z-index: 1;
|
||||
}
|
||||
#shopping-cart-calcul .discount_form .discount_name {
|
||||
background: #f4f4f4;
|
||||
border: 1px solid #e1e1e1;
|
||||
border-radius: 2px;
|
||||
color: #333;
|
||||
float: left;
|
||||
height: 40px;
|
||||
padding: 0 65px 0 10px;
|
||||
width: 70%;
|
||||
}
|
||||
#shopping-cart-calcul .discount_form .btn {
|
||||
background: #202020;
|
||||
background: -webkit-linear-gradient(top, #202020, #0a0a0a);
|
||||
background: -o-linear-gradient(top, #202020, #0a0a0a);
|
||||
background: -moz-linear-gradient(top, #202020, #0a0a0a);
|
||||
background: linear-gradient(to top, #202020, #0a0a0a);
|
||||
border-color: #363842;
|
||||
border-radius: 2px;
|
||||
color: #fff;
|
||||
float: right;
|
||||
font-family: 'ITCAvantGarde';
|
||||
font-size: 14px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
padding: 0;
|
||||
text-transform: uppercase;
|
||||
text-align: center;
|
||||
width: 28%;
|
||||
}
|
||||
#shopping-cart-calcul .featured-voucher {
|
||||
background: #fff;
|
||||
border: 3px solid #f0f0f0;
|
||||
margin-bottom: 30px;
|
||||
padding: 25px;
|
||||
position: relative;
|
||||
z-index: 1
|
||||
}
|
||||
#shopping-cart-calcul .discount_form .inner {
|
||||
position: relative;
|
||||
}
|
||||
#shopping-cart-calcul .discount_form label {
|
||||
#shopping-cart-calcul .featured-voucher .title {
|
||||
background: #fff;
|
||||
color: #363842;
|
||||
display: inline-block;
|
||||
font-family: 'Oswald';
|
||||
font-size: 16px;
|
||||
display: block;
|
||||
font-family: 'ITCAvantGarde';
|
||||
font-size: 12px;
|
||||
padding: 10px 0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#shopping-cart-calcul .discount_form .discount_name {
|
||||
border: 1px solid #363842;
|
||||
height: 40px;
|
||||
padding: 0 65px 0 10px;
|
||||
width: 100%;
|
||||
}
|
||||
#shopping-cart-calcul .discount_form .btn {
|
||||
background: #363842;
|
||||
border-color: #363842;
|
||||
border-radius: 0 2px 2px 0;
|
||||
font-family: 'OpenSans';
|
||||
font-size: 16px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
position: relative;
|
||||
text-transform: uppercase;
|
||||
text-align: center;
|
||||
top: 0;
|
||||
width: 65px;
|
||||
z-index: 3;
|
||||
}
|
||||
#shopping-cart-calcul .featured-voucher .voucher_name {
|
||||
cursor: pointer;
|
||||
padding-left: 15px;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#shopping-cart-calcul .line {
|
||||
background: #f1f1f1;
|
||||
border-top: 1px solid #e5e5e5;
|
||||
color: #333;
|
||||
clear: both;
|
||||
font-family: 'OpenSans';
|
||||
font-size: 0;
|
||||
overflow: hidden;
|
||||
padding: 10px 0;
|
||||
padding: 5px 0;
|
||||
}
|
||||
#shopping-cart-calcul .inner .line:first-child { padding-top: 0 }
|
||||
#shopping-cart-calcul .line.total_price { border-top: 3px solid #f4f4f4; margin-top: 10px; }
|
||||
#shopping-cart-calcul .line .price_discount_delete {
|
||||
text-decoration: none;
|
||||
background: url('../img/delete-btn.png') no-repeat center center;
|
||||
display: inline-block;
|
||||
height: 21px;
|
||||
margin-right: 10px;
|
||||
width: 17px;
|
||||
}
|
||||
#shopping-cart-calcul .line .price_discount_delete i {
|
||||
color: #999;
|
||||
font-size: 16px;
|
||||
}
|
||||
#shopping-cart-calcul .line:first-child { border: 0 }
|
||||
#shopping-cart-calcul .line > div {
|
||||
font-size: 14px;
|
||||
font-size: 13px;
|
||||
float: none;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
#shopping-cart-calcul .line > div:last-child {
|
||||
font-family: 'Oswald';
|
||||
font-size: 24px;
|
||||
font-family: 'ITCAvantGarde';
|
||||
font-size: 16px;
|
||||
padding: 5px 15px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#shopping-cart-calcul .line.freeshipping > div:last-child { font-size: 16px; }
|
||||
#shopping-cart-calcul .line #total_tax {
|
||||
font-family: 'Oswald';
|
||||
font-size: 24px;
|
||||
#shopping-cart-calcul .line.total_price {
|
||||
color: #bfa56d;
|
||||
font-family: 'ITCAvantGarde';
|
||||
padding: 15px 0;
|
||||
}
|
||||
#shopping-cart-calcul #total_price {
|
||||
color: #f25f0f;
|
||||
font-size: 48px;
|
||||
line-height: 36px;
|
||||
}
|
||||
.cart_navigation {
|
||||
|
||||
#shopping-cart-calcul .line.total_price > div:first-child {
|
||||
color: #bfa56d;
|
||||
font-size: 14px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
#shopping-cart-calcul .line.total_price > div:last-child {
|
||||
color: #bfa56d;
|
||||
font-size: 30px;
|
||||
}
|
||||
#shopping-cart .cart_navigation {
|
||||
padding: 0 15px;
|
||||
}
|
||||
.cart_navigation > *:first-child {
|
||||
float: right;
|
||||
@ -470,6 +551,9 @@ body.content_only { margin: 0 }
|
||||
.cart_navigation .btn2 {
|
||||
float: left;
|
||||
}
|
||||
#shopping-cart .continue {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -542,6 +626,29 @@ body.content_only { margin: 0 }
|
||||
#index h1 {
|
||||
margin-top: 25px;
|
||||
}
|
||||
#auth .box > .inner {
|
||||
background: #1f1f1f;
|
||||
border: 0;
|
||||
padding: 50px 100px;
|
||||
text-align: center;
|
||||
}
|
||||
#auth .box .title {
|
||||
background: none;
|
||||
color: #fff;
|
||||
display: block;
|
||||
font-family: "DancingScript";
|
||||
font-size: 26px;
|
||||
padding: 0;
|
||||
text-transform: none;
|
||||
}
|
||||
#auth .box .title:after {
|
||||
background: #fff;
|
||||
content: "";
|
||||
display: block;
|
||||
height: 1px;
|
||||
margin: 20px auto;
|
||||
width: 35px;
|
||||
}
|
||||
#auth form .lost_password {
|
||||
color: #bfa56d;
|
||||
display: block;
|
||||
@ -574,65 +681,48 @@ body .addresses {
|
||||
padding: 50px 15px;
|
||||
}
|
||||
.addresses .addressesAreEquals {
|
||||
padding: 11px 0;
|
||||
padding: 0 0 10px 0;
|
||||
margin: 0
|
||||
}
|
||||
|
||||
.addresses ul#address_delivery,
|
||||
.addresses ul#address_invoice {
|
||||
padding: 30px 0 0 0;
|
||||
.addresses #address_delivery_form {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.addresses .flex-ctn {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.addresses .box-content {
|
||||
padding: 0 75px;
|
||||
}
|
||||
.addresses .address li {
|
||||
color: #67686d;
|
||||
|
||||
height: 20px;
|
||||
font-family: 'OpenSans';
|
||||
font-size: 14px;
|
||||
font-size: 13px;
|
||||
}
|
||||
.addresses .address_update { text-align: center }
|
||||
.addresses ul#address_invoice .address_update a { display: none }
|
||||
.addresses #address_invoice_form {
|
||||
color: #67686d;
|
||||
font-size: 14px;
|
||||
font-style: italic;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
-webkit-transition: all 0.3s ease 0s;
|
||||
-o-transition: all 0.3s ease 0s;
|
||||
transition: all 0.3s ease 0s;
|
||||
}
|
||||
.addresses #address_invoice_form.open { height: 50px; overflow: visible; }
|
||||
.addresses #address_invoice_form a { display: block; }
|
||||
.addresses #address_delivery_form > label,
|
||||
.addresses #address_invoice_form > label {
|
||||
font-size: 20px;
|
||||
font-weight: 900;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.addresses .address_add {
|
||||
display: block;
|
||||
margin: 0 0 45px 0;
|
||||
overflow: hidden;
|
||||
text-align: center
|
||||
}
|
||||
.addresses #order-carrier-list h3 {
|
||||
font-size: 20px;
|
||||
font-weight: 900;
|
||||
text-transform: uppercase;
|
||||
.addresses .carriers-list {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
.addresses .carriers-list .title {
|
||||
background: #202020;
|
||||
border-radius: 2px;
|
||||
color: #fff;
|
||||
font-family: 'ITCAvantGarde';
|
||||
font-size: 14px;
|
||||
padding: 20px 0;
|
||||
text-transform: uppercase;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.addresses #order-carrier-list .delivery-option {
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
}
|
||||
.addresses #order-carrier-list .delivery-option .inner {
|
||||
background: #f1f1f1;
|
||||
border-bottom: 1px solid #ececec;
|
||||
font-size: 0;
|
||||
min-height: 104px;
|
||||
padding: 10px 15px;
|
||||
border-bottom: 3px solid #f4f4f4;
|
||||
font-size: 0;
|
||||
padding: 18px 0 15px;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
@ -643,21 +733,59 @@ body .addresses {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.addresses .radio-button {
|
||||
min-height: 102px;
|
||||
padding-left: 0;
|
||||
.addresses #order-carrier-list .radio-button {
|
||||
padding-left: 45px;
|
||||
text-align: center;
|
||||
}
|
||||
.addresses .radio-button img {
|
||||
width: 115px;
|
||||
.addresses #order-carrier-list .radio-button .custom-radio {
|
||||
left: 0;
|
||||
margin-top: -13px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
}
|
||||
.addresses .radio-button img + .custom-radio { display: inline-block; margin: 0 0 0 20px }
|
||||
.addresses .radio-button .custom-radio { border-radius: 50%; display: block; margin: 39px 0 0 138px; }
|
||||
.addresses #order-carrier-list .delivery-option .inner > .price {
|
||||
color: #f25f0f;
|
||||
font-family: 'Oswald';
|
||||
.addresses #order-carrier-list .radio-button img {
|
||||
|
||||
}
|
||||
.addresses #order-carrier-list .delivery-option .inner .desc {
|
||||
font-size: 13px;
|
||||
}
|
||||
.addresses #order-carrier-list .delivery-option .inner .desc .carrier-name {
|
||||
display: block;
|
||||
font-family: 'ITCAvantGarde';
|
||||
margin-bottom: 5px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.addresses #order-carrier-list .delivery-option .inner .price {
|
||||
color: #bfa56d;
|
||||
font-family: 'ITCAvantGarde';
|
||||
font-size: 18px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.addresses .message {
|
||||
font-size: 13px;
|
||||
margin-bottom: 30px;
|
||||
text-align: center;
|
||||
}
|
||||
.addresses .message h2 {
|
||||
background: url('../img/shadow.png') no-repeat center bottom;
|
||||
color: #000;
|
||||
display: block;
|
||||
font-family: "ITCAvantGarde";
|
||||
font-size: 14px;
|
||||
margin-bottom: 15px;
|
||||
padding: 10px 0 30px 0;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.addresses .message textarea {
|
||||
background: #f4f4f4;
|
||||
border: 1px solid #e1e1e1;
|
||||
border-radius: 4px;
|
||||
font-family: "OpenSans";
|
||||
font-size: 13px;
|
||||
padding: 15px;
|
||||
width: 100%;
|
||||
min-height: 150px;
|
||||
}
|
||||
|
||||
@media (max-width: 991px) {
|
||||
.addresses #address_invoice_form label { margin-top: 30px; }
|
||||
@ -675,98 +803,88 @@ body .addresses {
|
||||
#auth .box .inner { padding: 25px 15px; }
|
||||
}
|
||||
@media (max-width: 500px) {
|
||||
|
||||
|
||||
.addresses #order-carrier-list .delivery-option .price { font-size: 14px }
|
||||
}
|
||||
|
||||
.order-paiement {
|
||||
padding: 30px 15px;
|
||||
}
|
||||
.order-paiement .paiement-module {
|
||||
position: relative;
|
||||
.order-paiement .paiement-list {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
.order-paiement .paiement-module .inner {
|
||||
background: #f1f1f1;
|
||||
color: #333;
|
||||
font-family: 'OpenSans';
|
||||
overflow: hidden;
|
||||
padding: 15px 10px;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
.order-paiement .paiement-list .title {
|
||||
background: #202020;
|
||||
border-radius: 2px;
|
||||
color: #fff;
|
||||
font-family: 'ITCAvantGarde';
|
||||
font-size: 14px;
|
||||
padding: 20px 0;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.order-paiement .paiement-module .inner > div {
|
||||
font-size: 14px;
|
||||
.order-paiement .paiement-module {
|
||||
position: relative;
|
||||
}
|
||||
.order-paiement .resume .inner {
|
||||
border: 1px solid #e3e3e4;
|
||||
color: #67686d;
|
||||
font-size: 14px;
|
||||
padding: 0 10px;
|
||||
.order-paiement .paiement-module .inner {
|
||||
border-bottom: 3px solid #f4f4f4;
|
||||
color: #333;
|
||||
font-family: 'OpenSans';
|
||||
overflow: hidden;
|
||||
padding: 15px 10px;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
.order-paiement .paiement-module .inner > div {
|
||||
color: #000;
|
||||
font-family: 'ITCAvantGarde';
|
||||
font-size: 14px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.order-paiement .paiement-module .inner > div img {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
max-width: 100%
|
||||
}
|
||||
|
||||
.order-paiement .resume .title {
|
||||
}
|
||||
.order-paiement .resume-cart h3 {
|
||||
border-bottom: 2px solid #e3e3e4;
|
||||
display: block;
|
||||
font-family: "Oswald";
|
||||
font-size: 16px;
|
||||
padding: 20px 0;
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.order-paiement .resume-cart .product { border-bottom: 1px solid #e3e3e4; padding: 20px 0 }
|
||||
.order-paiement .resume-cart .product-name span:first-child {
|
||||
font-family: 'OpenSans';
|
||||
line-height: 20px;
|
||||
}
|
||||
.order-paiement .resume-cart .product-name span:last-child {
|
||||
font-size: 20px;
|
||||
line-height: 20px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.order-paiement .resume-cart .product-name span:last-child .barre { font-weight: 300; font-size: 14px; }
|
||||
.order-paiement .resume-cart .resume-products .product-attributes .taille {
|
||||
font-family: 'OpenSans';
|
||||
font-size: 14px;
|
||||
font-weight: 300;
|
||||
text-align: left;
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
.order-paiement .resume-cart > .inner { padding: 15px; }
|
||||
.order-paiement .resume-price {
|
||||
background: #e3e3e4;
|
||||
color: #67686d;
|
||||
padding: 12px 10px;
|
||||
padding: 0 15px;
|
||||
margin: 0 -10px;
|
||||
}
|
||||
.order-paiement .resume-price > div {
|
||||
padding: 6px 0;
|
||||
}
|
||||
.order-paiement .resume-products .product > div > span:last-child,
|
||||
.order-paiement .resume-price > div > span:last-child {
|
||||
font-family: 'Oswald';
|
||||
font-family: 'ITCAvantGarde';
|
||||
text-align: right;
|
||||
}
|
||||
.order-paiement .resume-price > div > span:first-child {
|
||||
font-family: 'OpenSans';
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
}
|
||||
.order-paiement .resume-price > div > span:last-child {
|
||||
font-size: 20px;
|
||||
font-size: 16px;
|
||||
line-height: 20px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.order-paiement .resume-price > div.price { padding-top: 30px }
|
||||
.order-paiement .resume-price > div.price > span:last-child { color: #f25f0f; font-size: 26px; }
|
||||
.order-paiement .cgv {
|
||||
background: #f1f1f1;
|
||||
color: #333;
|
||||
.order-paiement .resume-price > div > span:first-child {
|
||||
font-family: 'OpenSans';
|
||||
font-size: 13px;
|
||||
line-height: 20px;
|
||||
text-align: left;
|
||||
}
|
||||
.order-paiement .resume-price > div > span:last-child {
|
||||
|
||||
}
|
||||
.order-paiement .resume-price > div.price > span:last-child { color: #bfa56d; font-size: 30px; }
|
||||
.order-paiement .cgv .title {
|
||||
background: #202020;
|
||||
border-radius: 2px;
|
||||
color: #fff;
|
||||
font-family: 'ITCAvantGarde';
|
||||
font-size: 14px;
|
||||
margin: 20px 0 0 0;
|
||||
overflow: hidden;
|
||||
padding: 25px;
|
||||
padding: 20px 0;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.order-paiement .cgv p {
|
||||
.order-paiement .cgv .box-content {
|
||||
border: 3px solid #f4f4f4;
|
||||
border-top: 0;
|
||||
padding: 20px;
|
||||
margin: 0;
|
||||
}
|
||||
.order-paiement .cart_navigation > div > span {
|
||||
@ -778,13 +896,48 @@ body .addresses {
|
||||
margin: -17px 0 5px 0;
|
||||
}
|
||||
|
||||
.order-paiement .cgv label a {
|
||||
color: #ee7c03;
|
||||
display: inline-block;
|
||||
font-family: 'OpenSans';
|
||||
font-size: 14px;
|
||||
line-height: 16px;
|
||||
}
|
||||
.order-paiement .cgv .box-content {
|
||||
background: #fff;
|
||||
background: -webkit-linear-gradient(top, #f4f4f4, #fff);
|
||||
background: -o-linear-gradient(top, #f4f4f4, #fff);
|
||||
background: -moz-linear-gradient(top, #f4f4f4, #fff);
|
||||
background: linear-gradient(to top, #f4f4f4, #fff);
|
||||
}
|
||||
.order-paiement .cgv .box-content .custom-checkbox {
|
||||
text-align: right;
|
||||
}
|
||||
.order-paiement .cgv .box-content .custom-checkbox:before {
|
||||
margin-right: 0;
|
||||
}
|
||||
.order-paiement .cgv .box-content .custom-checkbox input {
|
||||
left: auto;
|
||||
right: 0;
|
||||
}
|
||||
.order-paiement .cgv label {
|
||||
font-size: 13px;
|
||||
}
|
||||
.order-paiement .cgv label a {
|
||||
color: #c69462;
|
||||
display: block;
|
||||
font-family: 'OpenSans';
|
||||
margin: 5px 0;
|
||||
}
|
||||
.order-paiement .cgv .validate-payment {
|
||||
margin-top: 30px;
|
||||
}
|
||||
.order-paiement .cgv .validate-payment button {
|
||||
padding: 10px 10px;
|
||||
margin-bottom: 10px;
|
||||
width: 100%;
|
||||
}
|
||||
.order-paiement .cgv .validate-payment span {
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
#order-confirmation .prices { margin-top: 30px }
|
||||
#order-confirmation .addresses-list { text-align: center; }
|
||||
|
||||
@media (max-width: 1199px) {
|
||||
.order-paiement .submit { text-align: center }
|
||||
}
|
||||
@ -808,78 +961,11 @@ body .addresses {
|
||||
/*************************************************************************************************************
|
||||
******************************************* COMPTE *******************************************
|
||||
**************************************************************************************************************/
|
||||
|
||||
.account .menu-account > div {
|
||||
border: 1px solid #e3e3e4;
|
||||
padding: 0 10px;
|
||||
}
|
||||
.account .menu-account .title {
|
||||
border-bottom: 2px solid #e3e3e4;
|
||||
color: #67686d;
|
||||
display: block;
|
||||
font-size: 16px;
|
||||
font-family: 'Oswald';
|
||||
padding: 20px 0;
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.account .menu-account .title a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.account .menu-account ul {
|
||||
padding: 10px 0;
|
||||
}
|
||||
.account .menu-account li a {
|
||||
color: #67686d;
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
margin: 3px 0;
|
||||
padding: 7px 0 7px 35px;
|
||||
position: relative;
|
||||
text-decoration: none;
|
||||
}
|
||||
.account .menu-account li a:hover, .account .menu-account li a.active { background: #eae9e9; color: #f25f0f; }
|
||||
.account .menu-account li > a.active { font-weight: bold; }
|
||||
.account .menu-account li > a:hover i, .account .menu-account li > a.active i { color: #f25f0f; left: 15px; opacity: 1 }
|
||||
.account .menu-account li a i {
|
||||
font-size: 14px;
|
||||
left: 5px;
|
||||
opacity: 0;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
}
|
||||
.account .menu-account li.logout a { background: #ddd }
|
||||
.account .user-infos > span {
|
||||
display: block;
|
||||
}
|
||||
.account .user-infos > span > span {
|
||||
font-weight: 700;
|
||||
}
|
||||
.account .addresses-preview .address .box-content {
|
||||
height: 190px;
|
||||
}
|
||||
|
||||
@media (max-width: 991px) {
|
||||
.account .menu-account { padding-left: 15px }
|
||||
}
|
||||
@media (max-width: 480px) {
|
||||
.account .addresses-preview .address .box-content { height: auto }
|
||||
}
|
||||
|
||||
/* Historique de commande */
|
||||
.account .table-div .table-head {
|
||||
font-family: 'OpenSans';
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
@media (max-width: 991px) {
|
||||
.account .table-div .table-row > div, #history .account .table-div .table-row > div { display: block }
|
||||
|
||||
}
|
||||
|
||||
/* Details de la commande */
|
||||
|
||||
#order-detail .order-info {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
@ -928,6 +1014,7 @@ body .addresses {
|
||||
|
||||
.account .addresses {
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
.account .addresses .address {
|
||||
min-height: 250px;
|
||||
@ -945,11 +1032,17 @@ body .addresses {
|
||||
|
||||
#order-detail #sendOrderMessage label {
|
||||
color: #1e1e1e;
|
||||
font-weight: 700;
|
||||
}
|
||||
#order-detail #sendOrderMessage .custom-select {
|
||||
width: 60%;
|
||||
}
|
||||
#order-detail #sendOrderMessage textarea {
|
||||
background: #f4f4f4;
|
||||
border: 1px solid #e1e1e1;
|
||||
border-radius: 2px;
|
||||
color: #202020;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
@media (max-width: 1199px) {
|
||||
.account .addresses { margin-bottom: 0 }
|
||||
@ -966,125 +1059,7 @@ body .addresses {
|
||||
#order-detail .order-info li .bold { display: block; margin-top: 10px }
|
||||
}
|
||||
|
||||
/* Retours */
|
||||
|
||||
.block-order-detail > .box {
|
||||
border: 1px solid #e3e3e4;
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 991px) {
|
||||
.block-order-detail .text-center { text-align: left; }
|
||||
}
|
||||
|
||||
/* Avoirs */
|
||||
|
||||
#order-slip .account .table-div .table-row .icon-pdf {
|
||||
font-size: 26px;
|
||||
height: 27px;
|
||||
margin: -8px 0 -4px 0;
|
||||
}
|
||||
|
||||
/* Adresses */
|
||||
#addresses .address {
|
||||
margin-bottom: 30px;
|
||||
min-height: 300px;
|
||||
}
|
||||
#addresses .box-footer a:first-child i { padding: 0 5px; }
|
||||
|
||||
/* Ajout/Modif adresse */
|
||||
form.std {
|
||||
background: #f7f7f7;
|
||||
border: 1px solid #e5e5e5;
|
||||
clear: both;
|
||||
overflow: hidden;
|
||||
padding-bottom: 25px;
|
||||
}
|
||||
form.std h2 {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
color: #000;
|
||||
display: block;
|
||||
font-size: 30px;
|
||||
margin: 0;
|
||||
padding: 15px 100px;
|
||||
}
|
||||
|
||||
form.std .form_content {
|
||||
padding: 20px 300px 20px 100px;
|
||||
}
|
||||
form.std .form_content p.text {
|
||||
padding: 20px 0 21px 0;
|
||||
}
|
||||
form.std .lost_password {
|
||||
color: #b4293c;
|
||||
float: left;
|
||||
font-family: 'OpenSans';
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
@media (max-width: 1199px) {
|
||||
form.std .form_content { padding: 20px 100px }
|
||||
}
|
||||
@media (max-width: 767px) {
|
||||
form.std h2 { padding: 15px 50px }
|
||||
form.std .form_content { padding: 20px 50px }
|
||||
}
|
||||
@media (max-width: 500px) {
|
||||
form.std h2 { padding: 15px 20px }
|
||||
form.std .form_content { padding: 20px }
|
||||
.submit button, .submit a.btn { font-size: 16px; margin-left: 0; width: 100%; }
|
||||
|
||||
}
|
||||
|
||||
/* WIshlist */
|
||||
.wishlistLinkTop {
|
||||
margin-bottom: 30px;
|
||||
text-align: center;
|
||||
}
|
||||
.wishlistLinkTop .social {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.wishlistLinkTop .social li {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.wishlistLinkTop .social li a {
|
||||
color: #fff;
|
||||
}
|
||||
.wishlistLinkTop .social li a:hover { color: #151519; text-decoration: none }
|
||||
.wishlistLinkTop .social li a i {
|
||||
background: #ee7c03;
|
||||
border-radius: 50%;
|
||||
color: #fff;
|
||||
display: block;
|
||||
font-size: 20px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
margin: 30px 15px 0 15px;
|
||||
padding: 0;
|
||||
width: 40px;
|
||||
}
|
||||
.wishlistLinkTop .social li a:hover i { background: #ff9600; text-decoration: none }
|
||||
.wishlistLinkTop .social li a span:before {
|
||||
background: #ee7c03;
|
||||
content: "";
|
||||
height: 1px;
|
||||
display: block;
|
||||
margin: 7px auto 2px auto;
|
||||
-webkit-transition: all 0.3s ease 0s;
|
||||
-moz-transition: all 0.3s ease 0s;
|
||||
transition: all 0.3s ease 0s;
|
||||
width: 30px;
|
||||
}
|
||||
.wishlistLinkTop .social li a:hover span:before { background: #ff9600 }
|
||||
.wishlistLinkTop .social li a span {
|
||||
color: #ee7c03;
|
||||
font-size: 14px;
|
||||
}
|
||||
.wishlistLinkTop .social li a:hover span { color: #ff9600 }
|
||||
#module-blockwishlist-mywishlist .product-ctn .product-infos .product-details {
|
||||
overflow: unset;
|
||||
}
|
||||
|
||||
/*************************************************************************************************************
|
||||
********************************** PAGES COMPLEMENTAIRES *************************************
|
||||
|
@ -185,12 +185,37 @@ a { color: #363842 }
|
||||
-webkit-transition: all 0.3s ease 0s;
|
||||
-moz-transition: all 0.3s ease 0s
|
||||
}
|
||||
.btn:before {
|
||||
background: #f9e48f;
|
||||
background: -webkit-linear-gradient(top, #f9e48f, #bfa56d);
|
||||
background: -o-linear-gradient(top, #f9e48f, #bfa56d);
|
||||
background: -moz-linear-gradient(top, #f9e48f, #bfa56d);
|
||||
background: linear-gradient(to top, #f9e48f, #bfa56d);
|
||||
bottom: 0;
|
||||
border-radius: 2px;
|
||||
content: "";
|
||||
display: block;
|
||||
left: 0;
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
transition: all 0.3s ease 0s;
|
||||
-webkit-transition: all 0.3s ease 0s;
|
||||
-moz-transition: all 0.3s ease 0s
|
||||
z-index: 2;
|
||||
}
|
||||
.btn span {
|
||||
position: relative;
|
||||
z-index: 3;
|
||||
}
|
||||
button.btn { padding-top: 7px; padding-bottom: 7px }
|
||||
.btn:hover { color: #000; }
|
||||
|
||||
.btn.btn2 { background: #1c1d22; border-color: #1c1d22; }
|
||||
.btn.btn2:hover { background: none; color: #1c1d22; }
|
||||
.btn:hover:before { opacity: 1 }
|
||||
.btn:hover span { color: #000; }
|
||||
|
||||
.btn.btn2 { background: #202020; border-color: #1c1d22; color: #fff }
|
||||
.btn.btn2:hover { background: #444; color: #fff; }
|
||||
.btn.btn2:hover:before { display: none; }
|
||||
.btn.btn-full-width { width: 100%; }
|
||||
|
||||
/* Positionnement des icones */
|
||||
@ -297,28 +322,31 @@ header.page-heading.order-process { padding: 15px 0 0 0; }
|
||||
**************************************************************************************************************/
|
||||
.block { margin-bottom: 30px }
|
||||
.box {
|
||||
color: #000;
|
||||
font-size: 14px;
|
||||
margin-bottom: 30px;
|
||||
position: relative;
|
||||
}
|
||||
.box > .inner {
|
||||
background: #1f1f1f;
|
||||
padding: 50px 100px;
|
||||
text-align: center;
|
||||
background: #fff;
|
||||
background: -webkit-linear-gradient(top, #f4f4f4, #fff);
|
||||
background: -o-linear-gradient(top, #f4f4f4, #fff);
|
||||
background: -moz-linear-gradient(top, #f4f4f4, #fff);
|
||||
background: linear-gradient(to top, #f4f4f4, #fff);
|
||||
border: 3px solid #f4f4f4;
|
||||
height: 100%;
|
||||
padding: 25px;
|
||||
}
|
||||
.box .title {
|
||||
color: #fff;
|
||||
background: url('../img/shadow.png') no-repeat center bottom;
|
||||
color: #000;
|
||||
display: block;
|
||||
font-family: "DancingScript";
|
||||
font-size: 26px;
|
||||
}
|
||||
.box .title:after {
|
||||
background: #fff;
|
||||
content: "";
|
||||
display: block;
|
||||
height: 1px;
|
||||
margin: 20px auto;
|
||||
width: 35px;
|
||||
font-family: "ITCAvantGarde";
|
||||
font-size: 14px;
|
||||
margin-bottom: 15px;
|
||||
padding: 10px 0 30px 0;
|
||||
text-transform: uppercase;
|
||||
text-align: center;
|
||||
}
|
||||
.box .box-footer {
|
||||
margin-top: 15px;
|
||||
@ -874,38 +902,38 @@ body .fancybox-overlay {
|
||||
display: none;
|
||||
}
|
||||
.custom-select > span:before {
|
||||
background-position: left -272px;
|
||||
background-position: left -38px;
|
||||
content: "";
|
||||
height: 48px;
|
||||
height: 38px;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
width: 5px;
|
||||
z-index: 2;
|
||||
}
|
||||
.custom-select > span.open:before { background-position: left -145px }
|
||||
.custom-select > span.open:before { background-position: left -147px }
|
||||
.custom-select > span {
|
||||
background-position: right -224px;
|
||||
color: #363842;
|
||||
background-position: right 0px;
|
||||
color: #000;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
height: 48px;
|
||||
line-height: 48px;
|
||||
font-size: 13px;
|
||||
height: 38px;
|
||||
line-height: 38px;
|
||||
overflow: hidden;
|
||||
padding: 0 45px 0 15px;
|
||||
padding: 0 45px 0 20px;
|
||||
position: relative;
|
||||
text-align: left;
|
||||
text-overflow: ellipsis;
|
||||
width: 100%;
|
||||
white-space: nowrap;
|
||||
z-index: 1;
|
||||
}
|
||||
.custom-select.disabled > span { cursor: not-allowed }
|
||||
.custom-select > span.open { background-position: right -114px; color: #fff }
|
||||
.custom-select > span.open { background-position: right -105px; color: #000 }
|
||||
.custom-select > ul {
|
||||
background: #fff;
|
||||
border: 1px solid #dbdbdb;
|
||||
display: none;
|
||||
font-family: 'Oswald';
|
||||
margin: -1px 0 0 0;
|
||||
max-height: 300px;
|
||||
overflow-y: auto;
|
||||
@ -919,11 +947,13 @@ body .fancybox-overlay {
|
||||
.custom-select > ul.open { display: block }
|
||||
.custom-select > ul li {
|
||||
color: #333;
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
padding: 8px 10px;
|
||||
padding: 12px 10px;
|
||||
text-align: left;
|
||||
}
|
||||
.custom-select > ul li:hover,
|
||||
.custom-select > ul li.selected { background-color: #ddd }
|
||||
.custom-select > ul li.selected { background-color: #f4f4f4 }
|
||||
.custom-select > ul li input {
|
||||
height: 30px;
|
||||
width: 100%;
|
||||
@ -972,7 +1002,7 @@ body .fancybox-overlay {
|
||||
/* Inline */
|
||||
.custom-checkbox.inline:before {
|
||||
background-color: #fff;
|
||||
background-position: 20px -351px;
|
||||
background-position: 0px -200px;
|
||||
border: 1px solid #dbdbdb;
|
||||
content: "";
|
||||
cursor: pointer;
|
||||
@ -990,7 +1020,7 @@ body .fancybox-overlay {
|
||||
.custom-checkbox.inline:after { display: none }
|
||||
.custom-checkbox.checked:before,
|
||||
.custom-checkbox.checked:after,
|
||||
.custom-checkbox.inline.checked:before { background-position: -14px -351px; }
|
||||
.custom-checkbox.inline.checked:before { background-position: -9px -255px }
|
||||
|
||||
/* CustomRadio */
|
||||
.custom-radio {
|
||||
@ -1009,8 +1039,8 @@ body .fancybox-overlay {
|
||||
}
|
||||
.custom-radio:before {
|
||||
background-color: #f1f1f1;
|
||||
background-position: 20px -351px;
|
||||
border: 2px solid #cdced4;
|
||||
background-position: -65px -255px;
|
||||
border: 1px solid #cdced4;
|
||||
border-radius: 50%;
|
||||
content: "";
|
||||
cursor: pointer;
|
||||
@ -1026,7 +1056,7 @@ body .fancybox-overlay {
|
||||
}
|
||||
.custom-radio.inline label { margin-bottom: 0; max-width: 75%; padding-left: 10px; }
|
||||
.custom-radio.checked:before,
|
||||
.custom-radio.inline.checked:before { background-position: -70px -351px; border-color: #67686d }
|
||||
.custom-radio.inline.checked:before { background-position: -65px -224px }
|
||||
.radio-box {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
@ -1,7 +1,11 @@
|
||||
{if !isset($content_only) || !$content_only}
|
||||
<footer id="footer">
|
||||
|
||||
</footer>
|
||||
{if $page_name != 'category' && $page_name != 'index'}
|
||||
<footer id="footer">
|
||||
<div class="ctn">
|
||||
{hook h='displayReassurance'}
|
||||
</div>
|
||||
</footer>
|
||||
{/if}
|
||||
{hook h='endBody'}
|
||||
|
||||
{/if}
|
||||
|
@ -19,9 +19,7 @@
|
||||
|
||||
<div class="ctn account">
|
||||
<div class="row">
|
||||
{include file="$tpl_dir./menu-account.tpl" active='history'}
|
||||
|
||||
<div class="md9">
|
||||
<div class="md12">
|
||||
<div class="box">
|
||||
<div class="inner">
|
||||
<h2 class="title">{l s='Your orders'}</h2>
|
||||
|
BIN
themes/roykin/img/shadow.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.5 KiB |
@ -799,12 +799,12 @@ function updateCartSummary(json)
|
||||
|
||||
if (typeof(product_list[i].customizationQuantityTotal) !== 'undefined' && product_list[i].customizationQuantityTotal > 0)
|
||||
{
|
||||
$('#total_product_price_' + key_for_blockcart).html(formatCurrency(product_customization_total, currencyFormat, currencySign, currencyBlank));
|
||||
$('#total_product_price_' + key_for_blockcart + ' .value').html(formatCurrency(product_customization_total, currencyFormat, currencySign, currencyBlank));
|
||||
$('#cart_block_product_' + key_for_blockcart + ' .price').html(formatCurrency(product_customization_total, currencyFormat, currencySign, currencyBlank));
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#total_product_price_' + key_for_blockcart).html(formatCurrency(product_total, currencyFormat, currencySign, currencyBlank));
|
||||
$('#total_product_price_' + key_for_blockcart + ' .value').html(formatCurrency(product_total, currencyFormat, currencySign, currencyBlank));
|
||||
$('#cart_block_product_' + key_for_blockcart + ' .price').html(formatCurrency(product_total, currencyFormat, currencySign, currencyBlank));
|
||||
}
|
||||
|
||||
@ -819,21 +819,23 @@ function updateCartSummary(json)
|
||||
if (typeof(product_list[i].customizationQuantityTotal) !== 'undefined' && product_list[i].customizationQuantityTotal > 0)
|
||||
$('#cart_quantity_custom_' + key_for_blockcart).html(product_list[i].customizationQuantityTotal);
|
||||
nbrProducts += parseInt(product_list[i].quantity);
|
||||
|
||||
if(product_list[i].price_with_reduction != product_list[i].price_without_reduction)
|
||||
{
|
||||
|
||||
$('#product_price_' + key_for_blockcart + ' .old-price').show();
|
||||
$('#product_price_' + key_for_blockcart + ' .price').html(formatCurrency(product_list[i].price_with_reduction, currencyFormat, currencySign, currencyBlank));
|
||||
$('#product_price_' + key_for_blockcart + ' .price').html(formatCurrency(product_list[i].price_with_reduction_without_tax, currencyFormat, currencySign, currencyBlank));
|
||||
$('#product_price_' + key_for_blockcart + ' .old-price span').html(formatCurrency(product_list[i].price_without_reduction, currencyFormat, currencySign, currencyBlank));
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#product_price_' + key_for_blockcart + ' .price').html(formatCurrency(product_list[i].price_with_reduction, currencyFormat, currencySign, currencyBlank));
|
||||
$('#product_price_' + key_for_blockcart + ' .price').html(formatCurrency(product_list[i].price_with_reduction_without_tax, currencyFormat, currencySign, currencyBlank));
|
||||
$('#product_price_' + key_for_blockcart + ' .old-price').hide();
|
||||
}
|
||||
}
|
||||
|
||||
$('.nb-total-boxes').html(nbrProducts);
|
||||
$('.nb-total-bottles').html(nbrProducts*12);
|
||||
|
||||
// Update discounts
|
||||
var discount_count = 0;
|
||||
for(var e in json.discounts)
|
||||
@ -912,11 +914,13 @@ function updateCartSummary(json)
|
||||
{
|
||||
$('#total_product').html(formatCurrency(json.total_products, currencyFormat, currencySign, currencyBlank));
|
||||
$('#total_price').html(formatCurrency(json.total_price_without_tax, currencyFormat, currencySign, currencyBlank));
|
||||
$('.nb-total-price').html(formatCurrency(json.total_price_without_tax, currencyFormat, currencySign, currencyBlank));
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#total_product').html(formatCurrency(json.total_products_wt, currencyFormat, currencySign, currencyBlank));
|
||||
$('#total_price').html(formatCurrency(json.total_price, currencyFormat, currencySign, currencyBlank));
|
||||
$('.nb-total-price').html(formatCurrency(json.total_price, currencyFormat, currencySign, currencyBlank));
|
||||
}
|
||||
|
||||
$('.price.ajax_cart_total').html(formatCurrency(json.total_price, currencyFormat, currencySign, currencyBlank));
|
||||
|
@ -460,7 +460,6 @@ $_LANG['order-slip_d1a365ea7809ae5831c6d9f86886630c'] = 'Avoirs';
|
||||
$_LANG['order-slip_d95cf4ab2cbf1dfb63f066b50558b07d'] = 'Mon compte';
|
||||
$_LANG['order-slip_e28cc69f9aa3068eddb76dd508b11da2'] = 'n°%s';
|
||||
$_LANG['order-steps_065ab3a28ca4f16f55f103adc7d0226f'] = 'Livraison';
|
||||
$_LANG['order-steps_b6d4223e60986fa4c9af77ee5f7149c5'] = 'Identification';
|
||||
$_LANG['order-steps_dae3b417a0fc4a49e851ce55d6d49551'] = 'Récapitulatif';
|
||||
$_LANG['order-steps_f4d1ea475eaa85102e2b4e6d95da84bd'] = 'Paiement';
|
||||
$_LANG['pagination_10ac3d04253ef7e1ddc73e6091c0cd55'] = 'Suivant';
|
||||
@ -527,35 +526,42 @@ $_LANG['search_a09e4037d02313230a191007246e1694'] = '%d résultats ont été tro
|
||||
$_LANG['shopping-cart-product-line_1d9baf077ee87921f57a8fe42d510b65'] = 'Soustraire';
|
||||
$_LANG['shopping-cart-product-line_3601146c4e948c32b6424d2c0a7f0118'] = 'Prix';
|
||||
$_LANG['shopping-cart-product-line_37a868bc6fa2df59fe98f6b8fbe2f270'] = 'd\'éco-participation';
|
||||
$_LANG['shopping-cart-product-line_529ec26c6d82166df35771b810336f84'] = 'bouteilles';
|
||||
$_LANG['shopping-cart-product-line_54d3b260d7e0e3377ff04b75bf564982'] = 'Dont';
|
||||
$_LANG['shopping-cart-product-line_60ba37d72bc66daf8018cf689467238e'] = 'boites de';
|
||||
$_LANG['shopping-cart-product-line_694e8d1f2ee056f98ee488bdc4982d73'] = 'Quantité';
|
||||
$_LANG['shopping-cart-product-line_69d08bd5f8cf4e228930935c3f13e42f'] = 'En stock';
|
||||
$_LANG['shopping-cart-product-line_6c957f72dc8cdacc75762f2cbdcdfaf2'] = 'Prix unitaire';
|
||||
$_LANG['shopping-cart-product-line_9a9a97ca85af73f90515e72745f730f0'] = 'au lieu de';
|
||||
$_LANG['shopping-cart-product-line_a59ba454f256953d318ac200a50d67d1'] = 'Offert !';
|
||||
$_LANG['shopping-cart-product-line_b55197a49e8c4cd8c314bc2aa39d6feb'] = 'Hors stock';
|
||||
$_LANG['shopping-cart-product-line_cd6aaf6d8287fd5a49122d36f0ff7024'] = 'Livraison différée';
|
||||
$_LANG['shopping-cart-product-line_deb10517653c255364175796ace3553f'] = 'Produit';
|
||||
$_LANG['shopping-cart-product-line_e716b72edf18038c04664e9b21569177'] = 'Vous devez avoir acheté au moins %d de ce produit.';
|
||||
$_LANG['shopping-cart-product-line_ec211f7c20af43e742bf2570c3cb84f9'] = 'Ajouter';
|
||||
$_LANG['shopping-cart-product-line_f2a6c498fb90ee345d997f888fce3b18'] = 'Supprimer';
|
||||
$_LANG['shopping-cart_03ab340b3f99e03cff9e84314ead38c0'] = 'Quantité';
|
||||
$_LANG['shopping-cart_042fc2839f45ea5207494ec3005f1aab'] = 'Vous avez un bon de réduction ?';
|
||||
$_LANG['shopping-cart_0743a4c9b7922a0a2589d0d74c5ea231'] = 'Nombre total de boites';
|
||||
$_LANG['shopping-cart_12a7a93d72ded50311b52c7d0a853e3c'] = 'Profitez de nos offres exclusives :';
|
||||
$_LANG['shopping-cart_16f6c60cf0b840982bc1f595ac1641cb'] = 'Indiquez votre code';
|
||||
$_LANG['shopping-cart_27ce7f8b5623b2e2df568d64cf051607'] = 'Stock';
|
||||
$_LANG['shopping-cart_300225ee958b6350abc51805dab83c24'] = 'Continuer mes achats';
|
||||
$_LANG['shopping-cart_30efeba472c0bc4d0747d0109948a714'] = 'Envoyer les produits disponibles en premier.';
|
||||
$_LANG['shopping-cart_6c957f72dc8cdacc75762f2cbdcdfaf2'] = 'Prix unitaire';
|
||||
$_LANG['shopping-cart_7494b947fb8d75b27f502865f1c0a45d'] = 'Valider';
|
||||
$_LANG['shopping-cart_7e0bf6d67701868aac3116ade8fea957'] = 'Finaliser ma commande';
|
||||
$_LANG['shopping-cart_8598ad4c32c2b992dda9fc8af53c0c03'] = 'Total produits TTC :';
|
||||
$_LANG['shopping-cart_8075b1ab2d632743beeb6c5ce77a2c9c'] = 'Total produit HT';
|
||||
$_LANG['shopping-cart_86024cad1e83101d97359d7351051156'] = 'produits';
|
||||
$_LANG['shopping-cart_879f6b8877752685a966564d072f498f'] = 'Votre panier est vide';
|
||||
$_LANG['shopping-cart_88b1b598df916ded43ff4abb0935ed7e'] = 'Détails du panier';
|
||||
$_LANG['shopping-cart_96b0141273eabab320119c467cdcaf17'] = 'Total';
|
||||
$_LANG['shopping-cart_a40cab5994f36d4c48103a22ca082e8f'] = 'Votre panier';
|
||||
$_LANG['shopping-cart_deb10517653c255364175796ace3553f'] = 'Produit';
|
||||
$_LANG['shopping-cart_e0aa021e21dddbd6d8cecec71e9cf564'] = 'ok';
|
||||
$_LANG['shopping-cart_dfa7a51e61bf9fd7e5fe14e4861e759d'] = 'Nicotine';
|
||||
$_LANG['shopping-cart_e93f43fa527c3534aeca987091d6c049'] = 'Total frais de port (TTC)';
|
||||
$_LANG['shopping-cart_ebaee01719541f61281c16ba22ebbfde'] = 'Total TTC :';
|
||||
$_LANG['shopping-cart_ecba3578d8cd65126d4a47c76b3c9c2d'] = 'Livraison gratuite !';
|
||||
$_LANG['shopping-cart_f246a17c095de09e043cc1cb917481da'] = 'Total frais de port (HT)';
|
||||
$_LANG['shopping-cart_f246a17c095de09e043cc1cb917481da'] = 'Total frais de port HT';
|
||||
$_LANG['shopping-cart_f2a6c498fb90ee345d997f888fce3b18'] = 'Supprimer';
|
||||
$_LANG['shopping-cart_f4e8b53a114e5a17d051ab84d326cae5'] = 'Total frais de port';
|
||||
$_LANG['shopping-cart_f5bf48aa40cad7891eb709fcf1fde128'] = 'produit';
|
||||
|
12
themes/roykin/modules/advreassurance/advreassurance.tpl
Normal file
@ -0,0 +1,12 @@
|
||||
<!-- Block Advmenu module -->
|
||||
{if $blocks}
|
||||
<ul class="row">
|
||||
{foreach from=$blocks item=block key=key}
|
||||
<li class="md4">
|
||||
<span class="title">{$block.title}</span>
|
||||
<span class="subtitle">{$block.subtitle}</span>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
<!-- /Block Advmenu module -->
|
5
themes/roykin/modules/advreassurance/translations/fr.php
Normal file
@ -0,0 +1,5 @@
|
||||
<?php
|
||||
|
||||
global $_MODULE;
|
||||
$_MODULE = array();
|
||||
$_MODULE['<{advreassurance}pierimport>advreassurance-bottom_34e80a799d144cfe4af46815e103f017'] = 'Avis client';
|
@ -1,15 +1,14 @@
|
||||
<div class="paiement-module radio-box">
|
||||
<div class="shadow"></div>
|
||||
<div class="inner valign-middle">
|
||||
<div class="sm2">
|
||||
<div class="sm1">
|
||||
<div class="rounded-radio">
|
||||
<input class="custom-input inline" type="radio" value="{$link->getModuleLink('bankwire', 'payment')|escape:'html':'UTF-8'}" name="paiement-method" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="sm4">
|
||||
<img src="{$base_dir}img/payments/virement_bancaire.jpg" alt="" />
|
||||
<div class="sm2">
|
||||
<img src="{$base_dir}img/payments/logo-virement.png" alt="" />
|
||||
</div>
|
||||
<div class="sm6">
|
||||
<div class="sm9">
|
||||
{l s='Pay by bank wire' mod='bankwire'}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -11,7 +11,9 @@
|
||||
<span class="nb-total-price">{$total}</span>
|
||||
</div>
|
||||
<div class="md3">
|
||||
<a class="btn pull-right" href="{$link->getPageLink("$order_process", true)|escape:'html'}" title="{l s='View my shopping cart' mod='blockcart'}" rel="nofollow">{l s='Checkout' mod='blockcart'}</a>
|
||||
<a class="btn pull-right" href="{$link->getPageLink("$order_process", true)|escape:'html'}" title="{l s='View my shopping cart' mod='blockcart'}" rel="nofollow">
|
||||
<span>{l s='Checkout' mod='blockcart'}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,15 +1,14 @@
|
||||
<div class="paiement-module radio-box">
|
||||
<div class="shadow"></div>
|
||||
<div class="inner valign-middle">
|
||||
<div class="sm2">
|
||||
<div class="sm1">
|
||||
<div class="rounded-radio">
|
||||
<input class="custom-input inline" type="radio" value="{$link->getModuleLink('cheque', 'payment', [], true)|escape:'html':'UTF-8'}" name="paiement-method" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="sm4">
|
||||
<img src="{$base_dir}img/payments/paiement_cheque.jpg" alt="" />
|
||||
<div class="sm2">
|
||||
<img src="{$base_dir}img/payments/logo-cheque.png" alt="" />
|
||||
</div>
|
||||
<div class="sm6">
|
||||
<div class="sm9">
|
||||
{l s='Pay by check' mod='cheque'}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -13,104 +13,82 @@
|
||||
|
||||
<!-- Choix des adresses -->
|
||||
<div class="addresses-list row">
|
||||
<div class="offset-lg1 lg10 md12">
|
||||
<div class="offset-lg2 lg8 md12">
|
||||
|
||||
<div class="row">
|
||||
<!-- Adresse de livraison -->
|
||||
<div class="xs12 sm6 box"{if $cart->isVirtualCart()} style="display:none;"{/if}>
|
||||
<div class="inner">
|
||||
<h2 class="title">{l s ='Votre adresse de livraison'}</h2>
|
||||
<div class="box-content">
|
||||
<div id="address_delivery_form">
|
||||
<select name="id_address_delivery" id="id_address_delivery" class="custom-input address_select form-control">
|
||||
{foreach from=$addresses key=k item=address}
|
||||
<option value="{$address.id_address|intval}"{if $address.id_address == $cart->id_address_delivery} selected="selected"{/if}>
|
||||
{$address.alias|escape:'html':'UTF-8'}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
<div class="flex-ctn">
|
||||
<!-- Adresse de livraison -->
|
||||
<div class="xs12 sm6 box"{if $cart->isVirtualCart()} style="display:none;"{/if}>
|
||||
<div class="inner">
|
||||
<h2 class="title">{l s ='Votre adresse de livraison'}</h2>
|
||||
<div class="box-content">
|
||||
<div id="address_delivery_form">
|
||||
<select name="id_address_delivery" id="id_address_delivery" class="custom-input address_select form-control">
|
||||
{foreach from=$addresses key=k item=address}
|
||||
<option value="{$address.id_address|intval}"{if $address.id_address == $cart->id_address_delivery} selected="selected"{/if}>
|
||||
{$address.alias|escape:'html':'UTF-8'}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- Détails -->
|
||||
<ul class="address item" id="address_delivery">
|
||||
</ul>
|
||||
<!-- Détails -->
|
||||
<ul class="address item" id="address_delivery">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Adresse de facturation -->
|
||||
<div class="xs12 sm6 box">
|
||||
<div class="inner">
|
||||
<h2 class="title">{l s ='Votre adresse de facturation'}</h2>
|
||||
<div class="box-content">
|
||||
<p class="addressesAreEquals clearfix"{if $cart->isVirtualCart()} style="display:none;"{/if}>
|
||||
<input type="checkbox" name="same" id="addressesAreEquals" class="custom-input inline" value="1"{if $cart->id_address_invoice == $cart->id_address_delivery || $addresses|@count == 1} checked="checked"{/if} />
|
||||
<label for="addressesAreEquals">{l s='Use the delivery address as the billing address.'}</label>
|
||||
</p>
|
||||
|
||||
<div id="address_invoice_form">
|
||||
{if $addresses|@count > 1}
|
||||
<select name="id_address_invoice" id="id_address_invoice" class="custom-input address_select form-control">
|
||||
{section loop=$addresses step=-1 name=address}
|
||||
<option value="{$addresses[address].id_address|intval}"{if $addresses[address].id_address == $cart->id_address_invoice && $cart->id_address_delivery != $cart->id_address_invoice} selected="selected"{/if}>
|
||||
{$addresses[address].alias|escape:'html':'UTF-8'}
|
||||
</option>
|
||||
{/section}
|
||||
</select>
|
||||
{else}
|
||||
{l s='Vous n\'avez qu\'une adresse disponible dans votre compte.'}
|
||||
<a href="{$link->getPageLink('address', true, NULL, "back={$back_order_page}?step=1&select_address=1{if $back}&mod={$back}{/if}")|escape:'html':'UTF-8'}" title="{l s='Add'}" class="add-address">
|
||||
{l s='Ajouter une adresse'}
|
||||
</a>
|
||||
{/if}
|
||||
<!-- Adresse de facturation -->
|
||||
<div class="xs12 sm6 box">
|
||||
<div class="inner">
|
||||
<h2 class="title">{l s ='Votre adresse de facturation'}</h2>
|
||||
<div class="box-content">
|
||||
<!-- Détails -->
|
||||
<ul class="address alternate_item{if $cart->isVirtualCart()} full_width{/if}" id="address_invoice">
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Détails -->
|
||||
<ul class="address alternate_item{if $cart->isVirtualCart()} full_width{/if}" id="address_invoice">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Transporteurs -->
|
||||
<div class="carriers-list">
|
||||
<div class="inner">
|
||||
<h2 class="title">{l s ='Choisissez votre méthode de livraison'}</h2>
|
||||
<div id="order_carrier_contaier">
|
||||
{include file="$tpl_dir./ajax-order-carrier.tpl"}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="message">
|
||||
<h2>{l s='Leave a message'}</h2>
|
||||
<div>
|
||||
<p>{l s='If you would like to add a comment about your order, please write it in the field below.'}</p>
|
||||
<textarea class="form-control" name="message" id="message">{strip}
|
||||
{if isset($oldMessage)}{$oldMessage|escape:'html':'UTF-8'}{/if}
|
||||
{/strip}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="hidden">
|
||||
<input type="hidden" class="hidden" name="step" value="3" />
|
||||
<input type="hidden" name="back" value="{$back}" />
|
||||
</div>
|
||||
|
||||
<!-- Boutons de navigation -->
|
||||
<p class="cart_navigation">
|
||||
<button type="submit" name="processCarrier" class="btn pull-right">
|
||||
<span>{l s='Save'}</span>
|
||||
</button>
|
||||
<a href="{$link->getPageLink($back_order_page, true, NULL, "{if $back}back={$back}{/if}")|escape:'html':'UTF-8'}" title="{l s='Previous'}" class="btn btn2">
|
||||
<span>{l s='Continue Shopping'}</span>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="address_add">
|
||||
<a href="{$link->getPageLink('address', true, NULL, "back={$back_order_page}?step=1{if $back}&mod={$back}{/if}")|escape:'html':'UTF-8'}" title="{l s='Add'}" class="btn icon-left">
|
||||
<i class="icon icon-plus"></i>
|
||||
<span>{l s='Add a new address'}</span>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
|
||||
<!-- Transporteurs -->
|
||||
<div class="box">
|
||||
<div class="inner">
|
||||
<h2 class="title">{l s ='Choisissez votre méthode de livraison'}</h2>
|
||||
<div class="box-content">
|
||||
<div id="order_carrier_contaier">
|
||||
{include file="$tpl_dir./ajax-order-carrier.tpl"}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="hidden">
|
||||
<input type="hidden" class="hidden" name="step" value="3" />
|
||||
<input type="hidden" name="back" value="{$back}" />
|
||||
</div>
|
||||
|
||||
<!-- Boutons de navigation -->
|
||||
<p class="cart_navigation">
|
||||
<button type="submit" name="processCarrier" class="btn icon-right pull-right">
|
||||
<i class="icon icon-arrow-right"></i>
|
||||
<span>{l s='Save'}</span>
|
||||
</button>
|
||||
<a href="{$link->getPageLink($back_order_page, true, NULL, "{if $back}back={$back}{/if}")|escape:'html':'UTF-8'}" title="{l s='Previous'}" class="btn btn2 icon-left">
|
||||
<i class="icon icon-arrow-left"></i>
|
||||
<span>{l s='Continue Shopping'}</span>
|
||||
</a>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
@ -137,6 +115,5 @@
|
||||
{addJsDef addressUrlAdd=$smarty.capture.addressUrlAdd}
|
||||
{addJsDef formatedAddressFieldsValuesList=$formatedAddressFieldsValuesList}
|
||||
{addJsDef opc=$opc|boolval}
|
||||
{capture}<a class="link" href="{$smarty.capture.addressUrlAdd}" title="{l s='Update' js=1}">{l s='Update' js=1}</a>{/capture}
|
||||
{addJsDefL name=liUpdate}{$smarty.capture.default|@addcslashes:'\''}{/addJsDefL}
|
||||
{addJsDefL name=liUpdate}{/addJsDefL}
|
||||
{/strip}
|
@ -29,14 +29,12 @@
|
||||
<p>{l s='Your order ID is:'} <span class="bold">{$id_order_formatted}</span> . {l s='Your order ID has been sent via email.'}</p>
|
||||
<p class="cart_navigation exclusive">
|
||||
<a class="btn" href="{$link->getPageLink('guest-tracking', true, NULL, "id_order={$reference_order|urlencode}&email={$email|urlencode}")|escape:'html':'UTF-8'}" title="{l s='Follow my order'}">
|
||||
<i class="icon icon-arrow-left icon-left"></i>
|
||||
<span>{l s='Follow my order'}</span>
|
||||
</a>
|
||||
</p>
|
||||
{else}
|
||||
<p class="cart_navigation exclusive">
|
||||
<a class="btn icon-left" href="{$link->getPageLink('history', true)|escape:'html':'UTF-8'}" title="{l s='Go to your order history page'}">
|
||||
<i class="icon icon-arrow-left"></i>
|
||||
<a class="btn" href="{$link->getPageLink('history', true)|escape:'html':'UTF-8'}" title="{l s='Go to your order history page'}">
|
||||
<span>{l s='View your order history'}</span>
|
||||
</a>
|
||||
</p>
|
||||
|
@ -53,9 +53,7 @@
|
||||
|
||||
<div class="ctn account">
|
||||
<div class="row">
|
||||
{include file="$tpl_dir./menu-account.tpl" active='history'}
|
||||
|
||||
<div class="md9">
|
||||
<div class="md12">
|
||||
|
||||
{if isset($order)}
|
||||
<div class="box">
|
||||
@ -121,63 +119,65 @@
|
||||
</div>
|
||||
|
||||
<!-- Adresses -->
|
||||
<div class="addresses row clear">
|
||||
<div class="md6">
|
||||
<div class="box">
|
||||
<div class="inner">
|
||||
<h2 class="title">{l s='Shipping address'}</h2>
|
||||
<div class="box-content">
|
||||
<ul>
|
||||
{foreach from=$dlv_adr_fields name=dlv_loop item=field_item}
|
||||
{if $field_item eq "company" && isset($address_delivery->company)}
|
||||
<li class="address_company">{$address_delivery->company|escape:'html':'UTF-8'}</li>
|
||||
{elseif $field_item eq "address2" && $address_delivery->address2}
|
||||
<li class="address_address2">{$address_delivery->address2|escape:'html':'UTF-8'}</li>
|
||||
{elseif $field_item eq "phone_mobile" && $address_delivery->phone_mobile}
|
||||
<li class="address_phone_mobile">{$address_delivery->phone_mobile|escape:'html':'UTF-8'}</li>
|
||||
{else}
|
||||
{assign var=address_words value=" "|explode:$field_item}
|
||||
<li>
|
||||
{foreach from=$address_words item=word_item name="word_loop"}{if !$smarty.foreach.word_loop.first} {/if}
|
||||
<span class="address_{$word_item|replace:',':''}">
|
||||
{$deliveryAddressFormatedValues[$word_item|replace:',':'']|escape:'html':'UTF-8'}
|
||||
</span>
|
||||
{/foreach}
|
||||
</li>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</ul>
|
||||
<div class="offset-md2 md8">
|
||||
<div class="addresses row clear">
|
||||
<div class="md6">
|
||||
<div class="box">
|
||||
<div class="inner">
|
||||
<h2 class="title">{l s='Shipping address'}</h2>
|
||||
<div class="box-content">
|
||||
<ul>
|
||||
{foreach from=$dlv_adr_fields name=dlv_loop item=field_item}
|
||||
{if $field_item eq "company" && isset($address_delivery->company)}
|
||||
<li class="address_company">{$address_delivery->company|escape:'html':'UTF-8'}</li>
|
||||
{elseif $field_item eq "address2" && $address_delivery->address2}
|
||||
<li class="address_address2">{$address_delivery->address2|escape:'html':'UTF-8'}</li>
|
||||
{elseif $field_item eq "phone_mobile" && $address_delivery->phone_mobile}
|
||||
<li class="address_phone_mobile">{$address_delivery->phone_mobile|escape:'html':'UTF-8'}</li>
|
||||
{else}
|
||||
{assign var=address_words value=" "|explode:$field_item}
|
||||
<li>
|
||||
{foreach from=$address_words item=word_item name="word_loop"}{if !$smarty.foreach.word_loop.first} {/if}
|
||||
<span class="address_{$word_item|replace:',':''}">
|
||||
{$deliveryAddressFormatedValues[$word_item|replace:',':'']|escape:'html':'UTF-8'}
|
||||
</span>
|
||||
{/foreach}
|
||||
</li>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="md6">
|
||||
<div class="box">
|
||||
<div class="shadow"></div>
|
||||
<div class="inner">
|
||||
<h2 class="title">{l s='Invoice address'}</h2>
|
||||
<div class="box-content">
|
||||
<ul>
|
||||
{foreach from=$inv_adr_fields name=inv_loop item=field_item}
|
||||
{if $field_item eq "company" && isset($address_invoice->company)}
|
||||
<li class="address_company">{$address_invoice->company|escape:'html':'UTF-8'}</li>
|
||||
{elseif $field_item eq "address2" && $address_invoice->address2}
|
||||
<li class="address_address2">{$address_invoice->address2|escape:'html':'UTF-8'}</li>
|
||||
{elseif $field_item eq "phone_mobile" && $address_invoice->phone_mobile}
|
||||
<li class="address_phone_mobile">{$address_invoice->phone_mobile|escape:'html':'UTF-8'}</li>
|
||||
{else}
|
||||
{assign var=address_words value=" "|explode:$field_item}
|
||||
<li>
|
||||
{foreach from=$address_words item=word_item name="word_loop"}{if !$smarty.foreach.word_loop.first} {/if}
|
||||
<span class="address_{$word_item|replace:',':''}">
|
||||
{$invoiceAddressFormatedValues[$word_item|replace:',':'']|escape:'html':'UTF-8'}
|
||||
</span>
|
||||
{/foreach}
|
||||
</li>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</ul>
|
||||
<div class="md6">
|
||||
<div class="box">
|
||||
<div class="shadow"></div>
|
||||
<div class="inner">
|
||||
<h2 class="title">{l s='Invoice address'}</h2>
|
||||
<div class="box-content">
|
||||
<ul>
|
||||
{foreach from=$inv_adr_fields name=inv_loop item=field_item}
|
||||
{if $field_item eq "company" && isset($address_invoice->company)}
|
||||
<li class="address_company">{$address_invoice->company|escape:'html':'UTF-8'}</li>
|
||||
{elseif $field_item eq "address2" && $address_invoice->address2}
|
||||
<li class="address_address2">{$address_invoice->address2|escape:'html':'UTF-8'}</li>
|
||||
{elseif $field_item eq "phone_mobile" && $address_invoice->phone_mobile}
|
||||
<li class="address_phone_mobile">{$address_invoice->phone_mobile|escape:'html':'UTF-8'}</li>
|
||||
{else}
|
||||
{assign var=address_words value=" "|explode:$field_item}
|
||||
<li>
|
||||
{foreach from=$address_words item=word_item name="word_loop"}{if !$smarty.foreach.word_loop.first} {/if}
|
||||
<span class="address_{$word_item|replace:',':''}">
|
||||
{$invoiceAddressFormatedValues[$word_item|replace:',':'']|escape:'html':'UTF-8'}
|
||||
</span>
|
||||
{/foreach}
|
||||
</li>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -348,20 +348,20 @@
|
||||
{/foreach}
|
||||
|
||||
<div class="table-row">
|
||||
<div class="offset-md6 md4 sm4 xs7 xxs7">
|
||||
<div class="offset-md5 md4 sm4 xs7 xxs7">
|
||||
{l s='Items'}
|
||||
</div>
|
||||
<div class="md2 sm8 xs5 xxs5 text-right">
|
||||
<div class="md3 sm8 xs5 xxs5 text-right">
|
||||
{displayWtPriceWithCurrency price=$order->getTotalProductsWithTaxes() currency=$currency}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{if $order->total_discounts > 0}
|
||||
<div class="table-row">
|
||||
<div class="offset-md6 md4 sm4 xs7 xxs7">
|
||||
<div class="offset-md5 md4 sm4 xs7 xxs7">
|
||||
{l s='Total vouchers'}
|
||||
</div>
|
||||
<div class="md2 sm8 xs5 xxs5 text-right">
|
||||
<div class="md3 sm8 xs5 xxs5 text-right">
|
||||
- {displayWtPriceWithCurrency price=$order->total_discounts currency=$currency convert=1}
|
||||
</div>
|
||||
</div>
|
||||
@ -369,29 +369,29 @@
|
||||
|
||||
{if $order->total_wrapping > 0}
|
||||
<div class="table-row">
|
||||
<div class="offset-md6 md4 sm4 xs7 xxs7">
|
||||
<div class="offset-md5 md4 sm4 xs7 xxs7">
|
||||
{l s='Total gift wrapping cost'}
|
||||
</div>
|
||||
<div class="md2 sm8 xs5 xxs5 text-right">
|
||||
<div class="md3 sm8 xs5 xxs5 text-right">
|
||||
{displayWtPriceWithCurrency price=$order->total_wrapping currency=$currency}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="table-row">
|
||||
<div class="offset-md6 md4 sm4 xs7 xxs7">
|
||||
<div class="offset-md5 md4 sm4 xs7 xxs7">
|
||||
{l s='Shipping & handling'}
|
||||
</div>
|
||||
<div class="md2 sm8 xs5 xxs5 text-right">
|
||||
<div class="md3 sm8 xs5 xxs5 text-right">
|
||||
{displayWtPriceWithCurrency price=$order->total_shipping currency=$currency}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="table-row">
|
||||
<div class="offset-md6 md4 sm4 xs4 xxs4 total">
|
||||
<div class="offset-md5 md4 sm4 xs4 xxs4 total">
|
||||
{l s='Total'}
|
||||
</div>
|
||||
<div class="md2 sm8 xs8 xxs8 text-right price">
|
||||
<div class="md3 sm8 xs8 xxs8 text-right price">
|
||||
{displayWtPriceWithCurrency price=$order->total_paid currency=$currency}
|
||||
</div>
|
||||
</div>
|
||||
@ -465,7 +465,7 @@
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="box clear">
|
||||
<div class="box offset-md2 md8 clear">
|
||||
<div class="inner">
|
||||
<form action="{$link->getPageLink('order-detail', true)|escape:'html':'UTF-8'}" method="post" class="" id="sendOrderMessage">
|
||||
<h2 class="title">{l s='Add a message'}</h2>
|
||||
|
@ -16,69 +16,51 @@
|
||||
<div class="order-paiement ctn">
|
||||
<div class="row">
|
||||
<div class="md8 sm12">
|
||||
<div class="box">
|
||||
<div class="inner">
|
||||
<h2 class="title">{l s='Please choose your payment method'}</h2>
|
||||
<div class="box-content">
|
||||
<div class="paiement clearfix">
|
||||
{if $HOOK_PAYMENT}
|
||||
{$HOOK_PAYMENT}
|
||||
{else}
|
||||
<p class="alert alert-warning">{l s='No payment modules have been installed.'}</p>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="paiement-list">
|
||||
<h2 class="title clearfix"><span class="offset-md3 md9">{l s='Please choose your payment method'}</span></h2>
|
||||
<div class="box-content">
|
||||
<div class="paiement clearfix">
|
||||
{if $HOOK_PAYMENT}
|
||||
{$HOOK_PAYMENT}
|
||||
{else}
|
||||
<p class="alert alert-warning">{l s='No payment modules have been installed.'}</p>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- CGV -->
|
||||
<div class="box">
|
||||
<div class="inner">
|
||||
<h3 class="title">{l s='Terms of service'}</h3>
|
||||
<div class="box-content cgv">
|
||||
<p class="checkbox clearfix">
|
||||
<div class="cgv">
|
||||
<h3 class="title clearfix"><span class="offset-md3 md9">{l s='Terms of service'}</h3>
|
||||
<div class="box-content ">
|
||||
<div class="checkbox row">
|
||||
<div class="md3">
|
||||
<input type="checkbox" name="cgv" id="cgv" class="custom-input inline" value="1" />
|
||||
</div>
|
||||
<div class="md9">
|
||||
<label for="cgv">
|
||||
{l s='I agree to the terms of service and will adhere to them unconditionally.'}<br />
|
||||
<a href="{$link_conditions|escape:'html':'UTF-8'}?content_only=1" class="iframe" rel="nofollow">({l s='Read the terms of service'})</a>
|
||||
<a href="{$link_conditions|escape:'html':'UTF-8'}?content_only=1" class="iframe" rel="nofollow">{l s='Read the terms of service'}</a>
|
||||
</label>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="validate-payment row">
|
||||
<div class="offset-md3 md6">
|
||||
<button type="submit" name="processAddress" class="btn">
|
||||
<span>{l s='Proceed to checkout'}</span>
|
||||
</button>
|
||||
<span>{l s='Order with obligation to pay.'}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="md4 resume hidden-sm hidden-xs block">
|
||||
<div class="inner clearfix">
|
||||
<div class="resume-cart">
|
||||
<h3>{l s='Cart resume'}</h3>
|
||||
<div class="resume-products">
|
||||
{foreach from=$products item=product name=productLoop}
|
||||
<div class="product clearfix">
|
||||
<div class="product-name row">
|
||||
<span class="md8 xs8 xxs8">
|
||||
{$product.cart_quantity} x {$product.name}
|
||||
{if isset($product.attributes_small)}
|
||||
<span class="product-attributes clearfix">
|
||||
<span class="taille">{$product.attributes_small}</span>
|
||||
</span>
|
||||
{/if}
|
||||
</span>
|
||||
<span class="md4 xs4 xxs4">
|
||||
{displayPrice price=$product.price_wt}<br />
|
||||
<span class="barre">
|
||||
{if ($product.price_without_specific_price) && $product.price_without_specific_price > $product.price_wt}
|
||||
{displayPrice price=$product.price_without_specific_price}
|
||||
{/if}
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
<div class="resume-price clearfix">
|
||||
<div class="resume-cart box">
|
||||
<div class="inner">
|
||||
<h3 class="title">{l s='Cart resume'}</h3>
|
||||
<div class="resume-price box-content clearfix">
|
||||
{if count($discounts)}
|
||||
{foreach from=$discounts item=discount name=discountLoop}
|
||||
<div class="discount row">
|
||||
@ -102,10 +84,6 @@
|
||||
<span class="md6 xs6 xxs6">{l s='Total shipping'} :</span>
|
||||
<span class="md6 xs6 xxs6">{displayPrice price=$shippingCost}</span>
|
||||
</div>
|
||||
<div class="taxes row">
|
||||
<span class="md6 xs6 xxs6">{l s='Tax'} :</span>
|
||||
<span class="md6 xs6 xxs6">{displayPrice price=$total_tax}</span>
|
||||
</div>
|
||||
<div class="price row">
|
||||
<span class="md6 xs6 xxs6">{l s='Total price'} :</span>
|
||||
<span class="md6 xs6 xxs6">{displayPrice price=$total_price}</span>
|
||||
@ -115,21 +93,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cart_navigation clear">
|
||||
<div>
|
||||
<span>{l s='Order with obligation to pay.'}</span>
|
||||
<button type="submit" name="processAddress" class="btn icon-right">
|
||||
<i class="icon icon-arrow-right"></i>
|
||||
<span>{l s='Proceed to checkout'}</span>
|
||||
</button>
|
||||
</div>
|
||||
<a href="{$link->getPageLink('order', true, NULL, "step=0")|escape:'html':'UTF-8'}" title="{l s='Previous'}" class="btn btn2 icon-left">
|
||||
<i class="icon icon-arrow-left"></i>
|
||||
<span>{l s='Continue Shopping'}</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
@ -144,7 +107,7 @@
|
||||
|
||||
$inputCgv = $('.cgv input');
|
||||
$checkedCgv = $inputCgv.is(':checked') ? true : false;
|
||||
$buttonSubmit = $('.cart_navigation button');
|
||||
$buttonSubmit = $('.validate-payment button');
|
||||
|
||||
$inputCgv.on('change', function() {
|
||||
$checkedCgv = $(this).is(':checked') ? true : false;
|
||||
@ -171,7 +134,6 @@
|
||||
else
|
||||
{
|
||||
$form = $input.parent().prev('div.hidden').children('form');
|
||||
|
||||
$form.submit();
|
||||
}
|
||||
});
|
||||
|
@ -8,7 +8,7 @@
|
||||
{/if}
|
||||
<!-- Steps -->
|
||||
<ul class="step clearfix" id="order_step">
|
||||
<li class="xs3 col-xxs-3 {if $current_step=='summary'}step_current {elseif $current_step=='login'}step_done_last step_done{else}{if $current_step=='payment' || $current_step=='shipping' || $current_step=='address' || $current_step=='login'}step_done{else}step_todo{/if}{/if} first">
|
||||
<li class="{if $current_step=='summary'}step_current {elseif $current_step=='login'}step_done_last step_done{else}{if $current_step=='payment' || $current_step=='shipping' || $current_step=='address' || $current_step=='login'}step_done{else}step_todo{/if}{/if} first">
|
||||
{if $current_step=='payment' || $current_step=='shipping' || $current_step=='address' || $current_step=='login'}
|
||||
<a href="{$link->getPageLink('order', true)}">
|
||||
<span>01.</span> <span class="hidden-xs hidden-xxs">{l s='My cart'}</span>
|
||||
@ -17,7 +17,7 @@
|
||||
<span>01.</span> <span class="hidden-xs hidden-xxs">{l s='My cart'}</span>
|
||||
{/if}
|
||||
</li>
|
||||
<li class="xs3 col-xxs-3 {if $current_step=='address'}step_current{elseif $current_step=='shipping'}step_done step_done_last{else}{if $current_step=='payment' || $current_step=='shipping'}step_done{else}step_todo{/if}{/if} third">
|
||||
<li class="{if $current_step=='address'}step_current{elseif $current_step=='shipping'}step_done step_done_last{else}{if $current_step=='payment' || $current_step=='shipping'}step_done{else}step_todo{/if}{/if} third">
|
||||
{if $current_step=='payment'}
|
||||
<a href="{$link->getPageLink('order', true, NULL, "{$smarty.capture.url_back}&step=1")|escape:'html':'UTF-8'}">
|
||||
<span>02.</span> <span class="hidden-xs hidden-xxs">{l s='Delivery'}</span>
|
||||
@ -26,7 +26,7 @@
|
||||
<span>02.</span> <span class="hidden-xs hidden-xxs">{l s='Delivery'}</span>
|
||||
{/if}
|
||||
</li>
|
||||
<li id="step_end" class="xs3 col-xxs-3 {if $current_step=='payment'}step_current{else}step_todo{/if} last">
|
||||
<li id="step_end" class="{if $current_step=='payment'}step_current{else}step_todo{/if} last">
|
||||
<span>03.</span> <span class="hidden-xs hidden-xxs">{l s='Confirmation'}</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -10,8 +10,11 @@
|
||||
{if $smarty.foreach.products.first && $category->hasBanner}
|
||||
<div class="img-cat lg4 md4 sm4 xs6 xxs12"><img src="{$base_dir}img/c/banners/{$category->id}.jpg" alt="" /></div>
|
||||
{/if}
|
||||
|
||||
{if $product.unit_price_ratio > 0}
|
||||
{math equation="price / ratio" price=$product.price_tax_exc ratio=round($product.unit_price_ratio) assign=unitPrice}
|
||||
{/if}
|
||||
|
||||
{math equation="price / ratio" price=$product.price ratio=round($product.unit_price_ratio) assign=unitPrice}
|
||||
<div class="product-ctn cols animated-full lg{if isset($nbProduct)}{12/$nbProduct}{else}3{/if} md4 sm4 xs6 col-xxs-12{if $key%2} alt{/if}" itemscope itemtype="http://schema.org/Product">
|
||||
<div class="inner">
|
||||
<div class="product-infos clearfix">
|
||||
@ -34,8 +37,10 @@
|
||||
{if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}
|
||||
<meta itemprop="price" content="{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}" />
|
||||
{/if}
|
||||
|
||||
<span class="unit-price">{convertPrice price=$unitPrice} <span class="packing">/{$product.unity}</span></span>
|
||||
|
||||
{if isset($unitPrice)}
|
||||
<span class="unit-price">{convertPrice price=$unitPrice} <span class="packing">/{$product.unity}</span></span>
|
||||
{/if}
|
||||
|
||||
{foreach from=$product.features item=feature}
|
||||
{if $feature.id_feature == 8}
|
||||
|
@ -10,7 +10,7 @@
|
||||
<a class="product-name" href="{$link->getProductLink($product.id_product, $product.link_rewrite, $product.category, null, null, $product.id_shop, $product.id_product_attribute)|escape:'html':'UTF-8'}">
|
||||
{$product.name|escape:'html':'UTF-8'}
|
||||
</a>
|
||||
<span class="packing">{l s='Boxes of '}{l s='bottles'}
|
||||
<span class="packing">{l s='Boxes of '} {$product.nb_per_box} {l s='bottles'}
|
||||
</div>
|
||||
|
||||
<div class="product-combination md1 text-center">
|
||||
|
@ -11,25 +11,21 @@
|
||||
|
||||
<!-- Panier vide -->
|
||||
{if isset($empty)}
|
||||
<div class="ctn">
|
||||
{if !isset($recap)}<div class="ctn">{/if}
|
||||
<p class="alert alert-warning">{l s='Your shopping cart is empty.'}</p>
|
||||
<p class="cart_navigation">
|
||||
<a
|
||||
href="{if (isset($smarty.server.HTTP_REFERER) && strstr($smarty.server.HTTP_REFERER, 'order.php')) || isset($smarty.server.HTTP_REFERER) && strstr($smarty.server.HTTP_REFERER, 'order-opc') || !isset($smarty.server.HTTP_REFERER)}{$link->getPageLink('index')}{else}{$smarty.server.HTTP_REFERER|escape:'html':'UTF-8'|secureReferrer}{/if}"
|
||||
class="continue btn btn2 icon-right"
|
||||
title="{l s='Continue shopping'}">
|
||||
<i class="icon icon-arrow-right"></i>
|
||||
<a href="{$link->getPageLink(index)}" class="continue btn btn2" title="{l s='Continue shopping'}">
|
||||
<span>{l s='Continue shopping'}</span>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
{if !isset($recap)}</div>{/if}
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
{if !isset($empty)}
|
||||
<div id="shopping-cart-products" class="table-div cart order-detail-content">
|
||||
<div class="table-head clearfix">
|
||||
<div class="ctn">
|
||||
{if !isset($recap)}<div class="ctn">{/if}
|
||||
<div class="offset-md1 md2 hidden-sm hidden-xs hidden-xxs">{l s='Product'}</div>
|
||||
<div class="md1 hidden-sm hidden-xs hidden-xxs text-center">{l s='Nicotine'}</div>
|
||||
<div class="md2 hidden-sm hidden-xs hidden-xxs text-right">{l s='Unit price'}</div>
|
||||
@ -37,29 +33,25 @@
|
||||
<div class="md2 hidden-sm hidden-xs hidden-xxs text-center">{l s='Stock'}</div>
|
||||
<div class="md2 hidden-sm hidden-xs hidden-xxs text-right head-total">{l s='Total'}</div>
|
||||
<div class="sm12 xs12 hidden-lg hidden-md">{l s='Orders details'}</div>
|
||||
</div>
|
||||
{if !isset($recap)}</div>{/if}
|
||||
</div>
|
||||
|
||||
<div class="products">
|
||||
<div class="ctn">
|
||||
{if !isset($recap)}<div class="ctn">{/if}
|
||||
<p style="display:none" id="emptyCartWarning" class="alert alert-warning">{l s='Your shopping cart is empty.'}</p>
|
||||
|
||||
|
||||
{assign var='total_discounts_num' value="{if $total_discounts != 0}1{else}0{/if}"}
|
||||
{assign var='use_show_taxes' value="{if $use_taxes && $show_taxes}2{else}0{/if}"}
|
||||
{assign var='total_wrapping_taxes_num' value="{if $total_wrapping != 0}1{else}0{/if}"}
|
||||
|
||||
{assign var='odd' value=0}
|
||||
{assign var='have_non_virtual_products' value=false}
|
||||
{assign var='hasGuarentee' value=false}
|
||||
|
||||
<!-- Ligne(s) de produit -->
|
||||
{foreach $products as $product}
|
||||
{if $product.is_virtual == 0}
|
||||
{assign var='have_non_virtual_products' value=true}
|
||||
{/if}
|
||||
{if $product.id_category_default == 8}
|
||||
{assign var='hasGuarentee' value=true}
|
||||
{/if}
|
||||
|
||||
{assign var='productId' value=$product.id_product}
|
||||
{assign var='productAttributeId' value=$product.id_product_attribute}
|
||||
@ -84,17 +76,17 @@
|
||||
{foreach $gift_products as $product}
|
||||
{include file="$tpl_dir./shopping-cart-product-line.tpl" product=$product}
|
||||
{/foreach}
|
||||
</div>
|
||||
{if !isset($recap)}</div>{/if}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ctn">
|
||||
{if !isset($recap)}<div class="ctn">{/if}
|
||||
<div id="shopping-cart-calcul" class="table-row row block">
|
||||
{if $voucherAllowed}
|
||||
<div class="lg5 md5">
|
||||
<div class="lg5 md5">
|
||||
{if $voucherAllowed}
|
||||
{if $displayVouchers}
|
||||
<div class="box">
|
||||
<div class="lg12 md12 inner">
|
||||
<div class="featured-voucher">
|
||||
<div class="inner">
|
||||
<p class="title" class="lg12 md12 title-offers">{l s='Take advantage of our exclusive offers:'}</p>
|
||||
<div id="display_cart_vouchers">
|
||||
{foreach $displayVouchers as $voucher}
|
||||
@ -116,20 +108,24 @@
|
||||
</div>
|
||||
{/if}
|
||||
<form action="{$link->getPageLink('order', true)}" method="post" id="voucher" class="form-inline">
|
||||
<label>{l s='You have a voucher ?'}</label>
|
||||
<label><span>{l s='You have a voucher ?'}</span></label>
|
||||
<div class="inner">
|
||||
<input type="text" class="discount_name form-control" id="discount_name" name="discount_name" value="{if isset($discount_name) && $discount_name}{$discount_name}{/if}" placeholder="{l s='Enter your code'}" />
|
||||
<input type="hidden" name="submitDiscount" />
|
||||
<button type="submit" name="submitAddDiscount" class="btn"><span>{l s='OK'}</span></button>
|
||||
<button type="submit" name="submitAddDiscount" class="btn"><span>{l s='Valider'}</span></button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
{/if}
|
||||
{if !isset($recap)}
|
||||
<a href="{$link->getPageLink('index')}" class="continue btn btn2" title="{l s='Continue shopping'}">
|
||||
<span>{l s='Continue shopping'}</span>
|
||||
</a>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div class="offset-lg1 lg6 md6 prices">
|
||||
<div class="offset-lg2 lg5 md6 prices">
|
||||
<div class="inner">
|
||||
{if sizeof($discounts)}
|
||||
<div class="line code-promo">
|
||||
@ -137,10 +133,9 @@
|
||||
<div class="md6">
|
||||
{$discount.name}
|
||||
</div>
|
||||
<div class="md6">
|
||||
<div class="md6 delete">
|
||||
{if strlen($discount.code)}
|
||||
<a href="{if $opc}{$link->getPageLink('order-opc', true)}{else}{$link->getPageLink('order', true)}{/if}?deleteDiscount={$discount.id_discount}" class="price_discount_delete" title="{l s='Delete'}">
|
||||
<i class="icon icon-trash"></i>
|
||||
</a>
|
||||
{/if}
|
||||
<span>{if !$priceDisplay}{displayPrice price=$discount.value_real*-1}{else}{displayPrice price=$discount.value_tax_exc*-1}{/if}</span>
|
||||
@ -151,12 +146,12 @@
|
||||
|
||||
<div class="line">
|
||||
<div class="md6 sm6 xs6 xxs6">{l s='Total number of boxes'}</div>
|
||||
<div class="nb-total-boxes md6 sm6 xs6 xxs6">{Context::getContext()->cart->nbProducts()}</div>
|
||||
<div class="nb-total-boxes md6 sm6 xs6 xxs6"><span class="nb-total-boxes">{$productNumber}</span></div>
|
||||
</div>
|
||||
|
||||
<div class="line">
|
||||
<div class="md6 sm6 xs6 xxs6">{l s='Total price with taxes'}</div>
|
||||
<div id="total_tax" class="md6 sm6 xs6 xxs6">{displayPrice price=$total_products_wt}</div>
|
||||
<div class="md6 sm6 xs6 xxs6">{l s='Total products HT'}</div>
|
||||
<div id="total_tax" class="md6 sm6 xs6 xxs6">{displayPrice price=$total_products}</div>
|
||||
</div>
|
||||
|
||||
{if $total_shipping_tax_exc <= 0 && !isset($virtualCart)}
|
||||
@ -185,36 +180,27 @@
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
{if $priceDisplay}
|
||||
<div class="line">
|
||||
<div class="label-total-price md6 sm6 xs6 xxs5">{l s='Total products HT'}</div>
|
||||
<div id="total_price" class="md6 sm6 xs6 xxs7">{displayPrice price=$total_price_without_tax}</div>
|
||||
</div>
|
||||
{else}
|
||||
<div class="line">
|
||||
<div class="label-total-price md6 sm6 xs6 xxs5">{l s='Total products (tax incl.)'}</div>
|
||||
<div id="total_price" class="md6 sm6 xs6 xxs7">{displayPrice price=$total_price}</div>
|
||||
</div>
|
||||
<div class="line total_price">
|
||||
<div class="label-total-price md6 sm6 xs6 xxs5">{l s='Total products (tax incl.)'}</div>
|
||||
<div id="total_price" class="md6 sm6 xs6 xxs7">{displayPrice price=$total_price}</div>
|
||||
</div>
|
||||
|
||||
{if !isset($recap)}
|
||||
<p class="cart_navigation clearfix">
|
||||
{if !$opc}
|
||||
<a href="{if $back}{$link->getPageLink('order', true, NULL, 'step=1&back={$back}')|escape:'html':'UTF-8'}{else}{$link->getPageLink('order', true, NULL, 'step=1')|escape:'html':'UTF-8'}{/if}" class="btn standard-checkout" title="{l s='Proceed to checkout'}">
|
||||
<span>{l s='Proceed to checkout'}</span>
|
||||
</a>
|
||||
{/if}
|
||||
<a href="{$link->getPageLink('order', true, NULL, 'emptyCart=1')|escape:'html':'UTF-8'}" class="empty-cart btn btn2" title="{l s='Continue shopping'}">
|
||||
<span>{l s='Empty my cart'}</span>
|
||||
</a>
|
||||
</p>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{if !isset($recap)}
|
||||
<p class="cart_navigation clearfix">
|
||||
{if !$opc}
|
||||
<a href="{if $back}{$link->getPageLink('order', true, NULL, 'step=1&back={$back}')|escape:'html':'UTF-8'}{else}{$link->getPageLink('order', true, NULL, 'step=1')|escape:'html':'UTF-8'}{/if}" class="btn icon-right standard-checkout" title="{l s='Proceed to checkout'}">
|
||||
<i class="icon icon-arrow-right"></i>
|
||||
<span>{l s='Proceed to checkout'}</span>
|
||||
</a>
|
||||
{/if}
|
||||
<a href="{$link->getPageLink('index')}" class="continue btn btn2 icon-left" title="{l s='Continue shopping'}">
|
||||
<i class="icon icon-arrow-left"></i>
|
||||
<span>{l s='Continue shopping'}</span>
|
||||
</a>
|
||||
</p>
|
||||
{/if}
|
||||
</div>
|
||||
{if !isset($recap)}</div>{/if}
|
||||
|
||||
{if $show_option_allow_separate_package}
|
||||
<p>
|
||||
|