バージョン選択

フォーラム

メニュー

オンライン状況

67 人のユーザが現在オンラインです。 (52 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 67
もっと...

サイト内検索

 > フロント機能 > 問屋注文リスト生成

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yoshiyoshi
投稿日時: 2008/2/24 18:49
対応状況: −−−
新米
登録日: 2007/5/31
居住地:
投稿: 6
問屋注文リスト生成
問屋へ発注するリストをcsvで吐き出すプログラムです。
本体のテーブルやシステムの根本的な部分はいじらないです。
ご使用は自己責任でお願いいたします。

・EC-CUBE1.4.6
・postgresql8.3使用
・問屋リストや、セット商品をいじる部分を作っていないので、テーブルをいじるスキルがないと、一部機能が使えません。
・dtb_products_class > product_codeに、問屋を判別できる文字を入れて、dtb_wholesale > wholesale_codeにその文字を設定してください。

wholesale_order.php
IN:/admin/order
引用:

require_once("../require.php");
require_once("./index_csv.php");

/* ステータス */
$arrWHOLESALEORDERSTATUS = array(
1 => "未注文",
2 => "注文済",
);
$arrWHOLESALEORDERSTATUS_COLOR = array(
1 => "#FFFFFF",
2 => "#FFDE9B",
);

class LC_Page {
function LC_Page() {
$this->tpl_mainpage = 'order/wholesale_order.tpl';
$this->tpl_subnavi = 'order/subnavi.tpl';
$this->tpl_mainno = 'order';
$this->tpl_subno = 'wholesale_order';
global $arrWHOLESALEORDERSTATUS;
global $arrWHOLESALEORDERSTATUS_COLOR;
$this->arrWHOLESALEORDERSTATUS = $arrWHOLESALEORDERSTATUS;
$this->arrWHOLESALEORDERSTATUS_COLOR = $arrWHOLESALEORDERSTATUS_COLOR;

}
}

$objPage = new LC_Page();
$objView = new SC_AdminView();
$objSess = new SC_Session();
$objQuery = new SC_Query();

// 認証可否の判定
$objSess = new SC_Session();
sfIsSuccess($objSess);

//ステータス情報(仮定)
$objPage->arrForm = $_POST;

switch ($_POST['mode']){

case 'move':
switch($_POST['change_status']){
//未注文
case 1:
lfStatusMove(1, $_POST['move']);
break;
//注文済
case 2:
lfStatusMove(2, $_POST['move']);
break;

default:
break;
}
break;

//csv出力
case 'temp_csv':

$objPage->tpl_onload = "fnOnloadCsvModeSubmit();";

//temp_statusを一時的に1にする
lfTempStatusMove(1, $_POST['move']);

break;

//csv出力
case 'csv':

$status = $_POST['status'];

$select = "T3.wholesale_order_id, T1.product_id, T1.product_name, T1.quantity, T1.classcategory_name1, T1.classcategory_name2";
$from = "dtb_order_detail AS T1";
$from .= " LEFT JOIN dtb_order AS T2 ON T1.order_id = T2.order_id";
$from .= " LEFT JOIN dtb_wholesale_order AS T3 ON T1.order_id = T3.order_id AND T1.product_id = T3.product_id";
$from .= " LEFT JOIN dtb_products_class AS T4 ON T1.product_id = T4.product_id AND T1.classcategory_id1 = T4.classcategory_id1 AND T1.classcategory_id2 = T4.classcategory_id2";
$from .= " LEFT JOIN dtb_products AS T5 ON T1.product_id = T5.product_id";
$where = "T3.temp_status = ?";

$arrResults = $objQuery->select($select, $from, $where, array(1));

$s_col = "T1.set_product_id, T2.name, T1.set_quantity, T1.set_classcategory_id, T1.set_product_name";
$s_from = "dtb_products_set AS T1";
$s_from .= " LEFT JOIN dtb_products AS T2 ON T1.set_product_id = T2.product_id";
$s_where = "T1.product_id = ?";
$objQuery->setorder("T1.set_product_id");

foreach($arrResults as $arrResult) {

//セットの商品かどうか確認

$arrSetResults = $objQuery->select($s_col, $s_from, $s_where, array($arrResult[product_id]));

if($arrSetResults[0]){

foreach($arrSetResults as $arrSetResult){
if($arrSetResult[set_product_name] != ""){
$data .= $arrSetResult[set_product_name];
}else{
$data .= $arrSetResult[name];
}
//セットの詳細があれば記載
if($arrSetResult[set_classcategory_id] != 0){
$classcategory_column_name = "classcategory_name". $arrSetResult[set_classcategory_id];
$data .= " ". $arrResult[$classcategory_column_name];
}
$data .= ",";
$data .= $arrSetResult[set_quantity] * $arrResult[quantity]. ",";
$data .= "\r\n";
}

}else{
$data .= $arrResult[product_name]. ",";
if($arrResult[classcategory_name1]){
$data .= " ". $arrResult[classcategory_name1];
}
if($arrResult[classcategory_name2]){
$data .= " ". $arrResult[classcategory_name2];
}
$data .= $arrResult[quantity]. ",";
$data .= "\r\n";
}

}

//temp_statusを0に戻して、statusを2(注文済)にする
$arrUpdate['status'] = 2;
$arrUpdate['temp_status'] = 0;

foreach ( $arrResults as $val ){
if ( $val != "" ) {
$objQuery->update("dtb_wholesale_order", $arrUpdate, "wholesale_order_id = ?", array($val[wholesale_order_id]));
}
}

// CSVを送信する。
sfCSVDownload($head.$data);
exit;

break;

//サブナビ検索
case 'search':
break;

//デフォルトは未注文
default:
$_POST['status'] = 1;
break;
}


lfWholesaleOrderDisp($_POST['status'], $_POST['search_pageno']);
$objPage->SelectedStatus = $_POST['status'];
$objPage->arrWholesaleORDERSTATUS = $arrWholesaleORDERSTATUS;

$objView->assignobj($objPage);
$objView->display(MAIN_FRAME);

//-----------------------------------------------------------------------------------------------------------------------------------

//注文商品一覧
function lfWholesaleOrderDisp($status, $pageno){

$conn = new SC_DBConn();

global $objPage;
global $objQuery;

//問屋を取得
$objPage->arrWholesale = $objQuery->select("wholesale_id, wholesale_name, wholesale_code", "dtb_wholesale", "orifax_flg = 0 AND del_flg = 0");

$select = " T3.wholesale_order_id, T3.status, T2.create_date, T1.product_name, T2.order_name01, T2.order_name02, T1.quantity, T4.product_code, T1.order_id, T1.product_id";
$from = "dtb_order_detail AS T1";
$from .= " LEFT JOIN dtb_order AS T2 ON T1.order_id = T2.order_id";
$from .= " LEFT JOIN dtb_wholesale_order AS T3 ON T1.order_id = T3.order_id AND T1.product_id = T3.product_id";
$from .= " LEFT JOIN dtb_products_class AS T4 ON T1.product_id = T4.product_id AND T1.classcategory_id1 = T4.classcategory_id1 AND T1.classcategory_id2 = T4.classcategory_id2";
$from .= " LEFT JOIN dtb_products AS T5 ON T1.product_id = T5.product_id";
$where = "T2.del_flg = 0 AND NOT T2.status = 5 AND (now() - T2.create_date) < '90days'";
$order = "T3.status DESC, T2.create_date DESC";

//表示順序
$objQuery->setorder($order);

//検索結果の取得
$arrcheckorder = $objQuery->select($select, $from, $where);

foreach($arrcheckorder as $data){

//発注ステータス(dtb_wholesale_order)が無い場合
if($data['status'] == NULL){

$sqlval['order_id'] = $data['order_id'];
$sqlval['product_id'] = $data['product_id'];
$sqlval['status'] = 1;
$objQuery->insert("dtb_wholesale_order",$sqlval);

}
}

$where .= " AND T3.status = $status AND ( T3.temp_status IS NULL OR T3.temp_status = 0 )";
if($_POST[wholesale_id]){
$set_wholesale_code = $conn->getOne("SELECT wholesale_code FROM dtb_wholesale WHERE orifax_flg = 0 AND del_flg = 0 AND wholesale_id = ?",array($_POST[wholesale_id]));
$where .= " AND T4.product_code LIKE '%$set_wholesale_code%'";
}

//検索結果の取得
$arrOrder = $objQuery->select($select, $from, $where);

foreach($arrOrder as $data){

if($arrSetWholesale[0]){

foreach($arrSetWholesale as $Wholesale){

if(strpos($data['product_code'], $Wholesale['wholesale_code']) !== false){
$data['wholesale_list_name'] .= $Wholesale['wholesale_name']. " ";
}
}
$objPage->arrOrder[] = $data;

}else{

foreach($objPage->arrWholesale as $Wholesale){

if(strpos($data['product_code'], $Wholesale['wholesale_code']) !== false){
$data['wholesale_list_name'] .= $Wholesale['wholesale_name']. " ";
}
}
$objPage->arrOrder[] = $data;

}
}

$linemax = $objQuery->count($from, $where);
$objPage->tpl_linemax = $linemax;

// ページ送りの処理
$page_max = 200;

// ページ送りの取得
$objNavi = new SC_PageNavi($pageno, $linemax, $page_max, "fnNaviSearchOnlyPage", NAVI_PMAX);
$objPage->tpl_strnavi = $objNavi->strnavi; // 表示文字列
$startno = $objNavi->start_row;

$objPage->tpl_pageno = $pageno;

// 取得範囲の指定(開始行番号、行数のセット)
$objQuery->setlimitoffset($page_max, $startno);

return $objPage;
}

//ステータス情報の更新
function lfStatusMove($status_id, $arrMove){
global $objQuery;
global $objPage;
global $arrWHOLESALEORDERSTATUS;

$table = 'dtb_wholesale_order';
$where = 'wholesale_order_id = ?';

$message = ''; // ステータス変更後にポップアップするメッセージの内容

$arrUpdate['status'] = $status_id;
$message = $arrWHOLESALEORDERSTATUS[$status_id] . 'へ移動';


if ( isset($arrMove) ){
foreach ( $arrMove as $val ){
if ( $val != "" ) {
$objQuery->update($table, $arrUpdate, $where, array($val));
}

}
}

$objPage->tpl_onload = "window.alert('選択項目を" . $message . "しました。');";
}

//一時的ステータス情報の更新
function lfTempStatusMove($status_id, $arrMove){
global $objQuery;
global $objPage;
global $arrWHOLESALEORDERSTATUS;

$table = 'dtb_wholesale_order';
$where = 'wholesale_order_id = ?';
$arrUpdate['temp_status'] = 1;

if ( isset($arrMove) ){
foreach ( $arrMove as $val ){
if ( $val != "" ) {
$objQuery->update($table, $arrUpdate, $where, array($val));
}

}
}
}


お好きな位置に追加
subnavi.tpl
IN:/data/Smarty/templates/admin/order
引用:


<tr><td class=<!--{if $tpl_subno != 'wholesale_order'}-->"navi"<!--{else}-->"navi-on"<!--{/if}-->><a href="./wholesale_order.php" onMouseOver="naviStyleChange('wholesale_order', '#a5a5a5')" <!--{if $tpl_subno != 'wholesale_order'}-->onMouseOut="naviStyleChange('wholesale_order', '#636469')"<!--{/if}--> id="wholesale_order"><img src="<!--{$smarty.const.URL_DIR}-->img/contents/icon.jpg" width="15" height="9" alt="" border="0"><span class="navi_text">注文FAX生成</span></a></td></tr>
<tr><td><img src="<!--{$smarty.const.URL_DIR}-->img/contents/navi_line.gif" width="140" height="2" alt=""></td></tr>
<!--{if $tpl_subno == 'wholesale_order'}-->
<!--{foreach key=key item=item from=$arrWHOLESALEORDERSTATUS}-->
<tr><td class=<!--{if $key ne $SelectedStatus}-->"subnavi"<!--{else}-->"subnavi-on"<!--{/if}-->><a href="#" onclick="document.form1.search_pageno.value='1'; fnModeSubmit('search','status','<!--{$key}-->' );" onMouseOver="naviStyleChange('status_sub<!--{$key}-->', '#b7b7b7')" <!--{if $key ne $SelectedStatus}-->onMouseOut="naviStyleChange('status_sub<!--{$key}-->', '#818287')"<!--{/if}--> id="status_sub<!--{$key}-->"><span class="subnavi_text"><!--{$item}--></span></a></td></tr>
<tr><td><img src="<!--{$smarty.const.URL_DIR}-->img/contents/navi_subline.gif" width="140" height="2" alt=""></td></tr>
<!--{/foreach}-->
<!--{/if}-->



wholesale_order.tpl
IN:/data/Smarty/templates/admin/order
引用:

<!--★★メインコンテンツ★★-->
<table width="878" border="0" cellspacing="0" cellpadding="0" summary=" ">
<form name="form1" id="form1" method="POST" action="<!--{$smarty.server.PHP_SELF|escape}-->" >
<input type="hidden" name="mode" value="">
<input type="hidden" name="status" value="<!--{if $arrForm.status == ""}-->1<!--{else}--><!--{$arrForm.status}--><!--{/if}-->" >
<input type="hidden" name="search_pageno" value="<!--{$tpl_pageno}-->" >
<input type="hidden" name="order_id" value="">
<tr valign="top">
<td background="<!--{$smarty.const.URL_DIR}-->img/contents/navi_bg.gif" height="402">
<!-- サブナビ -->
<!--{include file=$tpl_subnavi}-->
</td>
<td class="mainbg">
<table width="737" border="0" cellspacing="0" cellpadding="0" summary=" ">
<!--メインエリア-->
<tr>
<td align="center">
<table width="706" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr><td height="14"></td></tr>
<tr>
<td colspan="3"><img src="<!--{$smarty.const.URL_DIR}-->img/contents/main_top.jpg" width="706" height="14" alt=""></td>
</tr>
<tr>
<td background="<!--{$smarty.const.URL_DIR}-->img/contents/main_left.jpg"><img src="<!--{$smarty.const.URL_DIR}-->img/common/_.gif" width="14" height="1" alt=""></td>
<td bgcolor="#cccccc">
<table width="678" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr>
<td colspan="3"><img src="<!--{$smarty.const.URL_DIR}-->img/contents/contents_title_top.gif" width="678" height="7" alt=""></td>
</tr>
<tr>
<td background="<!--{$smarty.const.URL_DIR}-->img/contents/contents_title_left_bg.gif"><img src="<!--{$smarty.const.URL_DIR}-->img/contents/contents_title_left.gif" width="22" height="12" alt=""></td>
<td bgcolor="#636469" width="638" class="fs14n"><span class="white"><!--コンテンツタイトル-->ステータス管理</span></td>
<td background="<!--{$smarty.const.URL_DIR}-->img/contents/contents_title_right_bg.gif"><img src="<!--{$smarty.const.URL_DIR}-->img/common/_.gif" width="18" height="1" alt=""></td>
</tr>
<tr>
<td colspan="3"><img src="<!--{$smarty.const.URL_DIR}-->img/contents/contents_title_bottom.gif" width="678" height="7" alt=""></td>
</tr>
<tr>
<td colspan="3"><img src="<!--{$smarty.const.URL_DIR}-->img/contents/main_bar.jpg" width="678" height="10" alt=""></td>
</tr>
</table>
<!--登録テーブルここから-->
<table width="678" border="0" cellspacing="1" cellpadding="8" summary=" ">
<tr bgcolor="#ffffff">
<td bgcolor="#ffffff" align="center" valign="top" height="400">
<!--{if $tpl_linemax > 0 }-->
<table border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr>
<td><input type="button" name="regist" value="CSV出力!" onclick="fnCsvModeSubmit('temp_csv');"></td>
<td width="10"></td>
<td>
<select name="wholesale_id">
<option value="" <!--{if $smarty.post.wholesale_id}-->selected="selected" <!--{/if}-->style="<!--{$Errormes|sfGetErrorColor}-->" >選択してください</option>
<!--{section name=cnt loop=$arrWholesale}-->
<option value="<!--{$arrWholesale[cnt].wholesale_id}-->"<!--{if $smarty.post.wholesale_id == $arrWholesale[cnt].wholesale_id}--> selected="selected" <!--{/if}-->><!--{$arrWholesale[cnt].wholesale_name}--></option>
<!--{/section}-->
</select>
</td>
<td><input type="button" name="regist" value="絞込" onclick="fnWholesaleIdModeSubmit('wholesale');"></td>
<td width="10"></td>
<td>
<select name="change_status">
<option value="" selected="selected" style="<!--{$Errormes|sfGetErrorColor}-->" >選択してください</option>
<!--{foreach key=key item=item from=$arrWHOLESALEORDERSTATUS}-->
<!--{if $key ne $SelectedStatus}-->
<option value="<!--{$key}-->" ><!--{$item}--></option>
<!--{/if}-->
<!--{/foreach}-->
</select>
</td>
<td><input type="button" name="regist" value="反映" onclick="fnSelectCheckSubmit('move');"></td>
</tr>
</table>

<table width="650" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr class="fs12"><td align="left"><!--{$tpl_linemax}-->件が該当しました。 </td></tr>
<tr class="fs12">
<td align="center">
<!--▼ページナビ-->
<!--{$tpl_strnavi}-->
<!--▲ページナビ-->
</td>
</tr>
</table>
<table width="650" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr>
<td align="right"><input type="button" name="btn01" value="全て選択" onclick="fnBoxChecked(true);"> <input type="button" name="btn01" value="全て解除" onclick="fnBoxChecked(false);"></td>
</tr>
<tr><td height="10"></td></tr>
</table>
<table width="650" border="0" cellspacing="1" cellpadding="5" summary=" " bgcolor="#cccccc">
<tr bgcolor="#f2f1ec" align="center" class="fs12n">
<td width="60">受注日</td>
<td width="250">商品名</td>
<td width="40">数</td>
<td width="80">問屋</td>
<td width="50">状況</td>
<td width="30">選択</td>
</tr>
<!--{section name=cnt loop=$arrOrder}-->
<!--{assign var=status value="`$arrOrder[cnt].status`"}-->
<tr bgcolor="<!--{$arrWHOLESALEORDERSTATUS_COLOR[$status]}-->" class="fs12">
<td align="center"><!--{$arrOrder[cnt].create_date|sfDispDBDate:false}--></td>
<td align="left"><!--{$arrOrder[cnt].product_name|escape}--></td>
<td align="right"><!--{$arrOrder[cnt].quantity|number_format}--></td>
<td align="left"><!--{$arrOrder[cnt].wholesale_list_name|escape|default:"なし"}--></td>
<td align="center"><!--{$arrWHOLESALEORDERSTATUS[$status]}--></td>
<td align="center"><input type="checkbox" name="move[]" value="<!--{$arrOrder[cnt].wholesale_order_id}-->" ></td>
</tr>
<!--{/section}-->
</table>
<input type="hidden" name="move[]" value="" >
<table width="650" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr><td height="10"></td></tr>
<tr>
<td align="right"><input type="button" name="btn01" value="全て選択" onclick="fnBoxChecked(true);"> <input type="button" name="btn01" value="全て解除" onclick="fnBoxChecked(false);"></td>
</tr>
<tr><td height="10"></td></tr>
</table>
<table width="650" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr class="fs12">
<td align="center">
<!--▼ページナビ-->
<!--{$tpl_strnavi}-->
<!--▲ページナビ-->
</td>
</tr>
</table>

<!--{elseif $arrOrder != "" & $tpl_linemax == 0}-->
<table width="650" border="0" cellspacing="0" cellpadding="0" summary=" ">
<tr class="fs12"><td align="center">該当するデータはありません。</td></tr>
</table>
<!--{/if}-->

</td>
</tr>
</table>

<!--登録テーブルここまで-->

</td>
<td background="<!--{$smarty.const.URL_DIR}-->img/contents/main_right.jpg"><img src="<!--{$smarty.const.URL_DIR}-->img/common/_.gif" width="14" height="1" alt=""></td>
</tr>
<tr>
<td colspan="3"><img src="<!--{$smarty.const.URL_DIR}-->img/contents/main_bottom.jpg" width="706" height="14" alt=""></td>
</tr>
<tr><td height="30"></td></tr>

</table>
</td>
</tr>
<!--メインエリア-->
</table>
</td>
</tr>
</form>
</table>
<!--★★メインコンテンツ★★-->


<script type="text/javascript">
<!--
function fnSelectCheckSubmit(mode){

var selectflag = 0;
var fm = document.form1;

if(fm.change_status.options[document.form1.change_status.selectedIndex].value == ""){
selectflag = 1;
}

if(selectflag == 1){
alert('セレクトボックスが選択されていません');
return false;
}
var i;
var checkflag = 0;
var max = fm["move[]"].length;

if(max) {
for (i=0;i<max;i++){
if(fm["move[]"][i].checked == true){
checkflag = 1;
}
}
} else {
if(fm["move[]"].checked == true) {
checkflag = 1;
}
}

if(checkflag == 0){
alert('チェックボックスが選択されていません');
return false;
}

if(selectflag == 0 && checkflag == 1){
document.form1.mode.value = mode;
document.form1.submit();
}
}

function fnBoxChecked(check){
var count;
var fm = document.form1;
var max = fm["move[]"].length;
for(count=0; count<max; count++){
fm["move[]"][count].checked = check;
}
}

function fnWholesaleIdModeSubmit(mode){
document.form1.mode.value = mode;
document.form1.submit();
}

function fnCsvModeSubmit(mode){

var selectflag = 0;
var fm = document.form1;

var i;
var checkflag = 0;
var max = fm["move[]"].length;

if(max) {
for (i=0;i<max;i++){
if(fm["move[]"][i].checked == true){
checkflag = 1;
}
}
} else {
if(fm["move[]"].checked == true) {
checkflag = 1;
}
}

if(checkflag == 0){
alert('チェックボックスが選択されていません');
return false;
}

document.form1.mode.value = mode;
document.form1.submit();
}

function fnOnloadCsvModeSubmit(){
document.form1.mode.value = 'csv';
document.form1.submit();
}
//-->
</script>

【新規テーブル】
引用:

CREATE TABLE dtb_wholesale
(
wholesale_id serial NOT NULL,
wholesale_name text,
wholesale_code text,
orifax_flg smallint NOT NULL DEFAULT 0,
dropshipping_flg smallint NOT NULL DEFAULT 0,
mail_address text,
mail_name text,
mail_subject text,
mail_body text,
del_flg smallint NOT NULL DEFAULT 0,
create_date timestamp without time zone NOT NULL DEFAULT now()
)
WITH OIDS;
ALTER TABLE dtb_wholesale OWNER TO postgres;

CREATE TABLE dtb_wholesale_order
(
wholesale_order_id serial NOT NULL,
order_id integer NOT NULL,
product_id integer,
wholesale_id integer,
temp_status smallint,
status smallint,
del_flg smallint NOT NULL DEFAULT 0,
memo text,
create_date timestamp without time zone NOT NULL DEFAULT now()
)
WITH OIDS;
ALTER TABLE dtb_wholesale_order OWNER TO postgres;

CREATE TABLE dtb_products_set
(
products_set_id serial NOT NULL,
product_id integer,
set_product_id integer,
set_quantity integer,
set_status smallint NOT NULL DEFAULT 1,
set_classcategory_id smallint NOT NULL DEFAULT 0,
set_product_name text
)
WITH OIDS;
ALTER TABLE dtb_products_set OWNER TO postgres;



テーブルの各列は列名を見ていただければ大体分かると思います。(適当…)
分からなかったら、聞いてみてください。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,843名です
総投稿数は109,985件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.