1. Go to this page and download the library: Download offline/oc-microcart-plugin 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/ */
offline / oc-microcart-plugin example snippets
public function registerNavigation()
{
return [
'main-menu-item' => [
'label' => 'Your Plugin', // Your label
'url' => \Backend::url('offline/microcart/carts'),
'iconSvg' => 'plugins/offline/microcart/assets/icon.svg',
],
];
}
public function registerComponents()
{
return [
\YourVendor\YourPlugin\Components\Cart::class => 'cart',
];
}
namespace YourVendor\YourPlugin\Components;
use OFFLINE\MicroCart\Models\CartItem;
use OFFLINE\MicroCart\Classes\Payments\PaymentRedirector;
class Cart extends \OFFLINE\MicroCart\Components\Cart
{
public function onRun()
{
// An off-site payment has been completed. Important, this code
// needs to be present if you are using PayPal or Six.
if ($type = request()->input('return')) {
return (new PaymentRedirector($this->page->page->fileName))->handleOffSiteReturn($type);
}
// Do something.
}
public function onAdd()
{
$item = new CartItem();
$item->name = 'Your product';
$item->quantity = random_int(1, 4);
$item->price = 100.00;
$this->cart->add($item);
return $this->refreshCart();
}
}
namespace YourVendor\YourPlugin\Classes;
use OFFLINE\MicroCart\Classes\Payments\PaymentProvider;
class YourCustomProvider extends PaymentProvider
{
// Implement all abstract methods.
}
use OFFLINE\MicroCart\Classes\Payments\PaymentGateway;
class Plugin extends PluginBase
{
public function registerPaymentProviders()
{
return [
new YourCustomProvider(),
];
}
}
// Voucher is the thing we are selling (the CartItem)
class Voucher extends Model
{
public $belongsTo = [
'cartitem' => CartItem::class
];
}
// This cart will be unique to the current user.
$cart = Cart::fromSession();
$item = new CartItem();
$item->name = 'An item'; // The only
$item = new CartItem(['name' => 'Shipping fee', 'kind' => CartItem::KIND_SERVICE]);
// A code property is t. If it's not, it will be added.
$cart->ensure($item);
// A second call will not add the item again.
$cart->ensure($item);
// You can force a new quantity by passing a second parameter.
$cart->ensure($item, 4);
$item = new CartItem(['name' => 'An item']);
// You can remove an item by passing in a CartItem object or an id.
$cart->remove($item);
$cart->remove($item->id);
$item = new CartItem(['name' => 'Shipping fee', 'code' => 'shipping', 'kind' => CartItem::KIND_SERVICE]);
// Removes all items with a given code (reverse of the `ensure` method).
$cart->removeByCode('shipping');
$item = new CartItem(['name' => 'An item']);
// You can set the quantity by passing in a CartItem object or an id.
$cart->setQuantity($item, 4);
$cart->setQuantity($item->id, 4);
$item = new CartItem(['name' => 'Shipping fee', 'kind' => CartItem::KIND_SERVICE, 'price' => 10]);
// The code is ::KIND_DISCOUNT, 'price' => -100]);
$item->code = 'discount';
$cart->ensure($item);
$cart->getShippingAddressArray();
// ['Company', 'Firstname Lastname', ...];
$cart->getBillingAddressHtml();
// Company<br />
// Firstname Lastname<br />
// Street 123<br />
// ZIP City
$cart->getBillingAddressHtmlZipReversed();
// Company<br />
// Firstname Lastname<br />
// Street 123<br />
// City ZIP
// Short format
$item = new CartItem(['name' => 'An item']);
// Or long format
$item = new CartItem();
$item->name = 'An item';
$item->description = 'The description to this item';
$item->price = 20.00; // Includes tax by default.
$item->quantity = 10;
$item->meta = [
'any' => 'additional',
'data' => true,
];
// $item->tax_id = 2; // If not specified the default tax will be used.
// $item->tax_free = true; // Don't add taxes to this item, not even the default tax.
// $item->is_before_tax = true; // The specified price does not
// Create an example item
$item = new CartItem(['name' => 'An item']);
$item->price = 10.00;
$item->quantity = 2;
$item->tax_id = 1; // 10% tax
// Access the item's information
$item->price; // 10.00
$item->quantity; // 2
$item->subtotal; // 20.00 => price * quantity
$item->tax_amount; // 2.00 => 10 % on price
$item->total; // 22.00 => (price * quantity) + tax_amount
Money::instance()->format(12000); // 120.00 USD
// or in Twig
{{ 120000 | microcart_money }} // 120.00 USD
public function register()
{
\Event::listen('offline.microcart.moneyformatter', function () {
return function ($cents): string {
return 'Your custom implementation to format: ' . $cents;
};
});
}