Exemplo n.º 1
0
 /**
  * @param \Syscover\ShoppingCart\Cart           $shoppingCart
  * @param string                                $couponCode
  * @param string                                $lang           add coupon code from this language
  * @param \Illuminate\Auth\SessionGuard         $sessionGuard   request session guard to check if user is authenticated, for cases necessary
  * @return null | \Syscover\Market\Models\CartPriceRule
  */
 public static function addCouponCode($shoppingCart, $couponCode, $lang, $sessionGuard = null)
 {
     $response = CouponLibrary::checkCouponCode($couponCode, $lang, $sessionGuard);
     $cartPriceRule = null;
     // check that rule its ok
     if ($response['status'] == 'success') {
         // get price rule from database
         $cartPriceRule = CartPriceRule::builder($lang)->where('coupon_code_120', 'like', $couponCode)->first();
         if ($cartPriceRule != null) {
             try {
                 $shoppingCart->addCartPriceRule(new PriceRule($cartPriceRule->name_text_value, $cartPriceRule->description_text_value, $cartPriceRule->discount_type_id_120, $cartPriceRule->free_shipping_120, $cartPriceRule->discount_fixed_amount_120, $cartPriceRule->discount_percentage_120, $cartPriceRule->maximum_discount_amount_120, $cartPriceRule->apply_shipping_amount_120, $cartPriceRule->combinable_120, ['priceRule' => $cartPriceRule]));
             } catch (ShoppingCartNotCombinablePriceRuleException $e) {
                 dd($e->getMessage());
             } catch (\Exception $e) {
                 dd($e->getMessage());
             }
         } else {
             dd("this coupon number not exist");
         }
     }
     return $cartPriceRule;
 }
Exemplo n.º 2
0
 public function apiGetCouponCode()
 {
     $couponCode = Miscellaneous::generateRandomString((int) $this->request->input('length'), 'uppercase-number');
     while (CartPriceRule::where('coupon_code_120', $couponCode)->count() > 0) {
         $couponCode = Miscellaneous::generateRandomString((int) $this->request->input('length'), 'uppercase-number');
     }
     return response()->json(['status' => 'success', 'couponCode' => $couponCode]);
 }
Exemplo n.º 3
0
 /**
  * Override deleteTranslationRecord,
  * for avoid the deletion of language in the table 012_120_cart_price_rule, as it has no record of language
  */
 public static function deleteTranslationRecord($parameters, $deleteLangDataRecord = true)
 {
     CartPriceRule::deleteLangDataRecord($parameters);
 }