EC-CUBE
Public メソッド | Static Public メソッド
クラス SC_Helper_Purchase
SC_Helper_Purchaseに対する継承グラフ
Inheritance graph
[凡例]

Public メソッド

 completeOrder ($orderStatus=ORDER_NEW)
 cancelOrder ($order_id, $orderStatus=ORDER_CANCEL, $is_delete=false)
 rollbackOrder ($order_id, $orderStatus=ORDER_CANCEL, $is_delete=false)
 verifyChangeCart ($uniqId, &$objCartSession)
 getOrderTemp ($uniqId)
 getOrderTempByOrderId ($order_id)
 saveOrderTemp ($uniqId, $params, &$objCustomer)
 getShippingTemp ($has_shipment_item)
 clearShipmentItemTemp ($shipping_id=null)
 setShipmentItemTemp ($shipping_id, $product_class_id, $quantity)
 getShippingPref ($is_multiple)
 isMultiple ()
 saveShippingTemp ($arrSrc, $shipping_id=0)
 unsetShippingTemp ()
 copyFromCustomer (&$dest, &$objCustomer, $prefix= 'order', $keys=array('name01', 'name02', 'kana01', 'kana02', 'sex', 'zip01', 'zip02', 'pref', 'addr01', 'addr02', 'tel01', 'tel02', 'tel03', 'job', 'birth', 'email'))
 copyFromOrder (&$dest, $src, $prefix= 'shipping', $src_prefix= 'order', $keys=array('name01', 'name02', 'kana01', 'kana02', 'sex', 'zip01', 'zip02', 'pref', 'addr01', 'addr02', 'tel01', 'tel02', 'tel03'))
 getPaymentsByPrice ($total, $deliv_id)
 getDelivDate (&$objCartSess, $productTypeId)
 getDateArray ($start_day, $end_day)
 getDelivTime ($deliv_id)
 getDeliv ($product_type_id)
 getPayments ($deliv_id)
 registerShipping ($order_id, $arrParams, $convert_shipping_date=true)
 registerShipmentItem ($order_id, $shipping_id, $arrParams)
 registerOrderComplete ($orderParams, &$objCartSession, $cartKey)
 registerOrder ($order_id, $arrParams)
 registerOrderDetail ($order_id, $arrParams)
 getOrder ($order_id, $customer_id=null)
 getOrderDetail ($order_id, $has_order_status=true)
 setDownloadableFlgTo (&$arrOrderDetail)
 getShippings ($order_id, $has_items=true)
 getShipmentItems ($order_id, $shipping_id, $has_detail=true)
 sendOrderMail ($orderId)
 sfUpdateOrderStatus ($orderId, $newStatus=null, $newAddPoint=null, $newUsePoint=null, &$sqlval)
 isUsePoint ($status)
 isAddPoint ($status)
 cleanupSession ($orderId, &$objCartSession, &$objCustomer, $cartKey)

Static Public メソッド

 sfUpdateOrderNameCol ($order_id, $temp_table=false)

関数

cancelOrder ( order_id,
orderStatus = ORDER_CANCEL,
is_delete = false 
)

受注をキャンセルする.

受注完了後の受注をキャンセルする. この関数は, 主に決済モジュールにて, 受注をキャンセルする場合に使用する.

対応状況を引数 $orderStatus で指定した値に変更する. (デフォルト ORDER_CANCEL) 引数 $is_delete が true の場合は, 受注データを論理削除する. 商品の在庫数は, 受注前の在庫数に戻される.

引数:
integer$order_id受注ID
integer$orderStatus対応状況
boolean$is_delete受注データを論理削除する場合 true
戻り値:
void
cleanupSession ( orderId,
&$  objCartSession,
&$  objCustomer,
cartKey 
)

セッションに保持している情報を破棄する.

通常、受注処理(completeOrder)完了後に呼び出され、 セッション情報を破棄する.

決済モジュール画面から確認画面に「戻る」場合を考慮し、 セッション情報を破棄しないカスタマイズを、モジュール側で 加える機会を与える.

引数:
integer$orderId注文番号
SC_CartSession$objCartSessionカート情報のインスタンス
SC_Customer$objCustomerSC_Customer インスタンス
integer$cartKey登録を行うカート情報のキー
clearShipmentItemTemp ( shipping_id = null)

配送商品をクリア(消去)する

引数:
integer$shipping_id配送先ID
戻り値:
void
completeOrder ( orderStatus = ORDER_NEW)

受注を完了する.

下記のフローで受注を完了する.

1. トランザクションを開始する 2. カートの内容を検証する. 3. 受注一時テーブルから受注データを読み込む 4. ユーザーがログインしている場合はその他の発送先へ登録する 5. 受注データを受注テーブルへ登録する 6. トランザクションをコミットする

実行中に, 何らかのエラーが発生した場合, 処理を中止しエラーページへ遷移する

決済モジュールを使用する場合は対応状況を「決済処理中」に設定し, 決済完了後「新規受付」に変更すること

