PurchaseHelper
class PurchaseHelper
商品購入関連のヘルパークラス.
TODO 購入時強制会員登録機能(#521)の実装を検討 TODO dtbcustomer.buytimes, dtbcustomer.buytotal の更新
Properties
$arrShippingKey |
Methods
受注を完了する.
受注をキャンセルする.
受注をキャンセルし, カートをロールバックして, 受注一時IDを返す.
受注一時情報を取得する.
受注IDをキーにして受注一時情報を取得する.
配送情報をセッションから取得する.
配送商品をクリア(消去)する
配送商品を設定する.
配送先都道府県の配列を返す.
複数配送指定の購入かどうか.
配送情報をセッションに保存する.
セッションの配送情報を全て破棄する
セッションの配送情報を個別に破棄する
会員情報を受注情報にコピーする.
受注情報を配送情報にコピーする.
配送情報のみ抜き出す。
No description
配送業者IDから, 支払い方法, お届け時間の配列を取得する.
お届け可能日のスタート値から, お届け日の配列を取得する.
配送情報の登録を行う.
配送商品を登録する.
受注登録を完了する.
受注情報を登録する.
受注詳細情報を登録する.
受注情報を取得する.
受注詳細を取得する.
ダウンロード可能フラグを, 受注詳細に設定する.
配送情報を取得する.
配送商品を取得する.
注文受付メールを送信する.
受注.対応状況の更新
受注の名称列を更新する
ポイント使用するかの判定
ポイント加算するかの判定
セッションに保持している情報を破棄する.
新規受注の注文IDを返す
決済処理中スタータスの受注データのキャンセル処理
決済処理中スタータスの全受注検索
No description
No description
Details
at line 81
void
completeOrder(integer $orderStatus = ORDER_NEW)
受注を完了する.
下記のフローで受注を完了する.
- トランザクションを開始する
- カートの内容を検証する.
- 受注一時テーブルから受注データを読み込む
- ユーザーがログインしている場合はその他の発送先へ登録する
- 受注データを受注テーブルへ登録する
- トランザクションをコミットする
実行中に, 何らかのエラーが発生した場合, 処理を中止しエラーページへ遷移する
決済モジュールを使用する場合は対応状況を「決済処理中」に設定し, 決済完了後「新規受付」に変更すること
at line 140
void
cancelOrder(integer $order_id, integer $orderStatus = ORDER_CANCEL, boolean $is_delete = false)
受注をキャンセルする.
受注完了後の受注をキャンセルする. この関数は, 主に決済モジュールにて, 受注をキャンセルする場合に使用する.
対応状況を引数 $orderStatus で指定した値に変更する. (デフォルト ORDERCANCEL) 引数 $isdelete が true の場合は, 受注データを論理削除する. 商品の在庫数は, 受注前の在庫数に戻される.
at line 183
string
rollbackOrder(integer $order_id, integer $orderStatus = ORDER_CANCEL, boolean $is_delete = false)
受注をキャンセルし, カートをロールバックして, 受注一時IDを返す.
受注完了後の受注をキャンセルし, カートの状態を受注前の状態へ戻す. この関数は, 主に, 決済モジュールに遷移した後, 購入確認画面へ戻る場合に使用する.
対応状況を引数 $orderStatus で指定した値に変更する. (デフォルト ORDERCANCEL) 引数 $isdelete が true の場合は, 受注データを論理削除する. 商品の在庫数, カートの内容は受注前の状態に戻される.
at line 230
void
verifyChangeCart(string $uniqId, CartSession $objCartSession)
カートに変化が無いか検証する.
ユニークIDとセッションのユニークIDを比較し, 異なる場合は エラー画面を表示する.
カートが空の場合, 購入ボタン押下後にカートが変更された場合は カート画面へ遷移する.
at line 266
array
getOrderTemp(integer $uniqId)
受注一時情報を取得する.
at line 279
array
getOrderTempByOrderId(integer $order_id)
受注IDをキーにして受注一時情報を取得する.
at line 296
void
saveOrderTemp(integer $uniqId, array $params, Customer $objCustomer = NULL)
受注一時情報を保存する.
既存のデータが存在しない場合は新規保存. 存在する場合は更新する.
at line 336
getShippingTemp(bool $has_shipment_item = false)
配送情報をセッションから取得する.
at line 359
void
clearShipmentItemTemp(integer $shipping_id = null)
配送商品をクリア(消去)する
at line 380
void
setShipmentItemTemp(integer $shipping_id, integer $product_class_id, integer $quantity)
配送商品を設定する.
at line 414
getShippingPref(boolean $is_multiple)
配送先都道府県の配列を返す.
at line 429
boolean
isMultiple()
複数配送指定の購入かどうか.
at line 442
void
saveShippingTemp(array $arrSrc, integer $shipping_id)
配送情報をセッションに保存する.
XXX マージする理由が不明(なんとなく便利な気はするけど)。分かる方コメントに残してください。
at line 460
void
unsetShippingTemp()
deprecated
deprecated
セッションの配送情報を破棄する.
at line 471
static void
unsetAllShippingTemp(bool $multiple_temp = false)
セッションの配送情報を全て破棄する
at line 485
static void
unsetOneShippingTemp(integer $shipping_id)
セッションの配送情報を個別に破棄する
at line 503
void
copyFromCustomer(array $dest, Customer $objCustomer, string $prefix = 'order', array $keys = array('name01', 'name02', 'kana01', 'kana02', 'company_name', 'sex', 'zip01', 'zip02', 'country_id', 'zipcode', 'pref', 'addr01', 'addr02', 'tel01', 'tel02', 'tel03', 'fax01', 'fax02', 'fax03', 'job', 'birth', 'email'))
会員情報を受注情報にコピーする.
ユーザーがログインしていない場合は何もしない. 会員情報を $dest の order* へコピーする. customerid は強制的にコピーされる.
at line 547
void
copyFromOrder($dest, $src, $prefix = 'shipping', $src_prefix = 'order', $arrKey = null)
受注情報を配送情報にコピーする.
受注情報($src)を $dest の order_* へコピーする.
TODO 汎用的にして \Eccube\Framework\Util\Utils へ移動
at line 571
void
extractShipping(string $arrSrc)
配送情報のみ抜き出す。
at line 581
setDefaultPurchase($uniqId, $cartKey, $objCustomer, $objCartSess)
at line 619
array
getSelectablePayment($objCartSess, $deliv_id, $is_list = false)
配送業者IDから, 支払い方法, お届け時間の配列を取得する.
結果の連想配列の添字の値は以下の通り - 'arrDelivTime' - お届け時間の配列 - 'arrPayment' - 支払い方法の配列 - 'img_show' - 支払い方法の画像の有無
at line 645
getDelivDate(CartSession $objCartSess, integer $productTypeId)
お届け日一覧を取得する.
at line 705
getDateArray($start_day, $end_day)
お届け可能日のスタート値から, お届け日の配列を取得する.
at line 740
void
registerShipping(integer $order_id, array $arrParams, boolean $convert_shipping_date = true)
配送情報の登録を行う.
$arrParam のうち, dtb_shipping テーブルに存在するカラムのみを登録する.
TODO UPDATE/INSERT にする
at line 783
void
registerShipmentItem(integer $order_id, integer $shipping_id, array $arrParams)
配送商品を登録する.
at line 841
registerOrderComplete($orderParams, $objCartSession, $cartKey)
受注登録を完了する.
引数の受注情報を受注テーブル及び受注詳細テーブルに登録する. 登録後, 受注一時テーブルに削除フラグを立てる.
at line 914
integer
registerOrder(integer $order_id, array $arrParams)
受注情報を登録する.
既に受注IDが存在する場合は, 受注情報を更新する. 引数の受注IDが, 空白又は null の場合は, 新しく受注IDを発行して登録する.
at line 968
void
registerOrderDetail(integer $order_id, array $arrParams)
受注詳細情報を登録する.
既に, 該当の受注が存在する場合は, 受注情報を削除し, 登録する.
at line 990
array
getOrder(integer $order_id, integer $customer_id = null)
受注情報を取得する.
at line 1010
array
getOrderDetail(integer $order_id, boolean $has_order_status = true)
受注詳細を取得する.
at line 1069
void
setDownloadableFlgTo(array $arrOrderDetail)
ダウンロード可能フラグを, 受注詳細に設定する.
ダウンロード可能と判断されるのは, 以下の通り.
- ダウンロード可能期限が期限内かつ, 入金日が入力されている
- 販売価格が 0 円である
受注詳細行には, is_downloadable という真偽値が設定される.
at line 1092
array
getShippings(integer $order_id, boolean $has_items = true)
配送情報を取得する.
at line 1124
array
getShipmentItems(integer $order_id, integer $shipping_id, boolean $has_detail = true)
配送商品を取得する.
at line 1164
static boolean
sendOrderMail(integer $order_id, object $objPage = NULL)
注文受付メールを送信する.
端末種別IDにより, 携帯電話の場合は携帯用の文面, それ以外の場合は PC 用の文面でメールを送信する.
at line 1196
void
sfUpdateOrderStatus(integer $orderId, integer|null $newStatus = null, integer|null $newAddPoint = null, integer|null $newUsePoint = null, array $sqlval = array())
受注.対応状況の更新
必ず呼び出し元でトランザクションブロックを開いておくこと。
at line 1304
sfUpdateOrderNameCol(integer $order_id, boolean $temp_table = false)
受注の名称列を更新する
at line 1342
boolean
isUsePoint(integer $status)
ポイント使用するかの判定
$status が null の場合は false を返す.
at line 1364
boolean
isAddPoint(integer $status)
ポイント加算するかの判定
at line 1403
cleanupSession(integer $orderId, CartSession $objCartSession, Customer $objCustomer, integer $cartKey)
セッションに保持している情報を破棄する.
通常、受注処理(completeOrder)完了後に呼び出され、 セッション情報を破棄する.
決済モジュール画面から確認画面に「戻る」場合を考慮し、 セッション情報を破棄しないカスタマイズを、モジュール側で 加える機会を与える.
$orderId が使われていない。
at line 1421
void
setShipmentItemTempForSole(CartSession $objCartSession, integer $shipping_id)
単一配送指定用に配送商品を設定する
at line 1440
integer
getNextOrderID()
新規受注の注文IDを返す
at line 1452
void
cancelPendingOrder(bool $cancel_flg)
決済処理中スタータスの受注データのキャンセル処理
at line 1464
checkDbAllPendingOrder()
決済処理中スタータスの全受注検索