==========================================================================
܂ƂߌσW[
Multiple shipping address V2 for osCommerce MS1(Japanese)R5/R6
==========================================================================

̊gW[́ADaniel Kerr񂪍쐬ꂽ
Multiple shipping address V2 x[XɁA{ꉻs܂B
J҂̕XɊӂ܂B

* IWi
  http://www.oscommerce.com/community/contributions,2623

* {ƃtH[
  http://forums.oscommerce.com/index.php?showtopic=120991

Translated by Margy Mutoh for osC MS1(Japanese)R5/R6 (28-Jan-2006)


==========================================================================
Tv
̃I[_[ɑ΂A܂Ƃ߂Ďx邽߂̃W[łBz悲Ƃ
I[_[AꊇĎx邱Ƃ`FbNAEgvZX̒(x
@I)Ŏwł܂B
---------------------------------------
yC[Wz

 : A

I[_[1
z : B@x@ : ܂Ƃߌ
vz : 10000~
@@@@@@ ֌Jz(10000~)

I[_[2
z : C@x@ : ܂Ƃߌ
vz : 20000~
@@@@@@ ֌Jz(10000~+20000~)

I[_[3
z : D@x@ : sU
vz : 10000~
܂Ƃߌϕ : 30000~(I[_[1+2)
xv : 40000~(I[_[1+2+3^A񂪎x)
---------------------------------------

ftHgosCommerceł́Az̈Ⴄ̃I[_[𓯂lꊇĎx
ƂƁA[U(ڋq)́A܂Ƃ߂ĕ|RgɏȂ
΂Ȃ܂łB܂A̔zփMtgz鏤i̃I[_
[ňꊇčwP[Xł́A[U̓RgɏĩZbgeƂ
zLȂ΂Ȃ܂łB
ہÃVbvŋNƂāAۂɂ̓I[_[ĂȂ̂ɂĂ
J[gɓꂽŃZbge̒ɁuwĂȂiv
AzɕsŁA]vȃ[̂Ƃ肪Kv
ȂƁA[UɂƂĂVbvɂƂĂAƃMtgɂĂ͔ώG^
܂킵Ȃ肪łB

̃W[ł́A̔z悲ƂɃI[_[쐬Ax@Ɂu܂
ߌρvI邱ƂŁAYI[_[̍vzIɎ̃I[_[
Jz܂BZI[_[̐ɐ͂Ȃ悤ł̂ŁAł
ZI[_[u܂ƂߌρvōA߂̃I[_[(Ɂu
I[_[vƌĂт܂)Ŏx@w肷΁Aōv̋z\
悤ɂȂĂ܂B(I[_[쐬ꂽ_Łu܂Ƃߌρv[`
͊܂)
Ƃ5̃Mtg𑡂肽ꍇA1-4ڂ܂Łu܂Ƃߌρvw肵A
5ڂŁusUvȂǂw肷ƁA5܂Ƃ߂ĎxƂł܂B

I[_[ɂẮAcheckout_confirmation.phpōZI[_[ꗗ
\AʂɓemFAłɁu܂Ƃߌρvw肵ēꂽ
I[_[̍폜s܂B
ă[ÚAꂽI[_[łŏIIɕsvƎv΍폜łA
zōŏI肵Ăx΂łAVbvu܂Ƃߌ
ρvIꂽI[_[ɂẮAI[_[܂ŏyfB
OĂƂł܂B

==========================================================================
BACKUP!! BACKUP!! BACKUP!! BACKUP!! BACKUP!! BACKUP!! BACKUP!! BACKUP!!

      ݒȗOɕKt@Cƃf[^x[X̃obNAbv!!
      ͎ȐӔCōsĂB

BACKUP!! BACKUP!! BACKUP!! BACKUP!! BACKUP!! BACKUP!! BACKUP!! BACKUP!!
==========================================================================

CXg[

̃W[ŒǉVKt@CA܂ύX̂t@ĆA
ȉ̒ʂłB
ȂAOo[WMultiple shipping Address(http://www.oscommerce.com/community/contributions,2548)
AbvO[hꍇ́AOo[WSɍ폜ĂAV
CXg[ĂB

yVKɒǉt@Cz
/catalog/includes/modules/order_total/ot_multiple_orders.php
/catalog/includes/modules/payments/multiple_orders.php

/catalog/includes/languages/japanese/modules/order_total/ot_multiple_orders.php
/catalog/includes/languages/japanese/modules/payments/multiple_orders.php
/catalog/includes/languages/japanese/images/buttons/small_delete.gif
/catalog/includes/languages/japanese/images/buttons/small_view.gif
(p\sĂꍇ/catalog/includes/languages/english/
4t@CǉĂ)

yύXt@Cz
/catalog/checkout_confirmation.php
/catalog/checkout_process.php
/catalog/includes/functions/general.php

/catalog/includes/languages/japanese.php
(p\sĂꍇ/catalog/includes/languages/english.php
ύXĂ)

/catalog/includes/languages/japanese/checkout_confirmation.php
(p\sĂꍇ/catalog/includes/languages/english/
t@CύXĂ)

yMySqlz
orders e[u1tB[hǉ܂

==========================================================================

STEP 1f[^x[X̕ύX
phpMyAdminȂǂ𗘗pāASQLsĂB

ALTER TABLE `orders` ADD `paid_order` TINYINT( 1 ) DEFAULT '1' NOT NULL;

==========================================================================

STEP 2/catalog/includes/languages/japanese.php

t@C ?> ̒OɁAȉǉ܂B

// multiple orders
define('TEXT_PAID_WITH_PF', 'ԍ [ ');
define('TEXT_PAID_WITH_SF', ' ] ł܂Ƃ߂Č');


(pł̊Ǘʂgpꍇ
/catalog/includes/languages/english.php ֓lɈȉǋL܂)
// multiple orders
define('TEXT_PAID_WITH_PF', 'paid with order no. ');
define('TEXT_PAID_WITH_SF', '');

==========================================================================

STEP 3/catalog/checkout_process.php

̃ubNTA

  $insert_id = tep_db_insert_id();
  for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
    $sql_data_array = array('orders_id' => $insert_id,
                            'title' => $order_totals[$i]['title'],
                            'text' => $order_totals[$i]['text'],
                            'value' => $order_totals[$i]['value'], 
                            'class' => $order_totals[$i]['code'], 
                            'sort_order' => $order_totals[$i]['sort_order']);
    tep_db_perform(TABLE_ORDERS_TOTAL, $sql_data_array);
  }


Ɉȉ8sǉ܂B

// multiple orders
  if ($order->info['payment_method'] == MODULE_PAYMENT_MULTIPLE_ORDERS_TEXT_TITLE){
    tep_db_query("update " . TABLE_ORDERS . " set paid_order = '0' where orders_id = '" . $insert_id . "'");
  } else {
    tep_db_query("update " . TABLE_ORDERS . " set payment_method = '". TEXT_PAID_WITH_PF . " " . $insert_id . TEXT_PAID_WITH_SF . "' where customers_id = '" . $customer_id . "' and paid_order = '0'");
    tep_db_query("update " . TABLE_ORDERS . " set paid_order = '1' where customers_id = '" . $customer_id . "' and paid_order = '0'");
  }	

==========================================================================

STEP 4/catalog/checkout_confirmation.php

4-1ãubNTA

  if (!tep_session_is_registered('comments')) tep_session_register('comments');
  if (tep_not_null($HTTP_POST_VARS['comments'])) {
    $comments = tep_db_prepare_input($HTTP_POST_VARS['comments']);
  }


4-1bɈȉ17sǉ܂B

// multiple orders
  if(tep_not_null($delete)){    
	  //some validation to prevent orders being delete from other customer accounts and already paid orders
		$order_delete_query = tep_db_query("select orders_id from " . TABLE_ORDERS . " where orders_id = '" . (int)$delete . "' and customers_id = '" . (int)$customer_id . "' and paid_order = '0'");
		$order_delete = tep_db_fetch_array($order_delete_query);
  
		$order_query = tep_db_query("select products_id, products_quantity from " . TABLE_ORDERS_PRODUCTS . " where orders_id = '" . (int)$order_delete['orders_id'] . "'");
    while ($order = tep_db_fetch_array($order_query)) {
      tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = products_quantity + " . $order['products_quantity'] . ", products_ordered = products_ordered - " . $order['products_quantity'] . " where products_id = '" . (int)$order['products_id'] . "'");
    }

    tep_db_query("delete from " . TABLE_ORDERS . " where orders_id = '" . (int)$order_delete['orders_id'] . "'");
    tep_db_query("delete from " . TABLE_ORDERS_PRODUCTS . " where orders_id = '" . (int)$order_delete['orders_id'] . "'");
    tep_db_query("delete from " . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . " where orders_id = '" . (int)$order_delete['orders_id'] . "'");
    tep_db_query("delete from " . TABLE_ORDERS_STATUS_HISTORY . " where orders_id = '" . (int)$order_delete['orders_id'] . "'");
    tep_db_query("delete from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . (int)$order_delete['orders_id'] . "'"); 
  }


--------------------------------------------------------------------------

4-2ãubNTA

<?php
  if (is_array($payment_modules->modules)) {
    if ($confirmation = $payment_modules->confirmation()) {
?>


4-2bȉ12sƒu܂B

<?php
// multiple orders
  $orders_total = tep_count_customer_orders();

	if ($orders_total > 0) {
    $history_query_raw = tep_db_query("select o.orders_id, o.date_purchased, o.delivery_name, o.billing_name, ot.text as order_total, s.orders_status_name from " . TABLE_ORDERS . " o, " . TABLE_ORDERS_TOTAL . " ot, " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . (int)$customer_id . "' and paid_order = '0' and o.orders_id = ot.orders_id and ot.class = 'ot_total' and o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' order by orders_id DESC");
    $orders_to_pay = tep_db_num_rows($history_query_raw); 
  }

	if ((is_array($payment_modules->modules))|($orders_to_pay > 0)) {
    if (($confirmation = $payment_modules->confirmation())|(($orders_to_pay > 0))) {
?>

--------------------------------------------------------------------------

4-3ãubNTA

              <tr>
                <td class="main" colspan="4"><?php echo $confirmation['title']; ?></td>
              </tr>


4-3bȉ47sƒu܂B

<?php // multiple orders ?>
              <tr>
                <td class="main" colspan="4"><?php echo $confirmation['title']; ?>
<?php
      if ($orders_to_pay > 0) {
        echo '<p>' . TEXT_REMAINING_ORDERS . '</p>';
        while ($history = tep_db_fetch_array($history_query_raw)) {
          $products_query = tep_db_query("select count(*) as count from " . TABLE_ORDERS_PRODUCTS . " where orders_id = '" . (int)$history['orders_id'] . "'");
          $products = tep_db_fetch_array($products_query);

          if (tep_not_null($history['delivery_name'])) {
            $order_type = TEXT_ORDER_SHIPPED_TO;
            $order_name = $history['delivery_name'];
          } else {
            $order_type = TEXT_ORDER_BILLED_TO;
            $order_name = $history['billing_name'];
          }
?>
          <table border="0" width="100%" cellspacing="0" cellpadding="2">
            <tr>
              <td class="main"><b><?php echo TEXT_ORDER_NUMBER; ?></b> <?php echo $history['orders_id']; ?></td>
              <td class="main" align="right"><b><?php echo TEXT_ORDER_STATUS; ?></b> <?php echo $history['orders_status_name']; ?></td>
            </tr>
          </table>
          <table border="0" width="100%" cellspacing="1" cellpadding="2">
            <tr>
              <td><table border="0" width="100%" cellspacing="2" cellpadding="4">
                <tr>
                  <td class="main" width="50%" valign="top"><b><?php echo TEXT_ORDER_DATE; ?></b> <?php echo tep_date_long($history['date_purchased']); ?><br><b><?php echo $order_type; ?></b> <?php echo tep_output_string_protected($order_name); ?></td>
                  <td class="main" width="30%" valign="top"><b><?php echo TEXT_ORDER_PRODUCTS; ?></b><?php echo $products['count']; ?><br><b><?php echo TEXT_ORDER_COST; ?></b><?php echo strip_tags($history['order_total']); ?></td>
                  <td class="main" width="20%"><a href="<?php echo tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $history['orders_id'], 'SSL'); ?>" target="_blank"><?php echo tep_image_button('small_view.gif', SMALL_IMAGE_BUTTON_VIEW); ?></a></td>
                  <td class="main" width="20%"><?php echo tep_draw_form('delete_order' . $history['orders_id'], $form_action_url, 'post'); ?><?php echo tep_draw_hidden_field('delete', $history['orders_id']); ?><?php echo tep_image_submit('small_delete.gif', SMALL_IMAGE_BUTTON_DELETE); ?></form></td>
                </tr>
              </table></td>
            </tr>
          </table>
          <table border="0" width="100%" cellspacing="0" cellpadding="2">
            <tr>
              <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
            </tr>
          </table>
<?php
	   }
	 } 
?>
              </td>
            </tr>


==========================================================================

STEP 5/catalog/includes/languages/japanese/checkout_confirmation.php

 ?> ̒OɁAȉ9sǉ܂B

define('TEXT_REMAINING_ORDERS', '<b>܂Ƃߌϕ̂ : </b>');
define('TEXT_ORDER_NUMBER', 'ԍ : ');
define('TEXT_ORDER_STATUS', ' : ');
define('TEXT_ORDER_DATE', ' : ');
define('TEXT_ORDER_SHIPPED_TO', '͂ : ');
define('TEXT_ORDER_BILLED_TO', ' : ');
define('TEXT_ORDER_PRODUCTS', 'i_ : ');
define('TEXT_ORDER_COST', 'v() : ');
define('TEXT_VIEW_ORDER', '̒');

(pł̊Ǘʂgpꍇ
/catalog/includes/languages/english/checkout_confirmation.php 
lɈȉǋL܂)

define('TEXT_REMAINING_ORDERS', 'Remaining Orders:');
define('TEXT_ORDER_NUMBER', 'Order Number:');
define('TEXT_ORDER_STATUS', 'Order Status:');
define('TEXT_ORDER_DATE', 'Order Date:');
define('TEXT_ORDER_SHIPPED_TO', 'Shipped To:');
define('TEXT_ORDER_BILLED_TO', 'Billed To:');
define('TEXT_ORDER_PRODUCTS', 'Products:');
define('TEXT_ORDER_COST', 'Order Cost:');
define('TEXT_VIEW_ORDER', 'View Order');


==========================================================================

STEP 6/catalog/includes/functions/general.php

 ?> ̒OɁAȉ22sǉ܂B

  function tep_count_customer_orders($id = '', $check_session = true) {
    global $customer_id;

    if (is_numeric($id) == false) {
      if (tep_session_is_registered('customer_id')) {
        $id = $customer_id;
      } else {
        return 0;
      }
    }

    if ($check_session == true) {
      if ( (tep_session_is_registered('customer_id') == false) || ($id != $customer_id) ) {
        return 0;
      }
    }

    $orders_check_query = tep_db_query("select count(*) as total from " . TABLE_ORDERS . " where customers_id = '" . (int)$id . "'");
    $orders_check = tep_db_fetch_array($orders_check_query);

    return $orders_check['total'];
  }

==========================================================================

STEP 7ݒ

7-1adminǗj[[W[ݒ]-[xW[]
u܂Ƃߌρv on ɐݒ肵܂B

7-2adminǗj[[W[ݒ]-[vW[]
u܂Ƃߌϕv on ɂ܂B񏇂́AułAvOv
ݒ肵܂BftHǵu4vłB(vu1vAu2vAŁu3v̌)
uvv̐񏇂u5v葽ɐݒ肵܂B


ȏŃCXg[Ƃ͏IłB


==========================================================================

STEP 8mF

ycatalogz
EۂɃI[_[Ă݂āA`FbNAEg菇̎x@I
u܂ƂߌρvǉĂ邱ƂmFĂB

Eu܂ƂߌρvɃ`FbNĎ֐iނƁAŏImFʂŁuȍ~
ł܂Ƃ߂Ďxv|̃bZ[W\܂B
ł`FbNAEgƁAʏʂ蒍mF[M
܂B

Eɕʂ̃I[_[VKɍ쐬Ax@IŔCӂ̎x@I
ŏImFʂ֐iނƁǍvZ(order_total)Ɂu܂ƂߌϕvƂ
Jzz\AYI[_[Ɂu܂Ƃߌρvō쐬I[_[̍
vzZ܂BzmFĂB
܂Ay[W̎x@GAɁAZ̃I[_[ꗗ\܂B

yadminz
E[ڋqǗ]-[Ǘ](ʂ̒Ǘʂ܂)ŕ\ux@v
@* I[_[܂̏ꍇ  u܂Ƃߌρv
@* I[_[  uԍ [ XX ] ł܂Ƃ߂Čρv
ƂȂ܂B
@{catalogI[_[ꂽꍇ͉padminł{ŁAtɉp
@catalogI[_[ꂽꍇ͓{adminłpŕ\܂B


==========================================================================

yŌɁz

̃W[́A{AMS2pɍꂽ̂ŁAMS1ɂȂt@NV
(tep_count_customer_orders)܂ނ߁AMS1ł͓삵ȂƂ_ɂȂ
悤łB
MS2̓Yt@NVڐAĂ݂ƂA퓮삪mFł܂
̂ŁAL STEP 6 ɂ̈ڐAǉ܂B

ȂAOo[WMultiple Shipping AddresśAzvZX𗘗pĂ
zw(J[gɑ݂鏤iƂɔzqtX^C)
̂ɑ΂AMultiple shipping address V2͎xvZX𗘗pāAz
悲ƂɊꂽI[_[ꊇĎxX^CƁAuz̕w
vł̍l܂قȂAt@C\Ⴂ܂̂ŁAPɏ
AbvO[h͂ł܂BӂB


ȂÃW[gۂ̖_ƂẮA

Eu܂ƂߌρvIAI[_[Ȃ܂܃I[_[
Ǝvރ[Ûł͂Ȃ?(x@m肷܂ŏȂ
OȂ̂ŁAQ(i߂Ă̂ɎxȂȂ)͂Ȃł傤A
x@̊m肵ȂuI[_[ƁA݌ɐǗ̖(i͂̂
̃[UȂ)ŎxႪo邱Ƃ͍l܂)

Ex@ɑIꂽꍇAꍇɂĂ͑̎舵z𒴂
邱Ƃ?(̏z߂ĂKv)

Eu܂ƂߌρvI[_[쐬ꂽAŏɎx@Iꂽ_
u܂Ƃ߁vĂ܂̂ŁAu܂ƂߌρviśA[
U͒P̃I[_[邱ƂłȂB(AP[Xł傤c)

cȂǂł傤B̓_͊eVbvōHvĂ݂ĂB


AP]܂_ƂẮA

EI[_[҂́u܂ƂߌρvzꍇɁAǂ̃vZX(`
FbNAEgA̓VbsOJ[g?)Łu܂Ƃߌς̌Jz
(xxxxx~)܂vȂǂ̕\oƁAe?

EuJ[gȂ߂ɂ́Au܂ƂߌρvKp̃I[_[̗L
ݒłƕ֗?(ԓɊI[_[쐬Ȃꍇ͎L
ZȂ)

cȂǂl܂ÃAbvO[hs\(ƂZ)
͂܂B炸Bm(_ _)m


ȏAɗĂ܂KłB

Margy Mutoh

==========================================================================
BACKUP!! BACKUP!! BACKUP!! BACKUP!! BACKUP!! BACKUP!! BACKUP!! BACKUP!!

      ݒȗOɕKt@Cƃf[^x[X̃obNAbv!!
      ͎ȐӔCōsĂB

BACKUP!! BACKUP!! BACKUP!! BACKUP!! BACKUP!! BACKUP!! BACKUP!! BACKUP!!
==========================================================================
