marciocamello/yii2-mcms-cart

Yii2 购物车扩展

dev-master 2014-04-19 13:20 UTC

This package is not auto-updated.

Last update: 2024-09-18 04:25:16 UTC


README

从 Codeginiter 购物车类 v3.0dev 重构的 Yii 2 购物车扩展库

安装

安装此扩展的首选方式是通过 Composer

运行以下命令之一

php composer.phar require --prefer-dist marciocamello/yii2-mcms-cart "*"

或者将以下内容添加到您的 composer.json 文件的 require 部分。

"marciocamello/yii2-mcms-cart": "*"

使用方法

将项目添加到购物车

use mcms\cart\Cart;

$cart = new Cart();

$data = array(
	'id'      => 'sku_123ABC',
	'qty'     => 1,
	'price'   => 39.95,
	'name'    => 'T-Shirt',
	'options' => array('Size' => 'L', 'Color' => 'Red')
);

$cart->insert($data);

将多个项目添加到购物车

use mcms\cart\Cart;

$cart = new Cart();

$data = array(
               array(
                       'id'      => 'sku_123ABC',
                       'qty'     => 1,
                       'price'   => 39.95,
                       'name'    => 'T-Shirt',
                       'options' => array('Size' => 'L', 'Color' => 'Red')
                    ),
               array(
                       'id'      => 'sku_567ZYX',
                       'qty'     => 1,
                       'price'   => 9.95,
                       'name'    => 'Coffee Mug'
                    ),
               array(
                       'id'      => 'sku_965QRS',
                       'qty'     => 1,
                       'price'   => 29.95,
                       'name'    => 'Shot Glass'
                    )
            );

$cart->insert($data);

显示购物车

use yii\helpers\Html;
use yii\widgets\ActiveForm;
use mcms\cart\Cart;

$cart = new Cart();

if($_POST)
{
	$cart->update($_POST);
	Yii::$app->controller->refresh();
}
<?php $form = ActiveForm::begin([
	'id' => 'cart-form',
	'options' => ['class' => 'form-horizontal'],
]) ?>

<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 $i = 1; ?>

	<?php foreach ($cart->contents() as $items): ?>

		<?php echo Html::hiddenInput($i.'[rowid]', $items['rowid']) ?>

		<tr>
			<td><?php echo Html::textInput($i.'[qty]', $items['qty'], ['maxlength' => '3', 'size' => '5']); ?></td>
			<td>
				<?php echo $items['name']; ?>

				<?php if ($cart->has_options($items['rowid']) == TRUE): ?>

					<p>
						<?php foreach ($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 $cart->format_number($items['price']); ?></td>
			<td style="text-align:right">$<?php echo $cart->format_number($items['subtotal']); ?></td>
		</tr>

		<?php $i++; ?>

	<?php endforeach; ?>

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

</table>

<div class="form-group">
	<div style="float: right;">
		<?= Html::submitButton('Update your Cart', ['class' => 'btn btn-primary']) ?>
	</div>
</div>

<?php  ActiveForm::end() ?>