Helper
[ class tree: Helper ] [ index: Helper ] [ all elements ]

Class: SC_Helper_Purchase

Source Location: /helper/SC_Helper_Purchase.php

Class Overview


商品購入関連のヘルパークラス.


Author(s):

  • Kentaro Ohkouchi

Version:

  • $Id: SC_Helper_Purchase.php 21303 2011-10-28 10:01:24Z shutta $

Methods



Class Details

[line 34]
商品購入関連のヘルパークラス.

TODO 購入時強制会員登録機能(#521)の実装を検討 TODO dtb_customer.buy_times, dtb_customer.buy_total の更新




Tags:

author:  Kentaro Ohkouchi
version:  $Id: SC_Helper_Purchase.php 21303 2011-10-28 10:01:24Z shutta $


[ Top ]


Class Methods


static method sfUpdateOrderNameCol [line 1188]

static void sfUpdateOrderNameCol( integer $order_id, [boolean $temp_table = false])

受注の名称列を更新する



Parameters:

integer   $order_id   更新対象の注文番号
boolean   $temp_table   更新対象は「受注_Temp」か

[ Top ]

method cancelOrder [line 114]

void cancelOrder( integer $order_id, [integer $orderStatus = ORDER_CANCEL], [boolean $is_delete = false])

受注をキャンセルする.

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

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




Parameters:

integer   $order_id   受注ID
integer   $orderStatus   対応状況
boolean   $is_delete   受注データを論理削除する場合 true

[ Top ]

method cleanupSession [line 1275]

void cleanupSession( integer $orderId, &$objCartSession, &$objCustomer, integer $cartKey, SC_CartSession $objCartSession, SC_Customer $objCustomer)

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

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

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




Parameters:

integer   $orderId   注文番号
SC_CartSession   $objCartSession   カート情報のインスタンス
SC_Customer   $objCustomer   SC_Customer インスタンス
integer   $cartKey   登録を行うカート情報のキー
   &$objCartSession  
   &$objCustomer  

[ Top ]

method clearShipmentItemTemp [line 315]

void clearShipmentItemTemp( [integer $shipping_id = null])

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



Parameters:

integer   $shipping_id   配送先ID

[ Top ]

method completeOrder [line 56]

void completeOrder( [integer $orderStatus = ORDER_NEW])

受注を完了する.

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

  1. トランザクションを開始する
  2. カートの内容を検証する.
  3. 受注一時テーブルから受注データを読み込む
  4. ユーザーがログインしている場合はその他の発送先へ登録する
  5. 受注データを受注テーブルへ登録する
  6. トランザクションをコミットする
実行中に, 何らかのエラーが発生した場合, 処理を中止しエラーページへ遷移する

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




Parameters:

integer   $orderStatus   受注処理を完了する際に設定する対応状況

[ Top ]

method copyFromCustomer [line 419]

void copyFromCustomer( &$dest, &$objCustomer, [string $prefix = 'order'], [array $keys = array('name01', 'name02', 'kana01', 'kana02', 'sex', 'zip01', 'zip02', 'pref', 'addr01', 'addr02', 'tel01', 'tel02', 'tel03', 'job', 'birth', 'email')], array $dest, SC_Customer $objCustomer)

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

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




Parameters:

array   $dest   コピー先の配列
SC_Customer   $objCustomer   SC_Customer インスタンス
string   $prefix   コピー先の接頭辞. デフォルト order
array   $keys   コピー対象のキー
   &$dest  
   &$objCustomer  

[ Top ]

method copyFromOrder [line 463]

void copyFromOrder( &$dest, array $src, [string $prefix = 'shipping'], [string $src_prefix = 'order'], [array $keys = array('name01', 'name02', 'kana01', 'kana02', 'sex', 'zip01', 'zip02', 'pref', 'addr01', 'addr02', 'tel01', 'tel02', 'tel03')], array $dest)

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

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

TODO 汎用的にして SC_Utils へ移動




Parameters:

array   $dest   コピー先の配列
array   $src   コピー元の配列
array   $keys   コピー対象のキー
string   $prefix   コピー先の接頭辞. デフォルト shipping
string   $src_prefix   コピー元の接頭辞. デフォルト order
   &$dest  

[ Top ]

method getDateArray [line 589]

void getDateArray( $start_day, $end_day)

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



Parameters:

   $start_day  
   $end_day  

[ Top ]

method getDeliv [line 635]

array getDeliv( integer $product_type_id)

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



Tags:

return:  配送業者の配列


Parameters:

integer   $product_type_id   商品種別ID

[ Top ]

method getDelivDate [line 532]

void getDelivDate( &$objCartSess, $productTypeId)

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



Parameters:

   &$objCartSess  
   $productTypeId  

[ Top ]

method getDelivTime [line 616]

array getDelivTime( integer $deliv_id)

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



Tags:

return:  お届け時間の配列


Parameters:

integer   $deliv_id   配送業者ID

[ Top ]

method getOrder [line 904]

array getOrder( integer $order_id, [integer $customer_id = null])

受注情報を取得する.



Tags:

return:  受注情報の配列


Parameters:

integer   $order_id   受注ID
integer   $customer_id   顧客ID

[ Top ]

method getOrderDetail [line 922]

array getOrderDetail( integer $order_id, [boolean $has_order_status = true])

受注詳細を取得する.



Tags:

return:  受注詳細の配列


Parameters:

integer   $order_id   受注ID
boolean   $has_order_status   対応状況, 入金日も含める場合 true

[ Top ]

method getOrderTemp [line 234]

array getOrderTemp( integer $uniqId)

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



Tags:

return:  受注一時情報の配列


Parameters:

integer   $uniqId   受注一時情報ID

[ Top ]

method getOrderTempByOrderId [line 246]

array getOrderTempByOrderId( integer $order_id)

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



Tags:

return:  受注一時情報の配列


Parameters:

integer   $order_id   受注ID

[ Top ]

method getPayments [line 648]

array getPayments( integer $deliv_id)

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



Tags:

return:  有効な支払方法IDの配列


Parameters:

integer   $deliv_id   配送業者ID

[ Top ]

method getPaymentsByPrice [line 489]

array getPaymentsByPrice( integer $total, integer $deliv_id)

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



Tags:

return:  購入金額に応じた支払方法の配列


Parameters:

integer   $total   購入金額
integer   $deliv_id   配送業者ID

[ Top ]

method getShipmentItems [line 1029]

array getShipmentItems( integer $order_id, integer $shipping_id, [boolean $has_detail = true])

配送商品を取得する.



Tags:

return:  商品規格IDをキーにした配送商品の配列


Parameters:

integer   $order_id   受注ID
integer   $shipping_id   配送先ID
boolean   $has_detail   商品詳細も取得する場合 true

[ Top ]

method getShippingPref [line 361]

void getShippingPref( $is_multiple)

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



Parameters:

   $is_multiple  

[ Top ]

method getShippings [line 998]

array getShippings( integer $order_id, [boolean $has_items = true])

配送情報を取得する.



Tags:

return:  配送情報の配列


Parameters:

integer   $order_id   受注ID
boolean   $has_items   結果に配送商品も含める場合 true

[ Top ]

method getShippingTemp [line 296]

void getShippingTemp( bool $has_shipment_item)

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



Parameters:

bool   $has_shipment_item   配送商品を保有している配送先のみ返す。

[ Top ]

method isAddPoint [line 1241]

boolean isAddPoint( integer $status)

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



Tags:

return:  加算するか


Parameters:

integer   $status   対応状況

[ Top ]

method isMultiple [line 374]

boolean isMultiple( )

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



Tags:

return:  複数配送指定の購入の場合 true


[ Top ]

method isUsePoint [line 1221]

boolean isUsePoint( integer $status)

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

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




Tags:

return:  使用するか(会員テーブルから減算するか)


Parameters:

integer   $status   対応状況

[ Top ]

method registerOrder [line 829]

integer registerOrder( integer $order_id, array $arrParams)

受注情報を登録する.

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




Tags:

return:  受注ID


Parameters:

integer   $order_id   受注ID
array   $arrParams   受注情報の連想配列

[ Top ]

method registerOrderComplete [line 762]

void registerOrderComplete( array $orderParams, &$objCartSession, integer $cartKey, SC_CartSession $objCartSession, integer 3)

受注登録を完了する.

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




Parameters:

array   $orderParams   登録する受注情報の配列
SC_CartSession   $objCartSession   カート情報のインスタンス
integer   $cartKey   登録を行うカート情報のキー
integer   3   受注ID
   &$objCartSession  

[ Top ]

method registerOrderDetail [line 883]

void registerOrderDetail( integer $order_id, array $arrParams)

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

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




Parameters:

integer   $order_id   受注ID
array   $arrParams   受注情報の連想配列

[ Top ]

method registerShipmentItem [line 706]

void registerShipmentItem( integer $order_id, integer $shipping_id, array $arrParams)

配送商品を登録する.



Parameters:

integer   $order_id   受注ID
integer   $shipping_id   配送先ID
array   $arrParams   配送商品の配列

[ Top ]

method registerShipping [line 668]

void registerShipping( integer $order_id, array $arrParams, [boolean $convert_shipping_date = true])

配送情報の登録を行う.

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

TODO UPDATE/INSERT にする




Parameters:

integer   $order_id   受注ID
array   $arrParams   配送情報の連想配列
boolean   $convert_shipping_date   yyyy/mm/dd(EEE) 形式の配送日付を変換する場合 true

[ Top ]

method rollbackOrder [line 155]

string rollbackOrder( integer $order_id, [integer $orderStatus = ORDER_CANCEL], [boolean $is_delete = false])

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

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

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




Tags:

return:  受注一時ID


Parameters:

integer   $order_id   受注ID
integer   $orderStatus   対応状況
boolean   $is_delete   受注データを論理削除する場合 true

[ Top ]

method saveOrderTemp [line 264]

array saveOrderTemp( integer $uniqId, array $params, &$objCustomer, SC_Customer $objCustomer)

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

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




Tags:

return:  void


Parameters:

integer   $uniqId   受注一時情報ID
array   $params   登録する受注情報の配列
SC_Customer   $objCustomer   SC_Customer インスタンス
   &$objCustomer  

[ Top ]

method saveShippingTemp [line 385]

void saveShippingTemp( array $arrSrc, [integer $shipping_id = 0])

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



Parameters:

array   $arrSrc   配送情報の連想配列
integer   $shipping_id   配送先ID

[ Top ]

method sendOrderMail [line 1061]

void sendOrderMail( integer $orderId)

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

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




Parameters:

integer   $orderId   受注ID

[ Top ]

method setDownloadableFlgTo [line 975]

void setDownloadableFlgTo( array &$arrOrderDetail)

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

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

  1. ダウンロード可能期限が期限内かつ, 入金日が入力されている
  2. 販売価格が 0 円である
受注詳細行には, is_downloadable という真偽値が設定される.




Parameters:

array   &$arrOrderDetail   受注詳細の配列

[ Top ]

method setShipmentItemTemp [line 331]

void setShipmentItemTemp( integer $shipping_id, integer $product_class_id, integer $quantity)

配送商品を設定する.



Parameters:

integer   $shipping_id   配送先ID
integer   $product_class_id   商品規格ID
integer   $quantity   数量

[ Top ]

method sfUpdateOrderStatus [line 1080]

void sfUpdateOrderStatus( integer $orderId, [integer|null $newStatus = null], [integer|null $newAddPoint = null], [integer|null $newUsePoint = null], &$sqlval, array $sqlval)

受注.対応状況の更新

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




Parameters:

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

[ Top ]

method unsetShippingTemp [line 401]

void unsetShippingTemp( )

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



[ Top ]

method verifyChangeCart [line 197]

void verifyChangeCart( string $uniqId, &$objCartSession, SC_CartSession $objCartSession)

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

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

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




Parameters:

string   $uniqId   ユニークID
SC_CartSession   $objCartSession  
   &$objCartSession  

[ Top ]


Documentation generated on Fri, 24 Feb 2012 14:02:48 +0900 by Seasoft