引数:
integer$orderStatus受注処理を完了する際に設定する対応状況
戻り値:
void
copyFromCustomer ( &$  dest,
&$  objCustomer,
prefix = 'order',
keys = array('name01', 'name02', 'kana01', 'kana02',                                            'sex', 'zip01', 'zip02', 'pref',                                            'addr01', 'addr02',                                            'tel01', 'tel02', 'tel03', 'job',                                            'birth', 'email') 
)

会員情報を受注情報にコピーする.

ユーザーがログインしていない場合は何もしない. 会員情報を $dest の order_* へコピーする. customer_id は強制的にコピーされる.

引数:
array$destコピー先の配列
SC_Customer$objCustomerSC_Customer インスタンス
string$prefixコピー先の接頭辞. デフォルト order
array$keysコピー対象のキー
戻り値:
void
copyFromOrder ( &$  dest,
src,
prefix = 'shipping',
src_prefix = 'order',
keys = array('name01', 'name02', 'kana01', 'kana02',                                         'sex', 'zip01', 'zip02', 'pref',                                         'addr01', 'addr02',                                         'tel01', 'tel02', 'tel03') 
)

受注情報を配送情報にコピーする.

受注情報($src)を $dest の order_* へコピーする.

TODO 汎用的にして SC_Utils へ移動

引数:
array$destコピー先の配列
array$srcコピー元の配列
array$keysコピー対象のキー
string$prefixコピー先の接頭辞. デフォルト shipping
string$src_prefixコピー元の接頭辞. デフォルト order
戻り値:
void
getDateArray ( start_day,
end_day 
)

お届け可能日のスタート値から, お届け日の配列を取得する.

getDeliv ( product_type_id)

商品種別ID から配送業者を取得する.

引数:
integer$product_type_id商品種別ID
戻り値:
array 配送業者の配列
getDelivDate ( &$  objCartSess,
productTypeId 
)

お届け日一覧を取得する.

getDelivTime ( deliv_id)

配送業者IDからお届け時間の配列を取得する.

引数:
integer$deliv_id配送業者ID
戻り値:
array お届け時間の配列
getOrder ( order_id,
customer_id = null 
)

受注情報を取得する.

引数:
integer$order_id受注ID
integer$customer_id顧客ID
戻り値:
array 受注情報の配列
getOrderDetail ( order_id,
has_order_status = true 
)

受注詳細を取得する.

引数:
integer$order_id受注ID
boolean$has_order_status対応状況, 入金日も含める場合 true
戻り値:
array 受注詳細の配列
getOrderTemp ( uniqId)

受注一時情報を取得する.

引数:
integer$uniqId受注一時情報ID
戻り値:
array 受注一時情報の配列
getOrderTempByOrderId ( order_id)

受注IDをキーにして受注一時情報を取得する.

引数:
integer$order_id受注ID
戻り値:
array 受注一時情報の配列
getPayments ( deliv_id)

配送業者ID から, 有効な支払方法IDを取得する.

引数:
integer$deliv_id配送業者ID
戻り値:
array 有効な支払方法IDの配列
getPaymentsByPrice ( total,
deliv_id 
)

購入金額に応じた支払方法を取得する.

引数:
integer$total購入金額
integer$deliv_id配送業者ID
戻り値:
array 購入金額に応じた支払方法の配列
getShipmentItems ( order_id,
shipping_id,
has_detail = true 
)

配送商品を取得する.

引数:
integer$order_id受注ID
integer$shipping_id配送先ID
boolean$has_detail商品詳細も取得する場合 true
戻り値:
array 商品規格IDをキーにした配送商品の配列
getShippingPref ( is_multiple)

配送先都道府県の配列を返す.

getShippings ( order_id,
has_items = true 
)

配送情報を取得する.

引数:
integer$order_id受注ID
boolean$has_items結果に配送商品も含める場合 true
戻り値:
array 配送情報の配列
getShippingTemp ( has_shipment_item)

配送情報をセッションから取得する.

引数:
bool$has_shipment_item配送商品を保有している配送先のみ返す。
isAddPoint ( status)

ポイント加算するかの判定

引数:
integer$status対応状況
戻り値:
boolean 加算するか

複数配送指定の購入かどうか.

戻り値:
boolean 複数配送指定の購入の場合 true
isUsePoint ( status)

ポイント使用するかの判定

$status が null の場合は false を返す.

引数:
integer$status対応状況
戻り値:
boolean 使用するか(会員テーブルから減算するか)
registerOrder ( order_id,
arrParams 
)

受注情報を登録する.

既に受注IDが存在する場合は, 受注情報を更新する. 引数の受注IDが, 空白又は null の場合は, 新しく受注IDを発行して登録する.

引数:
integer$order_id受注ID
array$arrParams受注情報の連想配列
戻り値:
integer 受注ID
registerOrderComplete ( orderParams,
&$  objCartSession,
cartKey 
)

受注登録を完了する.

