1. Go to this page and download the library: Download dlds/yii2-ecom library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
dlds / yii2-ecom example snippets
$config = [
'components' => [
'ecom' => [
'class' => 'app\components\MyEcomComponent',
'payment' => [
'class' => 'dlds\ecom\Payment',
'bankReturnRoute' => 'bankret', // use url alias to shorten the return url
'adapterConfig' => \yii\helpers\ArrayHelper::merge(
namespace app\components;
class MyEcomComponent extends \dlds\ecom\Component
{
// override methods here to customize
}
// access the basket from "basket" subcomponent
$basket = \Yii::$app->ecom->basket;
// Product is an AR model implementing BasketProductInterface
$product = Product::find(1);
// add an item to the basket
$basket->add($product);
// add a discount object to the basket. AR model is implementing BasketDiscountInterface
$basket->add(Discount::find(1));
// returns the sum of all basket item prices
$sum = $basket->getTotalDue();
// returns the sum of all 'vat' attributes (or return values of getVat()) from all models in the basket.
$totalVat = $basket->getAttributeTotal('vat');
// clear the basket
$basket->clear();
// render the contents of the basket with default parameters
echo \dlds\ecom\widgets\BasketGridView::widget([
'basket' => $basket,
]);
// get all items from the basket
$items = $basket->getItems();
// get only products
$items = $basket->getItems(Basket::ITEM_PRODUCT);
// loop through basket items
foreach ($items as $item) {
// access any attribute/method from the model
var_dump($item->getAttributes());
// remove an item from the basket by its ID
$basket->remove($item->uniqueId)
}
public function saveFromBasket(Basket $basket)
{
$transaction = $this->getDb()->beginTransaction();
try
{
$this->due_amount = $basket->getTotalDue(false);
if (!$this->save()) {
throw new \RuntimeException('Could not save order model');
}
foreach ($basket->getItems() as $item) {
// create and save "order line" objects looking up necessary attributes from $item
}
$transaction->commit();
}
catch (\Exception $exception)
{
$transaction->rollback();
throw $exception;
}
}
// generate FORM tags for every bank with hidden inputs and bank logos as submit images
\Yii::$app->ecom
->payment
->createWidget($order)
->run();
public function actionBankReturn()
{
// pass in the request data and the name of the class you want to use as order object
$model = \Yii::$app->ecom->payment->handleResponse($_REQUEST, Order::className());
$this->redirect(['order/view', 'orderId' => $model->id]);
}
public function bankReturn(Response $response)
{
$this->status = $response->isSuccessful() ? 'paid' : 'error';
$this->save();
\Yii::$app->log->log('Returned from bank: ' . $response->__toString(), Logger::LEVEL_INFO);
return $this;
}
class MyDiscount implements BasketDiscountInterface
{
public function applyToBasket(Basket $basket, &$basketTotalSum)
{
// subtract a value
$basketTotalSum -= 10;
// or add a X percent discount
$basketTotalSum *= 0.7;
}
}
\Yii::$app->ecom->basket->add(new MyDiscount);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.