In my code i can apply 50% discount on cart but i want this discount to apply only when product from a specific category is added.
MagentoQuoteModelQuote $quote,
MagentoQuoteApiDataShippingAssignmentInterface $shippingAssignment,
MagentoQuoteModelQuoteAddressTotal $total
) {
parent::collect($quote, $shippingAssignment, $total);
//$address = $shippingAssignment->getShipping()->getAddress();
$label = 'RolusTech Discount';
$discountAmount = 0;
$appliedCartDiscount = 0;
if($total->getDiscountDescription()) {
// If a discount exists in cart and another discount is applied, the add both discounts.
$appliedCartDiscount = $total->getDiscountAmount();
$discountAmount = $total->getDiscountAmount()+$discountAmount;
$label = $total->getDiscountDescription().', '.$label;
}
$disc = $total->getSubtotal();
$disc1 = -$disc/2;
$total->setDiscountDescription($label);
$total->setDiscountAmount($disc1);
$total->setBaseDiscountAmount($disc1);
$total->setSubtotalWithDiscount($total->getSubtotal() + $disc1);
$total->setBaseSubtotalWithDiscount($total->getBaseSubtotal() + $disc1);
if(isset($appliedCartDiscount)) {
$total->addTotalAmount($this->getCode(), $disc1 - $appliedCartDiscount);
$total->addBaseTotalAmount($this->getCode(), $disc1 - $appliedCartDiscount);
} else {
$total->addTotalAmount($this->getCode(), $disc1);
$total->addBaseTotalAmount($this->getCode(), $disc1);
}
return $this;
}```