Beispiel #1
0
 static function cartToArr($obj, $controller, $couponCode = NULL, $member = NULL)
 {
     if (!$obj) {
         return NULL;
     }
     $coupon = NULL;
     if (!$couponCode) {
         $couponCode = $obj->getCouponCode();
     }
     if (!$member) {
         $member = $controller->getMemberObj();
     }
     $items = self::_getCartObjItems($controller, $obj);
     $coupons = self::_generateCoupons($controller, $obj, $couponCode, $member);
     $cart_segment = $controller->getKrcoConfigValue('cart', 'segment');
     $shippingDest = $obj->getShippingDestination();
     $discounts = self::_getDiscountsOfCoupons($controller, $items, $coupons, $member, $obj);
     $shippingVals = self::_getShippingVals($controller, $obj, $items, $couponCode, $member, $discounts);
     $shippingVal = $shippingVals['summary'];
     $shippingDiscount = self::_calculateMultipleDiscounts($shippingVal, $discounts['shipping_discounts']);
     $total = array_sum(array_map(function ($item) {
         return $item['quantity'];
     }, $items));
     $checkoutStatus = self::_getCheckoutStatus($controller, $obj, $items, $shippingVals);
     $isDiscountIgnoreShipping = FALSE;
     if ($controller->getKrcoConfigValue('cart', 'is_discount_ignore_shipping')) {
         $isDiscountIgnoreShipping = TRUE;
     }
     $pointRule = $controller->getPointRule();
     $pointRule = array('point_per_dollar' => Helper_Structure::getArrayValue($pointRule, 'point_per_dollar'), 'dollar_per_point' => Helper_Structure::getArrayValue($pointRule, 'dollar_per_point'));
     $arr = array('code' => $obj->getCode(), 'currency_symbol' => $controller->getCurrencySymbol(), 'items' => $items, 'shipping' => $shippingVal, 'shipping_details' => $shippingVals['details'], 'shipping_method' => $shippingDest, 'backorder_shipping_method' => $obj->getBackorderShippingDestination(), 'shipping_destination' => $shippingDest, 'backorder_shipping_destination' => $obj->getBackorderShippingDestination(), 'shipping_country' => $obj->getShippingCountry(), 'shipping_city' => $obj->getShippingCity(), 'npoints' => self::_getNPointsUsed($obj, $member), 'discounts' => $discounts['item'], 'shipping_discount' => $shippingDiscount, 'coupon_code' => $couponCode, 'link' => $controller->composeLink("/{$cart_segment}"), 'checkout_link' => $controller->composeLink("/{$cart_segment}/place_order", array('cart_code' => $obj->getCode())), 'total_items' => $total, 'total_weight' => self::getTotalWeightOfItems($items), 'is_checkout_enabled' => $checkoutStatus['is_enabled'], 'checkout_disabled_reason' => $checkoutStatus['disabled_reason'], 'is_discount_ignore_shipping' => $isDiscountIgnoreShipping, 'delivery_timestamp' => strtotime($obj->getDeliveryDate()), 'tax_rate' => self::getTaxRateOfCart($controller, $obj), 'point_rule' => $pointRule);
     $taxableTotal = Helper_Cart::getTaxableTotal($arr);
     $taxVal = $arr['tax_rate'] * $taxableTotal;
     $arr['tax'] = $taxVal;
     $arr['grand_total'] = $taxableTotal + $taxVal;
     $arr['item_total'] = Helper_Cart::getItemTotal($items);
     $arr['npoints_earned'] = Helper_Cart::getPointsEarned($controller, $arr);
     return $arr;
 }