Cart 기능

카트 기능을 활용하기 위한 기능명세서입니다.

Hotopay에는 카트 기능이 있습니다.

이 기능을 일반 게시판에서 사용하기 위한 문서입니다

상품 추가 예시

게시판 스킨(게시글 조회 페이지)에 넣을 예시입니다.

{@
  $oHotopayModel = HotopayModel::getInstance();
  $oProduct = $oHotopayModel->getProductByDocumentSrl($oDocument->get('document_srl'));
  $options = $oProduct->product_option;
}

<select id="option_srl">
  <!--@foreach($options as $option)-->
  {@
      $sub_price = $option->price - $oProduct->product_sale_price;
      $sub_price = $sub_price + round($sub_price * ($oProduct->tax_rate / 100));
      if($sub_price > 0) $sub_price = "(+".number_format($sub_price)."원)";
      else if($sub_price < 0) $sub_price = "(".number_format($sub_price)."원)";
      else $sub_price = "";

      $stock_text = "";
      if($option->infinity_stock != 'Y'):
          if($option->stock < 1) $stock_text = " (품절)";
          else $stock_text = " (".$option->stock."개)";
      endif;
  }
  <option value="{$option->option_srl}" data-hotopay-option-price="{$option->price + round($option->price * ($product->tax_rate / 100))}" disabled|cond="$option->infinity_stock != 'Y' && $option->stock < 1">{$option->title} {$sub_price}{$stock_text}</option>
  <!--@endforeach-->
</select>
<p><input type="number" id="quantity" value="1"></p>
<p><button class="addCart" data-product-srl="{$oProduct->product_srl}"><i class="ico cart"></i> 카트에 담기</button></p>

<script>
jQuery(document).ready(function($) {
  // addCart
  $('.addCart').click(function() {
    var product_srl = $(this).data('product-srl');
    var option_srl = $('#option_srl').val();
    var quantity = $('#quantity').val();

    console.log(product_srl, option_srl, quantity);
    $.ajax({
      url: '/hotopay/cart/add',
      type: 'POST',
      data: {
        'product_srl': product_srl,
        'option_srl': option_srl,
        'quantity': quantity
      },
      success: function(data) {
        if (data.error == 0)
        {
          alert('장바구니에 추가되었습니다.');
          window.location = '/hotopay/cart';
        }
        else
        {
          if (data.message == '이미 장바구니에 담겨있는 상품입니다.')
          {
            window.location = '/hotopay/cart';
            return;
          }

          alert(data.message);
        }
      }
    });
  });
});
</script>

API 문서

카트에 아이템 추가

/hotopay/cart/add : 카트에 추가

Request Type: application/json

{
    "product_srl": Hotopay 상품 번호 (int)
    "option_srl": Hotopay 옵션 번호 (int)
    "quantity": 수량 (int)
}

Response Type: application/json

{
    "error": 0,
    "message": "장바구니에 추가되었습니다."
}

카트에서 아이템 삭제

Request Type: application/json

{
    "cart_item_srl": 카트 아이템 번호 (int)
}

Response Type: application/json

{
    "error": 0,
    "message": "장바구니에서 삭제되었습니다."
}

카트에서 아이템 업데이트

Request Type: application/json

{
    "cart_item_srl": 카트 아이템 번호 (int)
    "option_srl": Hotopay 옵션 번호 (int)
    "quantity": 수량 (int)
}

Response Type: application/json

{
    "error": 0,
    "message": "장바구니가 수정되었습니다."
}

Last updated