Toto Prayogo

Toto Prayogo

Update Batch Cart

Pada Codeigniter 3.2.0 mendatang akan dihapus Cart Library dan Smiley Helper terkait kabar sedih yang dirilis pada Forum Resmi Codeigniter. Sedangkan saya sendiri sedang gemar menggunakan salah satunya, yakni Cart Library utnuk membangun web Toko Online atau sering disebut web e-commerce. Tapi untung saja kita masih dapat emnggunakannya. dan pihak BCIT sebagai pengembang Codeigniter menyajikannya dalam repositorynya utnuk dikembangkan secara independen.

Untuk Smiley Helper dapat difork disini. Sedangkan Cart Librarynya disini

Oops, cukup sekian intermezonya, berikut adalah cara untuk update cart secara masal. Contoh ini diambil dari dokumentasi Codeigniter yang pernah ada.

View

Sebagai asumsi nya, untuk view cart menampilkan daftar keranjang seperti kode berikut :

<?php echo form_open('cart/update'); ?>
<table cellpadding="6" cellspacing="1" style="width:100%" border="0">
 <tr>
        <th>QTY</th>
        <th>Item Description</th>
        <th style="text-align:right">Item Price</th>
        <th style="text-align:right">Sub-Total</th>
 </tr>

 <?php foreach ($this->cart->contents() as $items): ?>
        <?php echo form_hidden('rowid[]', $items['rowid']); ?>
        <tr>
         <td><?php echo form_input(array('name' => 'qty[]', 'value' => $items['qty'], 'maxlength' => '3', 'size' => '5')); ?></td>
         <td>
          <?php echo $items['name']; ?>
          <?php if ($this->cart->has_options($items['rowid']) == TRUE): ?>
           <p>
            <?php foreach ($this->cart->product_options($items['rowid']) as $option_name => $option_value): ?>
             <strong><?php echo $option_name; ?>:</strong> <?php echo $option_value; ?><br />
            <?php endforeach; ?>
           </p>
          <?php endif; ?>
         </td>
         <td style="text-align:right"><?php echo $this->cart->format_number($items['price']); ?></td>
         <td style="text-align:right">$<?php echo $this->cart->format_number($items['subtotal']); ?></td>
        </tr>

    <?php endforeach; ?>

    <tr>
     <td colspan="2"> </td>
     <td class="right"><strong>Total</strong></td>
     <td class="right">$<?php echo $this->cart->format_number($this->cart->total()); ?></td>
    </tr>

</table>

<p><?php echo form_submit('', 'Update your Cart'); ?></p>

Controller

Untuk asumsi file pada controller dengan nama Cart.php dan function update

public function update() {

 $rowid = $this->input->post('rowid[]');
 $qty = $this->input->post('qty[]');

 $data = array();
 for ($i = 0; $i < count($rowid); $i++) { 

  $data[] = array(
   'rowid' => $rowid[$i],
   'qty'   => $qty[$i]
  );
 }

 $this->cart->update($data);

 redirect('cart');
}

No comments:

Post a Comment