cartRuleService = $cartRuleService; } /** * Duplicate the $cartRule by the number of $quantity entered * This function return each CartRule created into an array * * @param CartRule $cartRule * @param int $quantity * @return CartRule[] */ public function generateFrom( CartRule $cartRule, $quantity = 1 ) { $res = []; $codePrefix = $cartRule->code; for ($i = 0; $i < $quantity; $i++) { $codeSuffix = Tools::passwdGen(10, 'ALPHANUMERIC'); $generatedCode = "{$codePrefix}_{$codeSuffix}"; $res[] = $this->cartRuleService->duplicate($cartRule, [ 'code' => $generatedCode, 'quantity' => 1, 'quantity_per_user' => 1, 'highlight' => 0, 'active' => 1, 'id_customer' => 0, ]); } return $res; } /** * Build payload to export CartRules into Klaviyo * * @param CartRule[] $cartRules * @return array */ public function buildPayload($cartRules) { $res = []; foreach ($cartRules as $cr) { $res[] = [ 'Coupon Code' => $cr->code, ]; } return $res; } }