Coupon Code

Hi,

If I create coupon (promo code) for the product (cart promotion), it shows full price on storefront and discounted price only after the coupon is applied.

If I create catalog promotion for the product it shows up discounted price both on storefront and cart.

Is it possible to show discounted price on the storefront (catalog promotion), but full price in the cart? So the client must apply Promo code in order to get discount? otherwise client pays full price.

Hi,

If I create coupon (promo code) for the product (cart promotion), it shows full price on storefront and discounted price only after the coupon is applied.

If I create catalog promotion for the product it shows up discounted price both on storefront and cart.

Is it possible to show discounted price on the storefront (catalog promotion), but full price in the cart? So the client must apply Promo code in order to get discount? otherwise client pays full price.

I am afraid, it is not possible without additional code modifications.

Hi,

If I create coupon (promo code) for the product (cart promotion), it shows full price on storefront and discounted price only after the coupon is applied.

If I create catalog promotion for the product it shows up discounted price both on storefront and cart.

Is it possible to show discounted price on the storefront (catalog promotion), but full price in the cart? So the client must apply Promo code in order to get discount? otherwise client pays full price.

Hello!

It is an interesting case. Could you tell us more about it? Why do you want to show the discounted price if the customer should apply promo code anyway?

Hello,

It is recommended to use add on but the fast solution is as follows:

app/fn.cart.php

line 40

change

fn_set_hook('get_cart_product_data_pre', $hash, $product, $skip_promotion, $cart, $auth, $promotion_amount);

to

fn_set_hook('get_cart_product_data_pre', $hash, $product, $skip_promotion = true, $cart, $auth, $promotion_amount);

As to the case:

Hello!

It is an interesting case. Could you tell us more about it? Why do you want to show the discounted price if the customer should apply promo code anyway?

It is just a marketing trick that comes out from old system (not CSC) when it was not possible to get the discount without applying promo code. By the way a lot of shops still use this system when customers have to apply "promo code" because it makes them fill that they are on the right way (probably it is Groupon influence)

So the price on the store front has to be shown with discount.

At the same time you have to explain on the detailed page that the customer has to apply promotion code X in order to get the discounted price. But discount from unapplied promo codes are not refundable.

By statistic 15-25 % of the customers do not apply the codes, buy the products and never claim the difference.

I created automatic coupons, but for some reason they can be applied only if client is not logged in.

What can be wrong?

The idea is as follows:

If customer buys discounted product he receives automatic code, and can use it afterwords for the same product (=get this product for free independantly on the current price in the future). This coupon works but not for logged in clients.

PS. Other cart promotions (for example 20% discount on the product) works well with logged in customers.

change
fn_set_hook('get_cart_product_data_pre', $hash, $product, $skip_promotion, $cart, $auth, $promotion_amount);

to

fn_set_hook('get_cart_product_data_pre', $hash, $product, $skip_promotion = true, $cart, $auth, $promotion_amount);

As to the case:

I would strongly recommend that you not force a value in the fn_set_hook() call so that addons or other areas of the cart that use those hooks properly are not impacted by your change.

change
fn_set_hook('get_cart_product_data_pre', $hash, $product, $skip_promotion, $cart, $auth, $promotion_amount);

to

fn_set_hook('get_cart_product_data_pre', $hash, $product, $skip_promotion = true, $cart, $auth, $promotion_amount);

As to the case:

I would strongly recommend that you not force a value in the fn_set_hook() call so that addons or other areas of the cart that use those hooks properly are not impacted by your change.

You are absolutely right, but as I mentioned it was quick solution.

The correct way is to use for example MY_ADDON, register pre_get_cart_product_data hook

And in func.php add something like this

function fn_MY_ADDON_pre_get_cart_product_data($hash, $product, & $skip_promotion, $cart, $auth, $promotion_amount, $fields, $join)
{
   	if (!empty($cart['products'][$hash])) {
     	   $skip_promotion = true;
	}

}