/** * Set coupon code to address if $rule contains validated coupon * * @param Address $address * @param \Magento\SalesRule\Model\Rule $rule * @param mixed $couponCode * @return $this */ public function maintainAddressCouponCode($address, $rule, $couponCode) { /* Rule is a part of rules collection, which includes only rules with 'No Coupon' type or with validated coupon. As a result, if rule uses coupon code(s) ('Specific' or 'Auto' Coupon Type), it always contains validated coupon */ if ($rule->getCouponType() != \Magento\SalesRule\Model\Rule::COUPON_TYPE_NO_COUPON) { $address->setCouponCode($couponCode); } return $this; }