Skip to content

Commit 9394dc5

Browse files
authored
Merge pull request #5 from aplazame/cart-widget
Cart widget
2 parents 7185402 + 1745142 commit 9394dc5

File tree

9 files changed

+88
-0
lines changed

9 files changed

+88
-0
lines changed

src/Gateway/Config/Config.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,14 @@ public function getPublicApiKey()
6161
return $this->getValue('public_api_key');
6262
}
6363

64+
/**
65+
* @return bool
66+
*/
67+
public function getCartWidgetIsEnabled()
68+
{
69+
return (bool) $this->getValue('cart_widget_enabled');
70+
}
71+
6472
/**
6573
* @return string
6674
*/

src/Model/Config/Backend/Links.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
namespace Aplazame\Payment\Model\Config\Backend;
4+
5+
class Links extends \Magento\Framework\App\Config\Value
6+
{
7+
public function afterSave()
8+
{
9+
if ($this->isValueChanged()) {
10+
$this->cacheTypeList->cleanType(\Magento\PageCache\Model\Cache\Type::TYPE_IDENTIFIER);
11+
}
12+
13+
return parent::afterSave();
14+
}
15+
}

src/Model/Ui/ConfigProvider.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public function getConfig()
3737
'payment' => [
3838
Aplazame::PAYMENT_METHOD_CODE => [
3939
'button' => $this->getButtonConfig($this->quote),
40+
'cart_widget_enabled' => $this->config->getCartWidgetIsEnabled(),
4041
'checkout' => $this->getCheckoutConfig($this->quote),
4142
],
4243
],

src/etc/adminhtml/system.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,17 @@
2525
<validate>required-entry</validate>
2626
</field>
2727

28+
<field id="product_widget_enabled" translate="label" type="select" sortOrder="35" showInDefault="1" showInWebsite="1" showInStore="0">
29+
<label>Show widget on product page</label>
30+
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
31+
<backend_model>Aplazame\Payment\Model\Config\Backend\Links</backend_model>
32+
</field>
33+
34+
<field id="cart_widget_enabled" translate="label" type="select" sortOrder="39" showInDefault="1" showInWebsite="1" showInStore="0">
35+
<label>Show widget on cart page</label>
36+
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
37+
</field>
38+
2839
<field id="payment_button" translate="label" type="text" sortOrder="40" showInDefault="1" showInWebsite="1" showInStore="0" canRestore="1">
2940
<label>Aplazame Button CSS Selector</label>
3041
<validate>required-entry</validate>

src/etc/config.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
<model>Aplazame\Payment\Model\Aplazame</model>
88
<payment_action>authorize</payment_action>
99
<title>Aplazame</title>
10+
<product_widget_enabled>1</product_widget_enabled>
11+
<cart_widget_enabled>1</cart_widget_enabled>
1012
<payment_button>#aplazame-payment-method</payment_button>
1113
<allowspecific>0</allowspecific>
1214
</aplazame_payment>

src/view/frontend/layout/catalog_product_view.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
<block class="Aplazame\Payment\Block\Product\View\Widget"
66
name="product.view.widget"
77
template="Aplazame_Payment::product/view/widget.phtml"
8+
ifconfig="payment/aplazame_payment/product_widget_enabled"
89
after="-">
910
</block>
1011
</referenceBlock>

src/view/frontend/layout/checkout_index_index.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,22 @@
3333
</item>
3434
</item>
3535
</item>
36+
37+
<item name="sidebar" xsi:type="array">
38+
<item name="children" xsi:type="array">
39+
<item name="summary" xsi:type="array">
40+
<item name="children" xsi:type="array">
41+
<item name="aplazame.widget" xsi:type="array">
42+
<item name="sortOrder" xsi:type="string">1</item>
43+
<item name="component" xsi:type="string">Aplazame_Payment/js/view/summary/totals</item>
44+
<item name="config" xsi:type="array">
45+
<item name="template" xsi:type="string">Aplazame_Payment/summary/totals</item>
46+
</item>
47+
</item>
48+
</item>
49+
</item>
50+
</item>
51+
</item>
3652
</item>
3753
</item>
3854
</item>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
define([
2+
'ko',
3+
'uiComponent',
4+
'Magento_Checkout/js/model/quote'
5+
], function (ko, Component, Quote) {
6+
'use strict';
7+
8+
var config = window.checkoutConfig.payment.aplazame_payment;
9+
10+
return Component.extend({
11+
cartWidgetIsEnabled: config.cart_widget_enabled,
12+
13+
getAmount: function () {
14+
return Quote.totals().base_grand_total;
15+
},
16+
17+
getCurrency: function () {
18+
return Quote.totals().quote_currency_code;
19+
},
20+
21+
toAplazameDecimal: function (number) {
22+
return parseInt(number * 100)
23+
},
24+
});
25+
});
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<div
2+
data-aplazame-simulator=""
3+
data-view="cart"
4+
data-bind="attr: {
5+
'if': cartWidgetIsEnabled,
6+
'data-amount': toAplazameDecimal(getAmount()),
7+
'data-currency': getCurrency()
8+
}"
9+
></div>

0 commit comments

Comments
 (0)