Merged branch master into master
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,7 +31,10 @@ 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' => $summary['total_shipping'],
|
||||
'total_shipping_tax_exc' => $summary['total_shipping_tax_exc'],
|
||||
'total_price' => $summary['total_price'],
|
||||
'voucherAllowed' => false,
|
||||
|
@ -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}
|
||||
|
@ -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 */
|
||||
@ -265,31 +290,18 @@ header.page-heading.order-process { padding: 15px 0 0 0; }
|
||||
text-transform: uppercase;
|
||||
}
|
||||
header.page-heading.order-process h1 { margin-bottom: 50px }
|
||||
|
||||
@media (max-width: 991px) {
|
||||
}
|
||||
@media (max-width: 767px) {
|
||||
}
|
||||
|
||||
/*************************************************************************************************************
|
||||
************************************ BREADCRUMBS **************************************
|
||||
**************************************************************************************************************/
|
||||
#breadcrumbs {
|
||||
|
||||
}
|
||||
#breadcrumbs .crumb {
|
||||
|
||||
header.page-heading.account .short-desc {
|
||||
color: #fff;
|
||||
font-size: 13px;
|
||||
margin-top: 15px;
|
||||
}
|
||||
#breadcrumbs .crumb span.navigation-pipe {
|
||||
|
||||
}
|
||||
#breadcrumbs .crumb a {
|
||||
|
||||
}
|
||||
#breadcrumbs .crumb span a,
|
||||
#breadcrumbs .crumb span span {
|
||||
|
||||
}
|
||||
|
||||
@media (max-width: 1320px) {
|
||||
header.page-heading.account .short-desc { margin-top: 35px; text-align: center; }
|
||||
}
|
||||
@media (max-width: 991px) {
|
||||
header.page-heading { padding: 50px 0; }
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************************************************
|
||||
@ -297,28 +309,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;
|
||||
@ -525,6 +540,7 @@ header.page-heading.order-process { padding: 15px 0 0 0; }
|
||||
line-height: 40px;
|
||||
width: 20%;
|
||||
}
|
||||
.product-ctn .product-combinations ul .hover .inner button[disabled] { opacity: 0.5; }
|
||||
.product-ctn .product-combinations ul .hover .inner .value-container button.in-cart,
|
||||
.product-ctn .product-combinations ul .hover .inner .value-container button:hover { background: #e0c980; color: #202020 }
|
||||
.product-ctn .product-combinations ul .hover .inner .value-container button.in-cart:first-child { background: #3c3c3c; color: #fff }
|
||||
@ -566,147 +582,29 @@ header.page-heading.order-process { padding: 15px 0 0 0; }
|
||||
top: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 1199px) {
|
||||
@media (max-width: 1320px) {
|
||||
.product-ctn .add-to-cart-pane { padding-top: 10px }
|
||||
}
|
||||
@media (max-width: 767px) {
|
||||
.product-ctn .product-img-ctn { text-align: center }
|
||||
.product-ctn .product-infos { padding: 15px }
|
||||
.product-ctn .product-infos .product-name::after { margin: 10px 0 0 0 }
|
||||
.product-ctn .product-infos .product-name a { height: auto; }
|
||||
.product-ctn .product-infos .product-details .product-stock { margin:15px 0 0 0; position: static; }
|
||||
@media (max-width: 991px) {
|
||||
.product-ctn .product-combinations ul { padding: 20px 10px; text-align: center; }
|
||||
.product-ctn .product-combinations ul .hover { top: 55px; }
|
||||
.product-ctn .product-combinations li { display: inline-block; float: none; padding: 0 10px }
|
||||
.product-ctn .product-combinations li > .inner { height: 35px; width: 35px; }
|
||||
.product-ctn .product-combinations li > .inner .nb { height: 30px; line-height: 25px; width: 35px }
|
||||
|
||||
.product-ctn .product-combinations .alt li .hover { margin: 0 0 0 -27px; }
|
||||
.product-ctn .product-combinations .alt li .hover .inner::before { left: 25px; }
|
||||
.product-ctn .product-combinations .alt li + li .hover { margin: 0 0 0 -65px; }
|
||||
.product-ctn .product-combinations .alt li + li .hover .inner::before { left: 65px }
|
||||
.product-ctn .product-combinations .alt li + li + li .hover { margin: 0 0 0 -111px; }
|
||||
.product-ctn .product-combinations .alt li + li + li .hover .inner::before { left: 110px; }
|
||||
.product-ctn .product-combinations .alt li + li + li + li .hover { margin: 0 0 0 -140px; }
|
||||
.product-ctn .product-combinations .alt li + li + li + li .hover .inner::before { left: 140px; }
|
||||
.product-ctn .product-combinations .alt li + li + li + li + li .hover { margin: 0 0 0 -157px; }
|
||||
.product-ctn .product-combinations .alt li + li + li + li + li .hover .inner::before { left: 155px; }
|
||||
.product-ctn .product-combinations .alt li + li + li + li + li + li .hover { margin: 0 0 0 -193px; }
|
||||
.product-ctn .product-combinations .alt li + li + li + li + li + li .hover .inner::before { left: 195px; }
|
||||
}
|
||||
@media (max-width: 580px) {
|
||||
|
||||
}
|
||||
@media (max-width: 500px) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************************************************
|
||||
************************************* PAGINATION ****************************************
|
||||
**************************************************************************************************************/
|
||||
#pagination {
|
||||
display: block;
|
||||
padding: 20px 0;
|
||||
}
|
||||
#pagination .pagination_previous {
|
||||
color: #93959e;
|
||||
font-size: 13px;
|
||||
}
|
||||
#pagination .pagination_previous > * {
|
||||
background: #fff;
|
||||
float: left;
|
||||
padding: 10px 12px 10px 30px;
|
||||
position: relative;
|
||||
}
|
||||
#pagination .pagination_previous > a { color: #333; }
|
||||
#pagination .pagination_previous > * i {
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
}
|
||||
|
||||
#pagination .pagination_next {
|
||||
color: #93959e;
|
||||
font-size: 13px;
|
||||
}
|
||||
#pagination .pagination_next > * {
|
||||
background: #fff;
|
||||
float: right;
|
||||
padding: 10px 30px 10px 12px;
|
||||
position: relative;
|
||||
}
|
||||
#pagination .pagination_next > a { color: #333; }
|
||||
#pagination .pagination_next > * i {
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
#pagination ul {
|
||||
font-family: "OpenSans";
|
||||
font-size: 13px;
|
||||
font-weight: normal;
|
||||
text-align: center;
|
||||
}
|
||||
#pagination ul li {
|
||||
display: inline-block;
|
||||
margin: 0 5px;
|
||||
}
|
||||
#pagination ul li a, #pagination ul li:hover a { text-decoration: none; }
|
||||
#pagination ul li.active span span, #pagination ul li:hover a span { background: #2b2d36; border-color: #ed7b03; color: #fff }
|
||||
#pagination ul li > a span, #pagination ul li > span span {
|
||||
background: #fff;
|
||||
color: #2b2d36;
|
||||
display: block;
|
||||
height: 100%;
|
||||
padding: 10px 12px;
|
||||
text-align: center;
|
||||
}
|
||||
#pagination ul li.active span { color: #2b2d36 }
|
||||
|
||||
|
||||
/*************************************************************************************************************
|
||||
************************************** POPOVER ******************************************
|
||||
**************************************************************************************************************/
|
||||
.popover {
|
||||
border-radius: 0;
|
||||
box-shadow: none;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
}
|
||||
.popover i {
|
||||
color: #5f616a;
|
||||
margin-left: 5px;
|
||||
padding-right: 0;
|
||||
}
|
||||
.popover .popover-content {
|
||||
background: #fff;
|
||||
bottom: 30px;
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
|
||||
color: #5f616a;
|
||||
left: 50%;
|
||||
font-size: 13px;
|
||||
font-style: italic;
|
||||
padding: 10px;
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
transform: translateX(-50%);
|
||||
-webkit-transform: translateX(-50%);
|
||||
-moz-transform: translateX(-50%);
|
||||
transition: all 0.3s ease 0s;
|
||||
-webkit-transition: all 0.3s ease 0s;
|
||||
-moz-transition: all 0.3s ease 0s;
|
||||
max-width: 200px;
|
||||
z-index: -1;
|
||||
}
|
||||
.popover-content:before {
|
||||
background: #fff;
|
||||
bottom: -8px;
|
||||
content: "";
|
||||
left: 50%;
|
||||
margin: 0 0 0 -8px;
|
||||
position: absolute;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
transform: rotate(-45deg);
|
||||
-moz-transform: rotate(-45deg);
|
||||
-web-transform: rotate(-45deg);
|
||||
z-index: -1;
|
||||
}
|
||||
.popover:hover .popover-content { opacity: 1; z-index: 3; }
|
||||
.popover .popover-title {
|
||||
background: #fff;
|
||||
border: 0;
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
margin: 0 0 0 0;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.popover li {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************************************************
|
||||
************************************** FANCYBOX *****************************************
|
||||
@ -766,22 +664,6 @@ body .fancybox-overlay {
|
||||
.fancybox-overlay .fancybox-close { right: 0 !important }
|
||||
}
|
||||
|
||||
/*************************************************************************************************************
|
||||
************************************ LIGHTGALLERY ***************************************
|
||||
**************************************************************************************************************/
|
||||
.lg-backdrop { background-color: #fff }
|
||||
.lg-toolbar { background-color: #363842; font-family: 'Oswald' }
|
||||
.lg-actions .lg-next, .lg-actions .lg-prev {
|
||||
background: #363842;
|
||||
margin-top: -30px;
|
||||
padding: 20px 10px;
|
||||
}
|
||||
.lg-sub-html { font-family: 'Oswald' }
|
||||
.lg-outer .lg-thumb-outer { background-color: #363842 }
|
||||
.lg-outer .lg-thumb-item { background: #fff; border-radius: 0; }
|
||||
.lg-outer .lg-thumb-item.active, .lg-outer .lg-thumb-item:hover { border-color: #f25f0f }
|
||||
.lg-outer .lg-thumb-item img { max-width: 100%; }
|
||||
|
||||
/*************************************************************************************************************
|
||||
*************************************** ALERT *******************************************
|
||||
**************************************************************************************************************/
|
||||
@ -848,7 +730,7 @@ body .fancybox-overlay {
|
||||
@media (max-width: 991px) {
|
||||
.table-div .table-row { display: block; padding: 15px; }
|
||||
.table-div .table-row > div { border: 0; font-size: 14px; padding: 0; }
|
||||
.table-div .table-row strong { color: #f25f0f; display: block; font-size: 14px; font-weight: normal; margin: 10px 0 0 0; text-transform: uppercase; }
|
||||
.table-div .table-row strong { color: #202020; display: block; font-size: 14px; font-family: 'ITCAvantGarde'; font-weight: normal; margin: 10px 0 0 0; text-transform: uppercase; }
|
||||
.table-div .table-row .table-hide-info { max-height: 200px }
|
||||
}
|
||||
@media (max-width: 767px) {
|
||||
@ -874,38 +756,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 +801,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%;
|
||||
@ -952,9 +836,9 @@ body .fancybox-overlay {
|
||||
|
||||
/* Block */
|
||||
.custom-checkbox:after {
|
||||
background-color: #f1f1f1;
|
||||
background-position: 20px -351px;
|
||||
border: 2px solid #67686d;
|
||||
background-color: #fff;
|
||||
background-position: 0px -200px;
|
||||
border: 1px solid #dbdbdb;
|
||||
content: "";
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
@ -972,7 +856,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 +874,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 +893,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 +910,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;
|
||||
}
|
||||
|
@ -854,7 +854,7 @@ button, input, textarea {
|
||||
}
|
||||
|
||||
}
|
||||
@media (min-width: 992px) and (max-width: 1199px) {
|
||||
@media (min-width: 992px) and (max-width: 1320px) {
|
||||
.hidden-md, .md-hidden {
|
||||
display: none !important;
|
||||
}
|
||||
@ -901,7 +901,7 @@ button, input, textarea {
|
||||
}
|
||||
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
@media (min-width: 1321px) {
|
||||
.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12,
|
||||
.lg1, .lg2, .lg3, .lg4, .lg5, .lg6, .lg7, .lg8, .lg9, .lg10, .lg11, .lg12 {
|
||||
float: left;
|
||||
|
@ -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>
|
||||
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 3.3 KiB |
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));
|
||||
|
@ -249,17 +249,13 @@ $_LANG['order-address_da9d6ec2998a07c31ec9eb93c9f254ed'] = 'Votre adresse de fac
|
||||
$_LANG['order-address_dd1f775e443ff3b9a89270713580a51b'] = 'Précédent';
|
||||
$_LANG['order-address_ec211f7c20af43e742bf2570c3cb84f9'] = 'Ajouter';
|
||||
$_LANG['order-address_f5bf48aa40cad7891eb709fcf1fde128'] = 'produit';
|
||||
$_LANG['order-carrier_06933067aafd48425d67bcb01bba5cb6'] = 'Mettre à jour';
|
||||
$_LANG['order-carrier_284b47b0bb63ae2df3b29f0e691d6fcf'] = 'Adresses';
|
||||
$_LANG['order-carrier_390b4c95516a4b7faf97389ca46fc0c7'] = 'Utiliser la même adresse pour la facturation';
|
||||
$_LANG['order-carrier_86024cad1e83101d97359d7351051156'] = 'produits';
|
||||
$_LANG['order-carrier_a40cab5994f36d4c48103a22ca082e8f'] = 'Votre panier';
|
||||
$_LANG['order-carrier_a4d3b161ce1309df1c4e25df28694b7b'] = 'ENVOYER';
|
||||
$_LANG['order-carrier_b15e1100a6196acba01ef7aaa5b2a9e5'] = 'Ajouter une nouvelle adresse';
|
||||
$_LANG['order-carrier_c20905e8fdd34a1bf81984e597436134'] = 'Continuer mes achats';
|
||||
$_LANG['order-carrier_c9cc8cce247e49bae79f15173ce97354'] = 'Valider';
|
||||
$_LANG['order-carrier_dd1f775e443ff3b9a89270713580a51b'] = 'Précédent';
|
||||
$_LANG['order-carrier_ec211f7c20af43e742bf2570c3cb84f9'] = 'Ajouter';
|
||||
$_LANG['order-carrier_f5bf48aa40cad7891eb709fcf1fde128'] = 'produit';
|
||||
$_LANG['order-confirmation_241cc604e9c62701f4bc4a2e1848ec13'] = 'Voir l\'historique de vos commandes';
|
||||
$_LANG['order-confirmation_4082ea29b4f196c4f60533500139725a'] = 'Suivre ma commande';
|
||||
@ -410,7 +406,6 @@ $_LANG['order-opc_ea295188b69aa5e04810abcc38b2b2be'] = 'a été sélectionné';
|
||||
$_LANG['order-opc_fe816ec4b30c11a39edfd8b0a4cfab49'] = 'erreur(s)';
|
||||
$_LANG['order-payment_0eede552438475bdfe820c13f24c9399'] = 'Total TTC';
|
||||
$_LANG['order-payment_3e306e2f574624a078025f742ff19f5f'] = 'Récapitulatif';
|
||||
$_LANG['order-payment_4b78ac8eb158840e9638a3aeb26c4a9d'] = 'TVA';
|
||||
$_LANG['order-payment_4fec535a4ddb75ad13046ad36094817f'] = 'Lire les Conditions générales de vente';
|
||||
$_LANG['order-payment_7822369c3be561f920630115c0e28d54'] = 'Veuillez choisir un moyen de paiement.';
|
||||
$_LANG['order-payment_7e0bf6d67701868aac3116ade8fea957'] = 'Valider ma commande';
|
||||
@ -420,8 +415,6 @@ $_LANG['order-payment_a40cab5994f36d4c48103a22ca082e8f'] = 'Votre panier';
|
||||
$_LANG['order-payment_a517c010c3051188c5155feeb04b2ff5'] = 'Merci d\'accepter les conditions générales de vente avant de confirmer votre commande';
|
||||
$_LANG['order-payment_aaffa9bb2d08e8f918adb99903eb5caa'] = 'Récapitulatif & paiement';
|
||||
$_LANG['order-payment_ad88a6c9e8c880f23639321d78ec859d'] = 'J\'ai lu les conditions générales de vente et j\'y adhère sans réserve. ';
|
||||
$_LANG['order-payment_c20905e8fdd34a1bf81984e597436134'] = 'Continuer mes achats';
|
||||
$_LANG['order-payment_dd1f775e443ff3b9a89270713580a51b'] = 'Précédent';
|
||||
$_LANG['order-payment_de84190fb08e897e80d684034820286d'] = 'Commande avec obligation de paiement.';
|
||||
$_LANG['order-payment_e4045598261988d9988c594243a9434d'] = 'Conditions générales de vente';
|
||||
$_LANG['order-payment_e747da89afc98485bb90928d397e9821'] = 'Choisissez votre méthode de paiement';
|
||||
@ -460,7 +453,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 +519,43 @@ $_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_97d3a45dcedf7f8483bdbf936047ff7e'] = 'Vider mon panier';
|
||||
$_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';
|
||||
|
@ -0,0 +1,16 @@
|
||||
<!-- Block Advmenu module -->
|
||||
{if $blocks}
|
||||
<ul class="row">
|
||||
{foreach from=$blocks item=block key=key}
|
||||
<li class="md3 sm6 xs6 xxs6">
|
||||
<span class="title">{$block.title}</span>
|
||||
<span class="subtitle">{$block.subtitle}</span>
|
||||
</li>
|
||||
{/foreach}
|
||||
<li class="md3 sm6 xs6 xxs6">
|
||||
<span class="title hidden-lg hidden-md hidden-sm">{l s='Reviews' mod='advreassurance'}</span>
|
||||
<img src="{$base_dir}img/verified-reviews.png" alt="">
|
||||
</li>
|
||||
</ul>
|
||||
{/if}
|
||||
<!-- /Block Advmenu module -->
|
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 sm4">
|
||||
<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';
|
@ -2,54 +2,54 @@
|
||||
|
||||
global $_MODULE;
|
||||
$_MODULE = array();
|
||||
$_MODULE['<{bankwire}fanavenue>bankwire_05adcee99142c1a60fb38bb1330bbbc1'] = 'Virement bancaire';
|
||||
$_MODULE['<{bankwire}fanavenue>bankwire_a246a8e9907530c4c36b8b4c37bbc823'] = 'Accepter les paiements par virement.';
|
||||
$_MODULE['<{bankwire}fanavenue>bankwire_cbe0a99684b145e77f3e14174ac212e3'] = 'Êtes-vous certain de vouloir effacer vos données ?';
|
||||
$_MODULE['<{bankwire}fanavenue>bankwire_0ea0227283d959415eda0cfa31d9f718'] = 'Le titulaire du compte et les informations bancaires doivent être configurés.';
|
||||
$_MODULE['<{bankwire}fanavenue>bankwire_a02758d758e8bec77a33d7f392eb3f8a'] = 'Aucune devise disponible pour ce module';
|
||||
$_MODULE['<{bankwire}fanavenue>bankwire_bfa43217dfe8261ee7cb040339085677'] = 'Les détails du compte sont requis';
|
||||
$_MODULE['<{bankwire}fanavenue>bankwire_ccab155f173ac76f79eb192703f86b18'] = 'Le titulaire du compte est requis.';
|
||||
$_MODULE['<{bankwire}fanavenue>bankwire_c888438d14855d7d96a2724ee9c306bd'] = 'Mise à jour réussie';
|
||||
$_MODULE['<{bankwire}fanavenue>bankwire_4ffaad55a1d22c453e7c9bad67b0598f'] = 'Payer par virement bancaire';
|
||||
$_MODULE['<{bankwire}fanavenue>bankwire_5dd532f0a63d89c5af0243b74732f63c'] = 'Coordonnées';
|
||||
$_MODULE['<{bankwire}fanavenue>bankwire_857216dd1b374de9bf54068fcd78a8f3'] = 'Titulaire';
|
||||
$_MODULE['<{bankwire}fanavenue>bankwire_3ec365dd533ddb7ef3d1c111186ce872'] = 'Détails';
|
||||
$_MODULE['<{bankwire}fanavenue>bankwire_6b154cafbab54ba3a1e76a78c290c02a'] = 'Comme le code banque, l\'IBAN ou encore le BIC.';
|
||||
$_MODULE['<{bankwire}fanavenue>bankwire_f9a1a1bb716cbae0503d351ea2af4b34'] = 'Adresse de la banque';
|
||||
$_MODULE['<{bankwire}fanavenue>bankwire_c9cc8cce247e49bae79f15173ce97354'] = 'Enregistrer';
|
||||
$_MODULE['<{bankwire}fanavenue>validation_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Cette méthode de paiement n\'est pas disponible.';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_execution_644818852b4dd8cf9da73543e30f045a'] = 'Retour à la commande';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_execution_6ff063fbc860a79759a7369ac32cee22'] = 'Processus de commande';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_execution_511e8b930b4d3d6002984c0373eb6d4b'] = 'Paiement par virement bancaire';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_execution_f1d3b424cd68795ecaa552883759aceb'] = 'Récapitulatif de commande';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_execution_879f6b8877752685a966564d072f498f'] = 'Votre panier est vide';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_execution_05adcee99142c1a60fb38bb1330bbbc1'] = 'Virement bancaire';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_execution_afda466128ee0594745d9f8152699b74'] = 'Vous avez choisi de régler par virement bancaire.';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_execution_c884ed19483d45970c5bf23a681e2dd2'] = 'Voici un bref récapitulatif de votre commande :';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_execution_e2867a925cba382f1436d1834bb52a1c'] = 'Le montant total de votre commande s\'élève à';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_execution_1f87346a16cf80c372065de3c54c86d9'] = 'TTC';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_execution_b28be4c423d93e02081f4e79fe2434e8'] = 'Nous acceptons plusieurs devises pour votre virement.';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_execution_a7a08622ee5c8019b57354b99b7693b2'] = 'Merci de choisir parmi les suivantes :';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_execution_a854d894458d66d92cabf0411c499ef4'] = 'Nous acceptons la devise suivante pour votre paiement :';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_execution_3dd021316505c0204989f984246c6ff1'] = 'Nos coordonnées bancaires seront affichées sur la page suivante.';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_execution_edd87c9059d88fea45c0bd6384ce92b9'] = 'Veuillez confirmer votre commande en cliquant sur « Je confirme ma commande ».';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_execution_46b9e3665f187c739c55983f757ccda0'] = 'Je confirme ma commande';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_execution_569fd05bdafa1712c4f6be5b153b8418'] = 'Autres moyens de paiement';
|
||||
$_MODULE['<{bankwire}fanavenue>infos_c1be305030739396775edaca9813f77d'] = 'Ce module vous permet d\'accepter les paiements par virement bancaire.';
|
||||
$_MODULE['<{bankwire}fanavenue>infos_60742d06006fde3043c77e6549d71a99'] = 'Si le client choisit ce mode de paiement, la commande passera à l\'état \"Paiement en attente\".';
|
||||
$_MODULE['<{bankwire}fanavenue>infos_5fb4bbf993c23848433caf58e6b2816d'] = 'Par conséquent, vous devez confirmer manuellement la commande dès que vous recevrez le virement.';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'Votre commande sur %s a bien été enregistrée.';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_return_1f8cdc30326f1f930b0c87b25fdac965'] = 'Veuillez nous envoyer un virement bancaire avec :';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_return_b2f40690858b404ed10e62bdf422c704'] = 'Montant';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_return_5ca0b1b910f393ed1f9f6fa99e414255'] = 'à l\'ordre de';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_return_d717aa33e18263b8405ba00e94353cdc'] = 'suivant ces détails';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_return_984482eb9ff11e6310fef641d2268a2a'] = 'à cette banque';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_return_bb4ec5aac6864a05fcc220cccd8e82f9'] = 'N\'oubliez pas d\'indiquer votre numéro de commande %d dans l\'objet de votre virement.';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_return_1faa25b80a8d31e5ef25a78d3336606d'] = 'N\'oubliez pas d\'indiquer votre référence de commande %s dans le sujet de votre virement.';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_return_19c419a8a4f1cd621853376a930a2e24'] = 'Un e-mail contenant ces informations vous a été envoyé.';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_return_b9a1cae09e5754424e33764777cfcaa0'] = 'Votre commande sera expédiée dès réception de votre virement.';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_return_ca7e41a658753c87973936d7ce2429a8'] = 'Pour toute question ou information complémentaire, veuillez contacter notre';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_return_66fcf4c223bbf4c7c886d4784e1f62e4'] = 'service client';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_return_d15feee53d81ea16269e54d4784fa123'] = 'Nous avons rencontré un problème avec votre commande. Nous vous invitons à prendre contact avec notre';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_5e1695822fc5af98f6b749ea3cbc9b4c'] = 'Payer par virement bancaire';
|
||||
$_MODULE['<{bankwire}fanavenue>payment_4e1fb9f4b46556d64db55d50629ee301'] = '(le traitement de la commande sera plus long)';
|
||||
$_MODULE['<{bankwire}roykin>bankwire_05adcee99142c1a60fb38bb1330bbbc1'] = 'Virement bancaire';
|
||||
$_MODULE['<{bankwire}roykin>bankwire_a246a8e9907530c4c36b8b4c37bbc823'] = 'Accepter les paiements par virement.';
|
||||
$_MODULE['<{bankwire}roykin>bankwire_cbe0a99684b145e77f3e14174ac212e3'] = 'Êtes-vous certain de vouloir effacer vos données ?';
|
||||
$_MODULE['<{bankwire}roykin>bankwire_0ea0227283d959415eda0cfa31d9f718'] = 'Le titulaire du compte et les informations bancaires doivent être configurés.';
|
||||
$_MODULE['<{bankwire}roykin>bankwire_a02758d758e8bec77a33d7f392eb3f8a'] = 'Aucune devise disponible pour ce module';
|
||||
$_MODULE['<{bankwire}roykin>bankwire_bfa43217dfe8261ee7cb040339085677'] = 'Les détails du compte sont requis';
|
||||
$_MODULE['<{bankwire}roykin>bankwire_ccab155f173ac76f79eb192703f86b18'] = 'Le titulaire du compte est requis.';
|
||||
$_MODULE['<{bankwire}roykin>bankwire_c888438d14855d7d96a2724ee9c306bd'] = 'Mise à jour réussie';
|
||||
$_MODULE['<{bankwire}roykin>bankwire_4ffaad55a1d22c453e7c9bad67b0598f'] = 'Payer par virement bancaire';
|
||||
$_MODULE['<{bankwire}roykin>bankwire_5dd532f0a63d89c5af0243b74732f63c'] = 'Coordonnées';
|
||||
$_MODULE['<{bankwire}roykin>bankwire_857216dd1b374de9bf54068fcd78a8f3'] = 'Titulaire';
|
||||
$_MODULE['<{bankwire}roykin>bankwire_3ec365dd533ddb7ef3d1c111186ce872'] = 'Détails';
|
||||
$_MODULE['<{bankwire}roykin>bankwire_6b154cafbab54ba3a1e76a78c290c02a'] = 'Comme le code banque, l\'IBAN ou encore le BIC.';
|
||||
$_MODULE['<{bankwire}roykin>bankwire_f9a1a1bb716cbae0503d351ea2af4b34'] = 'Adresse de la banque';
|
||||
$_MODULE['<{bankwire}roykin>bankwire_c9cc8cce247e49bae79f15173ce97354'] = 'Enregistrer';
|
||||
$_MODULE['<{bankwire}roykin>validation_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Cette méthode de paiement n\'est pas disponible.';
|
||||
$_MODULE['<{bankwire}roykin>payment_execution_644818852b4dd8cf9da73543e30f045a'] = 'Retour à la commande';
|
||||
$_MODULE['<{bankwire}roykin>payment_execution_6ff063fbc860a79759a7369ac32cee22'] = 'Processus de commande';
|
||||
$_MODULE['<{bankwire}roykin>payment_execution_511e8b930b4d3d6002984c0373eb6d4b'] = 'Paiement par virement bancaire';
|
||||
$_MODULE['<{bankwire}roykin>payment_execution_f1d3b424cd68795ecaa552883759aceb'] = 'Récapitulatif de commande';
|
||||
$_MODULE['<{bankwire}roykin>payment_execution_879f6b8877752685a966564d072f498f'] = 'Votre panier est vide';
|
||||
$_MODULE['<{bankwire}roykin>payment_execution_05adcee99142c1a60fb38bb1330bbbc1'] = 'Virement bancaire';
|
||||
$_MODULE['<{bankwire}roykin>payment_execution_afda466128ee0594745d9f8152699b74'] = 'Vous avez choisi de régler par virement bancaire.';
|
||||
$_MODULE['<{bankwire}roykin>payment_execution_c884ed19483d45970c5bf23a681e2dd2'] = 'Voici un bref récapitulatif de votre commande :';
|
||||
$_MODULE['<{bankwire}roykin>payment_execution_e2867a925cba382f1436d1834bb52a1c'] = 'Le montant total de votre commande s\'élève à';
|
||||
$_MODULE['<{bankwire}roykin>payment_execution_1f87346a16cf80c372065de3c54c86d9'] = 'TTC';
|
||||
$_MODULE['<{bankwire}roykin>payment_execution_b28be4c423d93e02081f4e79fe2434e8'] = 'Nous acceptons plusieurs devises pour votre virement.';
|
||||
$_MODULE['<{bankwire}roykin>payment_execution_a7a08622ee5c8019b57354b99b7693b2'] = 'Merci de choisir parmi les suivantes :';
|
||||
$_MODULE['<{bankwire}roykin>payment_execution_a854d894458d66d92cabf0411c499ef4'] = 'Nous acceptons la devise suivante pour votre paiement :';
|
||||
$_MODULE['<{bankwire}roykin>payment_execution_3dd021316505c0204989f984246c6ff1'] = 'Nos coordonnées bancaires seront affichées sur la page suivante.';
|
||||
$_MODULE['<{bankwire}roykin>payment_execution_edd87c9059d88fea45c0bd6384ce92b9'] = 'Veuillez confirmer votre commande en cliquant sur « Je confirme ma commande ».';
|
||||
$_MODULE['<{bankwire}roykin>payment_execution_46b9e3665f187c739c55983f757ccda0'] = 'Je confirme ma commande';
|
||||
$_MODULE['<{bankwire}roykin>payment_execution_569fd05bdafa1712c4f6be5b153b8418'] = 'Autres moyens de paiement';
|
||||
$_MODULE['<{bankwire}roykin>infos_c1be305030739396775edaca9813f77d'] = 'Ce module vous permet d\'accepter les paiements par virement bancaire.';
|
||||
$_MODULE['<{bankwire}roykin>infos_60742d06006fde3043c77e6549d71a99'] = 'Si le client choisit ce mode de paiement, la commande passera à l\'état \"Paiement en attente\".';
|
||||
$_MODULE['<{bankwire}roykin>infos_5fb4bbf993c23848433caf58e6b2816d'] = 'Par conséquent, vous devez confirmer manuellement la commande dès que vous recevrez le virement.';
|
||||
$_MODULE['<{bankwire}roykin>payment_5e1695822fc5af98f6b749ea3cbc9b4c'] = 'Payer par virement bancaire';
|
||||
$_MODULE['<{bankwire}roykin>payment_4e1fb9f4b46556d64db55d50629ee301'] = '(le traitement de la commande sera plus long)';
|
||||
$_MODULE['<{bankwire}roykin>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'Votre commande sur %s a bien été enregistrée.';
|
||||
$_MODULE['<{bankwire}roykin>payment_return_1f8cdc30326f1f930b0c87b25fdac965'] = 'Veuillez nous envoyer un virement bancaire avec :';
|
||||
$_MODULE['<{bankwire}roykin>payment_return_b2f40690858b404ed10e62bdf422c704'] = 'Montant';
|
||||
$_MODULE['<{bankwire}roykin>payment_return_5ca0b1b910f393ed1f9f6fa99e414255'] = 'à l\'ordre de';
|
||||
$_MODULE['<{bankwire}roykin>payment_return_d717aa33e18263b8405ba00e94353cdc'] = 'suivant ces détails';
|
||||
$_MODULE['<{bankwire}roykin>payment_return_984482eb9ff11e6310fef641d2268a2a'] = 'à cette banque';
|
||||
$_MODULE['<{bankwire}roykin>payment_return_bb4ec5aac6864a05fcc220cccd8e82f9'] = 'N\'oubliez pas d\'indiquer votre numéro de commande %d dans l\'objet de votre virement.';
|
||||
$_MODULE['<{bankwire}roykin>payment_return_1faa25b80a8d31e5ef25a78d3336606d'] = 'N\'oubliez pas d\'indiquer votre référence de commande %s dans le sujet de votre virement.';
|
||||
$_MODULE['<{bankwire}roykin>payment_return_19c419a8a4f1cd621853376a930a2e24'] = 'Un e-mail contenant ces informations vous a été envoyé.';
|
||||
$_MODULE['<{bankwire}roykin>payment_return_b9a1cae09e5754424e33764777cfcaa0'] = 'Votre commande sera expédiée dès réception de votre virement.';
|
||||
$_MODULE['<{bankwire}roykin>payment_return_ca7e41a658753c87973936d7ce2429a8'] = 'Pour toute question ou information complémentaire, veuillez contacter notre';
|
||||
$_MODULE['<{bankwire}roykin>payment_return_66fcf4c223bbf4c7c886d4784e1f62e4'] = 'service client';
|
||||
$_MODULE['<{bankwire}roykin>payment_return_d15feee53d81ea16269e54d4784fa123'] = 'Nous avons rencontré un problème avec votre commande. Nous vous invitons à prendre contact avec notre';
|
||||
|
@ -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>
|
||||
|
@ -1,17 +1,19 @@
|
||||
<!-- MODULE Block cart -->
|
||||
<div class="shopping-cart-footer ctn animated-full">
|
||||
<div class="row valign-middle">
|
||||
<span class="header-title md4">{l s='Cart summary' mod='blockcart'}</span>
|
||||
<div class="md3 resume">
|
||||
<span class="header-title lg4 md3 sm12">{l s='Cart summary' mod='blockcart'}</span>
|
||||
<div class="lg3 md4 sm5 resume">
|
||||
<span class="title">{l s='Number of boxes' mod='blockcart'}</span>
|
||||
<span class="nb-total-boxes">{$nb_total_products}</span> {l s='boxe(s), or' mod='blockcart'} <span class="nb-total-bottles">{$nb_total_products*12}</span> {l s='bottle(s)' mod='blockcart'}
|
||||
</div>
|
||||
<div class="md2 price">
|
||||
<div class="md2 sm3 price">
|
||||
<span class="title">{l s='Total' mod='blockcart'}</span>
|
||||
<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>
|
||||
<div class="md3 sm4">
|
||||
<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>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="{$link->getPageLink('index', true, NULL, 'mylogout')|escape:'html'}" title="{l s='Logout'}">
|
||||
<span>{l s='Logout'}</span>
|
||||
<span>{l s='Logout' mod='blockmyaccount'}</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -12,3 +12,4 @@ $_MODULE['<{blockmyaccount}roykin>blockmyaccount_e45be0a0d4a0b62b15694c1a631e6e6
|
||||
$_MODULE['<{blockmyaccount}roykin>blockmyaccount_63b1ba91576576e6cf2da6fab7617e58'] = 'Mes informations personnelles';
|
||||
$_MODULE['<{blockmyaccount}roykin>blockmyaccount_95d2137c196c7f84df5753ed78f18332'] = 'Mes bons de réduction';
|
||||
$_MODULE['<{blockmyaccount}roykin>blockmyaccount_c87aacf5673fada1108c9f809d354311'] = 'Déconnexion';
|
||||
$_MODULE['<{blockmyaccount}roykin>blockmyaccount_0323de4f66a1700e2173e9bcdce02715'] = 'Deconnexion';
|
||||
|
@ -8,3 +8,4 @@ $_MODULE['<{blocksearch}roykin>blocksearch_be305c865235f417d9b4d22fcdf9f1c5'] =
|
||||
$_MODULE['<{blocksearch}roykin>blocksearch_13348442cc6a27032d2b4aa28b75a5d3'] = 'Rechercher';
|
||||
$_MODULE['<{blocksearch}roykin>blocksearch_ce1b00a24b52e74de46971b174d2aaa6'] = 'Rechercher un produit';
|
||||
$_MODULE['<{blocksearch}roykin>blocksearch_5f075ae3e1f9d0382bb8c4632991f96f'] = 'Go';
|
||||
$_MODULE['<{blocksearch}roykin>blocksearch-top_2e6811823e15e32cb509c2ca22d89d19'] = 'Entrez votre recherche';
|
||||
|
@ -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>
|
||||
|
@ -54,7 +54,9 @@
|
||||
</li>
|
||||
</ul>
|
||||
<p class="box-footer" id="cart_navigation">
|
||||
<input type="submit" value="{l s='I confirm my order' mod='cheque'}" class="btn"/>
|
||||
<button type="submit" class="btn">
|
||||
<span>{l s='I confirm my order' mod='cheque'}</span>
|
||||
</button>
|
||||
<a href="{$link->getPageLink('order', true, NULL, "step=3")|escape:'html'}" class="btn btn2">
|
||||
<span>{l s='Other payment methods' mod='cheque'}</span>
|
||||
</a>
|
||||
|
0
themes/roykin/modules/prestaerp/translations/fr.php
Normal file
@ -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>
|
||||
|
@ -30,8 +30,8 @@
|
||||
</ul>
|
||||
{if $invoice AND $invoiceAllowed}
|
||||
<div class="pdf">
|
||||
<a target="_blank" href="{$link->getPageLink('pdf-invoice', true)}?id_order={$order->id|intval}{if $is_guest}&secure_key={$order->secure_key|escape:'html':'UTF-8'}{/if}">
|
||||
<i class="icon icon-pdf"></i><span>{l s='Download your invoice as a PDF file.'}</span>
|
||||
<a class="btn" target="_blank" href="{$link->getPageLink('pdf-invoice', true)}?id_order={$order->id|intval}{if $is_guest}&secure_key={$order->secure_key|escape:'html':'UTF-8'}{/if}">
|
||||
<span>{l s='Download your invoice as a PDF file.'}</span>
|
||||
</a>
|
||||
</div>
|
||||
{/if}
|
||||
@ -53,12 +53,10 @@
|
||||
|
||||
<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">
|
||||
<div class="box offset-lg2 lg8 m12 clear">
|
||||
<div class="inner">
|
||||
<h2 class="title">{l s='Informations sur votre commande'}</h2>
|
||||
<div class="box-content">
|
||||
@ -69,7 +67,7 @@
|
||||
<div class="md4 sm4 hidden-xs hidden-xxs">{l s='Date'}</div>
|
||||
<div class="md4 sm4 hidden-xs hidden-xxs">{l s='Status'}</div>
|
||||
|
||||
<div class="hidden-md hidden-lg sm12 xs12 xxs12">{l s='Status'}</div>
|
||||
<div class="hidden-sm hidden-md hidden-lg sm12 xs12 xxs12">{l s='Status'}</div>
|
||||
</div>
|
||||
{foreach from=$order_history item=state name="orderStates"}
|
||||
<div class="table-row row{$smarty.foreach.orderStates.index % 2}">
|
||||
@ -121,63 +119,64 @@
|
||||
</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-lg2 lg8 m12">
|
||||
<div class="addresses row clear">
|
||||
<div class="md6 sm6">
|
||||
<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 sm6">
|
||||
<div class="box">
|
||||
<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>
|
||||
@ -312,7 +311,7 @@
|
||||
{convertPriceWithCurrency price=$product.unit_price_tax_excl currency=$currency}
|
||||
{/if}
|
||||
</div>
|
||||
<div class="md{if $return_allowed}2{else}3{/if} sm12 xs12 xxs12 text-right">
|
||||
<div class="md{if $return_allowed}2{else}3{/if} sm12 xs12 xxs12 product-price text-right">
|
||||
<strong>{l s='Total price'} : </strong>
|
||||
{if $group_use_tax}
|
||||
{convertPriceWithCurrency price=$product.total_price_tax_incl currency=$currency}
|
||||
@ -348,20 +347,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 +368,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>
|
||||
@ -401,24 +400,26 @@
|
||||
</div>
|
||||
|
||||
{if $return_allowed}
|
||||
<div class="returns box clear">
|
||||
<div class="inner">
|
||||
<h2 class="title">{l s='Merchandise return'}</h2>
|
||||
<div class="box-content">
|
||||
<p>
|
||||
{l s='If you wish to return one or more products, please mark the corresponding boxes and provide an explanation for the return. When complete, click the button below.'}
|
||||
</p>
|
||||
<div>
|
||||
<label>{l s='Your message'} :</label>
|
||||
<p class="form-group">
|
||||
<textarea class="form-control" rows="8" name="returnText"></textarea>
|
||||
</p>
|
||||
<p class="box-footer">
|
||||
<button type="submit" name="submitReturnMerchandise" class="btn btn2 pull-right">
|
||||
<span>{l s='Make an RMA slip'}</span>
|
||||
</button>
|
||||
<input type="hidden" class="hidden" value="{$order->id|intval}" name="id_order" />
|
||||
<div class="box offset-lg2 lg8 m12 clear">
|
||||
<div class="returns box clear">
|
||||
<div class="inner">
|
||||
<h2 class="title">{l s='Merchandise return'}</h2>
|
||||
<div class="box-content">
|
||||
<p>
|
||||
{l s='If you wish to return one or more products, please mark the corresponding boxes and provide an explanation for the return. When complete, click the button below.'}
|
||||
</p>
|
||||
<div>
|
||||
<label>{l s='Your message'} :</label>
|
||||
<p class="form-group">
|
||||
<textarea class="form-control" rows="8" name="returnText"></textarea>
|
||||
</p>
|
||||
<p class="box-footer">
|
||||
<button type="submit" name="submitReturnMerchandise" class="btn btn2 pull-right">
|
||||
<span>{l s='Make an RMA slip'}</span>
|
||||
</button>
|
||||
<input type="hidden" class="hidden" value="{$order->id|intval}" name="id_order" />
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -427,45 +428,45 @@
|
||||
</form>
|
||||
|
||||
{if count($messages)}
|
||||
<div class="returns box clear">
|
||||
<div class="inner">
|
||||
<h2 class="title">{l s='Messages'}</h2>
|
||||
<div class="box-content">
|
||||
<div class="table-div message">
|
||||
<div class="table-head">
|
||||
<div class="md4 hidden-sm hidden-xs hidden-xxs">{l s='From'}</div>
|
||||
<div class="md8">{l s='Message'}</div>
|
||||
</div>
|
||||
|
||||
{foreach from=$messages item=message name="messageList"}
|
||||
<div class="table-row">
|
||||
<div class="md4">
|
||||
<strong>{l s='De'}</strong>
|
||||
<span class="bold">
|
||||
{if isset($message.elastname) && $message.elastname}
|
||||
{$message.efirstname|escape:'html':'UTF-8'} {$message.elastname|escape:'html':'UTF-8'}
|
||||
{elseif $message.clastname}
|
||||
{$message.cfirstname|escape:'html':'UTF-8'} {$message.clastname|escape:'html':'UTF-8'}
|
||||
{else}
|
||||
{$shop_name|escape:'html':'UTF-8'}
|
||||
{/if}
|
||||
</span>
|
||||
<br />
|
||||
{dateFormat date=$message.date_add full=1}
|
||||
</div>
|
||||
<div class="md4">
|
||||
<strong>{l s='Détail'}</strong>
|
||||
{$message.message|escape:'html':'UTF-8'|nl2br}
|
||||
</div>
|
||||
<div class="box offset-lg2 lg8 m12 clear">
|
||||
<div class="returns box clear">
|
||||
<div class="inner">
|
||||
<h2 class="title">{l s='Messages'}</h2>
|
||||
<div class="box-content">
|
||||
<div class="table-div message">
|
||||
<div class="table-head">
|
||||
<div class="md4 sm4 hidden-xs hidden-xxs">{l s='From'}</div>
|
||||
<div class="md8 sm8">{l s='Message'}</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
|
||||
{foreach from=$messages item=message name="messageList"}
|
||||
<div class="table-row">
|
||||
<div class="md4 sm4">
|
||||
<span class="bold">
|
||||
{if isset($message.elastname) && $message.elastname}
|
||||
{$message.efirstname|escape:'html':'UTF-8'} {$message.elastname|escape:'html':'UTF-8'}
|
||||
{elseif $message.clastname}
|
||||
{$message.cfirstname|escape:'html':'UTF-8'} {$message.clastname|escape:'html':'UTF-8'}
|
||||
{else}
|
||||
{$shop_name|escape:'html':'UTF-8'}
|
||||
{/if}
|
||||
</span>
|
||||
<br />
|
||||
{dateFormat date=$message.date_add full=1}
|
||||
</div>
|
||||
<div class="md4 sm8">
|
||||
{$message.message|escape:'html':'UTF-8'|nl2br}
|
||||
</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="box clear">
|
||||
<div class="box offset-lg2 lg8 m12 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>
|
||||
|
@ -15,70 +15,52 @@
|
||||
|
||||
<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="lg8 md7 sm12">
|
||||
<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 sm1">
|
||||
<input type="checkbox" name="cgv" id="cgv" class="custom-input inline" value="1" />
|
||||
</div>
|
||||
<div class="md9 sm11">
|
||||
<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="lg4 md5 resume hidden-sm hidden-xs block">
|
||||
<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,34 +84,15 @@
|
||||
<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>
|
||||
<span class="md4 xs6 xxs6">{l s='Total price'} :</span>
|
||||
<span class="md8 xs6 xxs6">{displayPrice price=$total_price}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</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>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<ul class="color_to_pick_list row">
|
||||
<ul class="color_to_pick_list row valign-middle {if $colors_list|count > 3}alt{/if}">
|
||||
{foreach from=$colors_list item=color key=key}
|
||||
|
||||
<!-- On récupère la quantité ajoutée par décli -->
|
||||
@ -11,7 +11,7 @@
|
||||
{assign var=quantity value='+'}
|
||||
{/if}
|
||||
|
||||
<li class="md2{if $key !== false} filled{/if}">
|
||||
<li class="md2 sm2{if $key !== false} filled{/if}">
|
||||
<span class="title">{$color.name}</span>
|
||||
<div class="inner" style="background: {$color.color}">
|
||||
<span class="nb">{$quantity}</span>
|
||||
@ -29,7 +29,7 @@
|
||||
<span class="title-custom-qty">{l s='Fill your desire number of boxes'}</span>
|
||||
<div class="custom-qty">
|
||||
<input placeholder="{l s='24, 48, ...'}" type="text" value="" name="qty" />
|
||||
<button type="button" class="custom-qty-btn btn">{l s='Ok'}</button>
|
||||
<button type="button" class="custom-qty-btn btn"><span>{l s='Ok'}</span></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -8,14 +8,17 @@
|
||||
{foreach from=$products item=product name=products key=key}
|
||||
|
||||
{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>
|
||||
<div class="img-cat lg4 md6 sm6 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="product-ctn cols animated-full lg{if isset($nbProduct)}{12/$nbProduct}{else}3{/if} md6 sm6 xs6 col-xxs-12{if $key%2} alt{/if}" itemscope itemtype="http://schema.org/Product">
|
||||
<div class="inner">
|
||||
<div class="product-infos clearfix">
|
||||
<div class="product-img-ctn md6">
|
||||
<div class="product-img-ctn md6 sm5">
|
||||
<!-- Image -->
|
||||
<a class="product-img" href="{$product.link|escape:'html':'UTF-8'}" title="{$product.name|escape:'html':'UTF-8'}" itemprop="url">
|
||||
<img class="img-responsive" src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_default')|escape:'html':'UTF-8'}" alt="{$product.name|escape:'html':'UTF-8'}" title="{$product.name|escape:'html':'UTF-8'}" itemprop="image" />
|
||||
@ -23,7 +26,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Infos produits -->
|
||||
<div class="md6 lg-pl0">
|
||||
<div class="md6 sm7 lg-pl0 md-pl0 sm-pl0">
|
||||
<h5 class="product-name" itemprop="name">{$product.name|truncate:60:'...'|escape:'html':'UTF-8'}</h5>
|
||||
<span class="product-packing">{l s='Sale by box of'} <span>{$product.nb_per_box}</span> {l s='bottles'}</span>
|
||||
<div class="product-details">
|
||||
@ -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}
|
||||
|
@ -1,27 +1,24 @@
|
||||
<div id="product_{$product.id_product}_{$product.id_product_attribute}_{if $quantityDisplayed > 0}nocustom{else}0{/if}_{$product.id_address_delivery|intval}{if !empty($product.gift)}_gift{/if}" class="table-row product-row">
|
||||
<div class="inner valign-middle">
|
||||
<div class="md1 xs3 image">
|
||||
<a href="{$link->getProductLink($product.id_product, $product.link_rewrite, $product.category, null, null, $product.id_shop, $product.id_product_attribute)|escape:'html':'UTF-8'}">
|
||||
<img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'medium_default')|escape:'html':'UTF-8'}" alt="{$product.name|escape:'html':'UTF-8'}" />
|
||||
</a>
|
||||
<img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'medium_default')|escape:'html':'UTF-8'}" alt="{$product.name|escape:'html':'UTF-8'}" />
|
||||
</div>
|
||||
<div class="md2 xs9 product-infos">
|
||||
<strong>{l s='Product'} : </strong>
|
||||
<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="product-name">{$product.name|escape:'html':'UTF-8'}</span>
|
||||
<span class="packing">{l s='Boxes of '} {$product.nb_per_box} {l s='bottles'}
|
||||
</div>
|
||||
|
||||
<div class="product-combination md1 text-center">
|
||||
<div class="product-combination md1 lg-text-center md-text-center">
|
||||
{if isset($product.attributes_small) && $product.attributes_small}
|
||||
<strong>{l s='Nicotine'} : </strong>
|
||||
<a class="product-attributes" 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.attributes_small|escape:'html':'UTF-8'}
|
||||
</a>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div id="product_price_{$product.id_product}_{$product.id_product_attribute}{if $quantityDisplayed > 0}_nocustom{/if}_{$product.id_address_delivery|intval}{if !empty($product.gift)}_gift{/if}" class="md2 xs9 text-right">
|
||||
<div id="product_price_{$product.id_product}_{$product.id_product_attribute}{if $quantityDisplayed > 0}_nocustom{/if}_{$product.id_address_delivery|intval}{if !empty($product.gift)}_gift{/if}" class="md2 xs9 lg-text-right md-text-right">
|
||||
<strong>{l s='Unit price'} : </strong>
|
||||
{if !$priceDisplay}
|
||||
<span class="price">{convertPrice price=$product.price_wt}</span>
|
||||
@ -42,7 +39,7 @@
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div class="md2 xs9 qty text-center">
|
||||
<div class="md2 xs9 qty lg-text-center md-text-center">
|
||||
<strong>{l s='Quantity'} : </strong>
|
||||
{if isset($cannotModify) AND $cannotModify == 1 || isset($recap) AND $recap == 1}
|
||||
<span>
|
||||
@ -80,7 +77,7 @@
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div class="product-stock md2 xs9 text-center">
|
||||
<div class="product-stock md2 xs9 lg-text-center md-text-center">
|
||||
{if $product.quantity_available < $product.cart_quantity}
|
||||
{if isset($product.allow_oosp) && $product.allow_oosp}
|
||||
{if isset($product.available_later) && $product.available_later}
|
||||
|
@ -7,29 +7,25 @@
|
||||
|
||||
{include file="$tpl_dir./page-heading.tpl" title=$smarty.capture.title type='order-process' currentStep='summary'}
|
||||
|
||||
<div id="shopping-cart">
|
||||
<div id="shopping-cart"{if isset($empty)} class="empty"{/if}>
|
||||
|
||||
<!-- 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 hidden-sm hidden-xs hidden-xxs" 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 md7 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,30 @@
|
||||
{/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('index')}" class="continue btn btn2 hidden-lg hidden-md" title="{l s='Continue shopping'}">
|
||||
<span>{l s='Continue shopping'}</span>
|
||||
</a>
|
||||
<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>
|
||||
|