引数の受注情報を受注テーブル及び受注詳細テーブルに登録する. 登録後, 受注一時テーブルに削除フラグを立てる.

引数:
array$orderParams登録する受注情報の配列
SC_CartSession$objCartSessionカート情報のインスタンス
integer$cartKey登録を行うカート情報のキー
integer受注ID
registerOrderDetail ( order_id,
arrParams 
)

受注詳細情報を登録する.

既に, 該当の受注が存在する場合は, 受注情報を削除し, 登録する.

引数:
integer$order_id受注ID
array$arrParams受注情報の連想配列
戻り値:
void
registerShipmentItem ( order_id,
shipping_id,
arrParams 
)

配送商品を登録する.

引数:
integer$order_id受注ID
integer$shipping_id配送先ID
array$arrParams配送商品の配列
戻り値:
void
registerShipping ( order_id,
arrParams,
convert_shipping_date = true 
)

配送情報の登録を行う.

$arrParam のうち, dtb_shipping テーブルに存在するカラムのみを登録する.

TODO UPDATE/INSERT にする

引数:
integer$order_id受注ID
array$arrParams配送情報の連想配列
boolean$convert_shipping_dateyyyy/mm/dd(EEE) 形式の配送日付を変換する場合 true
戻り値:
void
rollbackOrder ( order_id,
orderStatus = ORDER_CANCEL,
is_delete = false 
)

受注をキャンセルし, カートをロールバックして, 受注一時IDを返す.

受注完了後の受注をキャンセルし, カートの状態を受注前の状態へ戻す. この関数は, 主に, 決済モジュールに遷移した後, 購入確認画面へ戻る場合に使用する.

対応状況を引数 $orderStatus で指定した値に変更する. (デフォルト ORDER_CANCEL) 引数 $is_delete が true の場合は, 受注データを論理削除する. 商品の在庫数, カートの内容は受注前の状態に戻される.

引数:
integer$order_id受注ID
integer$orderStatus対応状況
boolean$is_delete受注データを論理削除する場合 true
戻り値:
string 受注一時ID
saveOrderTemp ( uniqId,
params,
&$  objCustomer 
)

受注一時情報を保存する.

既存のデータが存在しない場合は新規保存. 存在する場合は更新する. 既存のデータが存在せず, ユーザーがログインしている場合は, 会員情報をコピーする.

引数:
integer$uniqId受注一時情報ID
array$params登録する受注情報の配列
SC_Customer$objCustomerSC_Customer インスタンス
戻り値:
array void
saveShippingTemp ( arrSrc,
shipping_id = 0 
)

配送情報をセッションに保存する.

引数:
array$arrSrc配送情報の連想配列
integer$shipping_id配送先ID
戻り値:
void
sendOrderMail ( orderId)

受注完了メールを送信する.

HTTP_USER_AGENT の種別により, 携帯電話の場合は携帯用の文面, PC の場合は PC 用の文面でメールを送信する.

引数:
integer$orderId受注ID
戻り値:
void
setDownloadableFlgTo ( &$  arrOrderDetail)

ダウンロード可能フラグを, 受注詳細に設定する.

ダウンロード可能と判断されるのは, 以下の通り.

1. ダウンロード可能期限が期限内かつ, 入金日が入力されている 2. 販売価格が 0 円である

受注詳細行には, is_downloadable という真偽値が設定される.

引数:
array受注詳細の配列
戻り値:
void
setShipmentItemTemp ( shipping_id,
product_class_id,
quantity 
)

配送商品を設定する.

引数:
integer$shipping_id配送先ID
integer$product_class_id商品規格ID
integer$quantity数量
戻り値:
void
sfUpdateOrderNameCol ( order_id,
temp_table = false 
) [static]

受注の名称列を更新する

引数:
integer$order_id更新対象の注文番号
boolean$temp_table更新対象は「受注_Temp」か
sfUpdateOrderStatus ( orderId,
newStatus = null,
newAddPoint = null,
newUsePoint = null,
&$  sqlval 
)

受注.対応状況の更新

必ず呼び出し元でトランザクションブロックを開いておくこと。

引数:
integer$orderId注文番号
integer | null$newStatus対応状況 (null=変更無し)
integer | null$newAddPoint加算ポイント (null=変更無し)
integer | null$newUsePoint使用ポイント (null=変更無し)
array$sqlval更新後の値をリファレンスさせるためのパラメーター
戻り値:
void

セッションの配送情報を破棄する.

verifyChangeCart ( uniqId,
&$  objCartSession 
)

カートに変化が無いか検証する.

ユニークIDとセッションのユニークIDを比較し, 異なる場合は エラー画面を表示する.

カートが空の場合, 購入ボタン押下後にカートが変更された場合は カート画面へ遷移する.

引数:
string$uniqIdユニークID
SC_CartSession$objCartSession
戻り値:
void

このクラスの説明は次のファイルから生成されました:
 全て データ構造 ネームスペース 関数 変数