[*] 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:
mDeflotte
2012-05-10 14:37:14 +00:00
parent 68172a996e
commit 9ae0b2a42e
6 changed files with 69 additions and 11 deletions
+36 -2
View File
@@ -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),
+1 -1
View File
@@ -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';
+8
View File
@@ -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;
+2
View File
@@ -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&amp;id_product={$product.id_product|intval}&amp;ipa={$product.id_product_attribute|intval}&amp;id_address_delivery={$product.id_address_delivery|intval}&amp;token={$token_cart}")}">{l s='Delete'}</a>
</div>
{/if}
</td>
</td>
</tr>
+13 -2
View File
@@ -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}