[*] FO : #PSCFV-1463 & #PSCFV-1258 - Gift products and standard products are now displayed on seperate lines
git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@15177 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
+36
-2
@@ -2619,6 +2619,39 @@ class CartCore extends ObjectModel
|
||||
|
||||
if ($total_tax < 0)
|
||||
$total_tax = 0;
|
||||
|
||||
$currency = new Currency($this->id_currency);
|
||||
|
||||
$products = $this->getProducts(false);
|
||||
$gift_products = array();
|
||||
$cart_rules = $this->getCartRules();
|
||||
foreach ($cart_rules as &$cart_rule)
|
||||
{
|
||||
if ($cart_rule['gift_product'])
|
||||
{
|
||||
foreach ($products as $key => &$product)
|
||||
if (empty($product['gift']) && $product['id_product'] == $cart_rule['gift_product'] && $product['id_product_attribute'] == $cart_rule['gift_product_attribute'])
|
||||
{
|
||||
// Update product quantity and price
|
||||
$product['total_wt'] = Tools::ps_round($product['total_wt'] - $product['price_wt'], (int)$currency->decimals * _PS_PRICE_DISPLAY_PRECISION_);
|
||||
$product['total'] = Tools::ps_round($product['total'] - $product['price'], (int)$currency->decimals * _PS_PRICE_DISPLAY_PRECISION_);
|
||||
$product['cart_quantity']--;
|
||||
|
||||
if (!$product['cart_quantity'])
|
||||
unset($products[$key]);
|
||||
|
||||
// Add a new product line
|
||||
$free_product = $product;
|
||||
$free_product['cart_quantity'] = 1;
|
||||
$free_product['price'] = $product['price'];
|
||||
$free_product['price_wt'] = $product['price_wt'];
|
||||
$free_product['total_wt'] = $product['price_wt'];
|
||||
$free_product['total'] = $product['price'];
|
||||
$free_product['gift'] = true;
|
||||
$gift_products[] = $free_product;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return array(
|
||||
'delivery' => $delivery,
|
||||
@@ -2626,8 +2659,9 @@ class CartCore extends ObjectModel
|
||||
'invoice' => $invoice,
|
||||
'invoice_state' => State::getNameById($invoice->id_state),
|
||||
'formattedAddresses' => $formatted_addresses,
|
||||
'products' => $this->getProducts(false),
|
||||
'discounts' => $this->getCartRules(),
|
||||
'products' => array_values($products),
|
||||
'gift_products' => $gift_products,
|
||||
'discounts' => $cart_rules,
|
||||
'is_virtual_cart' => (int)$this->isVirtualCart(),
|
||||
'total_discounts' => $this->getOrderTotal(true, Cart::ONLY_DISCOUNTS),
|
||||
'total_discounts_tax_exc' => $this->getOrderTotal(false, Cart::ONLY_DISCOUNTS),
|
||||
|
||||
@@ -16,7 +16,7 @@ $_MODULE['<{blockcart}prestashop>blockcart_c9cc8cce247e49bae79f15173ce97354'] =
|
||||
$_MODULE['<{blockcart}prestashop>blockcart_20351b3328c35ab617549920f5cb4939'] = 'Personnalisation ';
|
||||
$_MODULE['<{blockcart}prestashop>blockcart_ed6e9a09a111035684bb23682561e12d'] = 'supprimer cet article du panier';
|
||||
$_MODULE['<{blockcart}prestashop>blockcart_c6995d6cc084c192bc2e742f052a5c74'] = 'Livraison gratuite !';
|
||||
$_MODULE['<{blockcart}prestashop>blockcart_e7a6ca4e744870d455a57b644f696457'] = 'Gratuite !';
|
||||
$_MODULE['<{blockcart}prestashop>blockcart_e7a6ca4e744870d455a57b644f696457'] = 'Gratuit !';
|
||||
$_MODULE['<{blockcart}prestashop>blockcart_f2a6c498fb90ee345d997f888fce3b18'] = 'Supprimer';
|
||||
$_MODULE['<{blockcart}prestashop>blockcart_a85eba4c6c699122b2bb1387ea4813ad'] = 'Panier';
|
||||
$_MODULE['<{blockcart}prestashop>blockcart_86024cad1e83101d97359d7351051156'] = 'articles';
|
||||
|
||||
@@ -842,6 +842,14 @@ table#cart_summary .cart_total_price .total_price_container {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table#cart_summary .gift-icon {
|
||||
color: white;
|
||||
background: #0088CC;
|
||||
line-height: 20px;
|
||||
padding: 2px 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
/* step 2 - authentification ******************************************************************* */
|
||||
#create-account_form, #authentication #login_form {
|
||||
clear: none;
|
||||
|
||||
@@ -346,6 +346,7 @@ $_LANG['order-carrier_6f05787682585c32498e88bcd2ea88fc'] = 'Méthodes de livrais
|
||||
$_LANG['order-carrier_86024cad1e83101d97359d7351051156'] = 'produits';
|
||||
$_LANG['order-carrier_8fb37535c12fbe2899ab442ec474c157'] = 'Choisissez une option de livraison';
|
||||
$_LANG['order-carrier_935b611697305cd981f442cfede10094'] = 'Choisissez une option de livraison pour l\'adresse : ';
|
||||
$_LANG['order-carrier_a6cc8cbe3fa07d0fca172c36a603332c'] = 'Aucun transporteur disponible pour l\'adresse \"%s\".';
|
||||
$_LANG['order-carrier_ad88a6c9e8c880f23639321d78ec859d'] = 'J\'ai lu les conditions générales de vente et j\'y adhère sans réserve.';
|
||||
$_LANG['order-carrier_b1992d8f7c58180c1ebd461b7d502423'] = 'Le meilleur prix';
|
||||
$_LANG['order-carrier_b4e59f3a4554655a099738382ebedbff'] = 'Vous pouvez ajouter un message d\'accompagnement à votre commande.';
|
||||
@@ -703,6 +704,7 @@ $_LANG['search_e59894bdfd0b523f5036ff21fa905474'] = 'Veuillez saisir un mot-clé
|
||||
$_LANG['search_e9cbf16b6f16ee339f45a841b915c47c'] = 'Retour à la page précédente';
|
||||
$_LANG['shopping-cart-product-line_1d9baf077ee87921f57a8fe42d510b65'] = 'Enlever';
|
||||
$_LANG['shopping-cart-product-line_851d9bc346dfba1530e6ad49b554d9e2'] = 'Vous devez avoir acheté au moins ';
|
||||
$_LANG['shopping-cart-product-line_a59ba454f256953d318ac200a50d67d1'] = 'Offert !';
|
||||
$_LANG['shopping-cart-product-line_e8c8981687ec92e377b6231fc7ff0c9a'] = ' de ce produit.';
|
||||
$_LANG['shopping-cart-product-line_ec211f7c20af43e742bf2570c3cb84f9'] = 'Ajouter';
|
||||
$_LANG['shopping-cart-product-line_f2a6c498fb90ee345d997f888fce3b18'] = 'Supprimer';
|
||||
|
||||
@@ -24,17 +24,20 @@
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
<tr id="product_{$product.id_product}_{$product.id_product_attribute}_0_{$product.id_address_delivery|intval}" class="{if isset($productLast) && $productLast && (!isset($ignoreProductLast) || !$ignoreProductLast)}last_item{elseif isset($productFirst) && $productFirst}first_item{/if} {if isset($customizedDatas.$productId.$productAttributeId) AND $quantityDisplayed == 0}alternate_item{/if} cart_item {if $odd}odd{else}even{/if}">
|
||||
<tr id="product_{$product.id_product}_{$product.id_product_attribute}_0_{$product.id_address_delivery|intval}{if !empty($product.gift)}_gift{/if}" class="{if isset($productLast) && $productLast && (!isset($ignoreProductLast) || !$ignoreProductLast)}last_item{elseif isset($productFirst) && $productFirst}first_item{/if} {if isset($customizedDatas.$productId.$productAttributeId) AND $quantityDisplayed == 0}alternate_item{/if} cart_item {if $odd}odd{else}even{/if}">
|
||||
<td class="cart_product">
|
||||
<a href="{$link->getProductLink($product.id_product, $product.link_rewrite, $product.category)|escape:'htmlall':'UTF-8'}"><img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'small')}" alt="{$product.name|escape:'htmlall':'UTF-8'}" {if isset($smallSize)}width="{$smallSize.width}" height="{$smallSize.height}" {/if} /></a>
|
||||
</td>
|
||||
<td class="cart_description">
|
||||
<h5><a href="{$link->getProductLink($product.id_product, $product.link_rewrite, $product.category, null, null, null, $product.id_product_attribute)|escape:'htmlall':'UTF-8'}">{$product.name|escape:'htmlall':'UTF-8'}</a></h5>
|
||||
{if isset($product.attributes) && $product.attributes}<a href="{$link->getProductLink($product.id_product, $product.link_rewrite, $product.category, null, null, null, $product.id_product_attribute)|escape:'htmlall':'UTF-8'}">{$product.attributes|escape:'htmlall':'UTF-8'}</a>{/if}
|
||||
{if !empty($product.gift)}
|
||||
<br /><span class="gift-icon">{l s='Gift!'}</span>
|
||||
{/if}
|
||||
</td>
|
||||
<td class="cart_ref">{if $product.reference}{$product.reference|escape:'htmlall':'UTF-8'}{else}--{/if}</td>
|
||||
<td class="cart_unit">
|
||||
<span class="price" id="product_price_{$product.id_product}_{$product.id_product_attribute}_{$product.id_address_delivery|intval}">
|
||||
<span class="price" id="product_price_{$product.id_product}_{$product.id_product_attribute}_{$product.id_address_delivery|intval}{if !empty($product.gift)}_gift{/if}">
|
||||
{if isset($product.is_discounted) && $product.is_discounted}
|
||||
<span style="text-decoration:line-through;">{convertPrice price=$product.price_without_specific_price}</span><br />
|
||||
{/if}
|
||||
@@ -48,7 +51,7 @@
|
||||
<td class="cart_quantity"{if isset($customizedDatas.$productId.$productAttributeId) AND $quantityDisplayed == 0} style="text-align: center;"{/if}>
|
||||
{if isset($cannotModify) AND $cannotModify == 1}
|
||||
<span style="float:left">
|
||||
{if $quantityDisplayed == 0 AND isset($customizedDatas.$productId.$productAttributeId)}{$customizedDatas.$productId.$productAttributeId|@count}
|
||||
{if $quantityDisplayed == 0 AND isset($customizedDatas.$productId.$productAttributeId)}{$customizedDatas.$productId.$productAttributeId|@count}
|
||||
{else}
|
||||
{$product.cart_quantity-$quantityDisplayed}
|
||||
{/if}
|
||||
@@ -77,7 +80,7 @@
|
||||
{/if}
|
||||
</td>
|
||||
<td class="cart_total">
|
||||
<span class="price" id="total_product_price_{$product.id_product}_{$product.id_product_attribute}_{$product.id_address_delivery|intval}">
|
||||
<span class="price" id="total_product_price_{$product.id_product}_{$product.id_product_attribute}_{$product.id_address_delivery|intval}{if !empty($product.gift)}_gift{/if}">
|
||||
{if $quantityDisplayed == 0 AND isset($customizedDatas.$productId.$productAttributeId)}
|
||||
{if !$priceDisplay}{displayPrice price=$product.total_customization_wt}{else}{displayPrice price=$product.total_customization}{/if}
|
||||
{else}
|
||||
@@ -86,10 +89,10 @@
|
||||
</span>
|
||||
</td>
|
||||
<td class="cart_delete">
|
||||
{if !isset($customizedDatas.$productId.$productAttributeId) OR $quantityDisplayed > 0}
|
||||
{if (!isset($customizedDatas.$productId.$productAttributeId) OR $quantityDisplayed) > 0 && empty($product.gift)}
|
||||
<div>
|
||||
<a rel="nofollow" class="cart_quantity_delete" id="{$product.id_product}_{$product.id_product_attribute}_0_{$product.id_address_delivery|intval}" href="{$link->getPageLink('cart', true, NULL, "delete&id_product={$product.id_product|intval}&ipa={$product.id_product_attribute|intval}&id_address_delivery={$product.id_address_delivery|intval}&token={$token_cart}")}">{l s='Delete'}</a>
|
||||
</div>
|
||||
{/if}
|
||||
</td>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -223,7 +223,7 @@
|
||||
{assign var='productAttributeId' value=$product.id_product_attribute}
|
||||
{assign var='quantityDisplayed' value=0}
|
||||
{assign var='odd' value=$product@iteration%2}
|
||||
{assign var='ignoreProductLast' value=isset($customizedDatas.$productId.$productAttributeId)}
|
||||
{assign var='ignoreProductLast' value=isset($customizedDatas.$productId.$productAttributeId) || count($gift_products)}
|
||||
{* Display the product line *}
|
||||
{include file="./shopping-cart-product-line.tpl" productLast=$product@last productFirst=$product@first}
|
||||
{* Then the customized datas ones*}
|
||||
@@ -293,6 +293,17 @@
|
||||
{if $product.quantity-$quantityDisplayed > 0}{include file="./shopping-cart-product-line.tpl" productLast=$product@last productFirst=$product@first}{/if}
|
||||
{/if}
|
||||
{/foreach}
|
||||
{assign var='last_was_odd' value=$product@iteration%2}
|
||||
{foreach $gift_products as $product}
|
||||
{assign var='productId' value=$product.id_product}
|
||||
{assign var='productAttributeId' value=$product.id_product_attribute}
|
||||
{assign var='quantityDisplayed' value=0}
|
||||
{assign var='odd' value=($product@iteration+$last_was_odd)%2}
|
||||
{assign var='ignoreProductLast' value=isset($customizedDatas.$productId.$productAttributeId)}
|
||||
{assign var='cannotModify' value=1}
|
||||
{* Display the gift product line *}
|
||||
{include file="./shopping-cart-product-line.tpl" productLast=$product@last productFirst=$product@first}
|
||||
{/foreach}
|
||||
</tbody>
|
||||
{if sizeof($discounts)}
|
||||
<tbody>
|
||||
@@ -307,7 +318,7 @@
|
||||
<span class="price-discount price">{if !$priceDisplay}{displayPrice price=$discount.value_real*-1}{else}{displayPrice price=$discount.value_tax_exc*-1}{/if}</span>
|
||||
</td>
|
||||
<td class="price_discount_del">
|
||||
<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'}">{l s='Delete'}</a>
|
||||
{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'}">{l s='Delete'}</a>{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
|
||||
Reference in New Issue
Block a user