diff --git a/Controller/Checkout/Invoice.php b/Controller/Checkout/Invoice.php
index 4cb2771..9aed426 100644
--- a/Controller/Checkout/Invoice.php
+++ b/Controller/Checkout/Invoice.php
@@ -95,9 +95,9 @@ private function getApiRequestData(Order $order)
'price' => $orderItem->getPrice(),
'type' => 'PRODUCT',
'url' => $product->getProductUrl() ?: 'https://xendit.co/',
- 'quantity' => (int)$orderItem->getQtyOrdered()
+ 'quantity' => (int) $orderItem->getQtyOrdered()
];
- $items[] = (object)$item;
+ $items[] = (object) $item;
}
$amount = $order->getTotalDue();
@@ -141,7 +141,10 @@ private function createInvoice($requestData)
$invoice = '';
try {
- $this->getLogger()->info('createInvoice start', ['data' => $requestData]);
+ $this->getLogger()->info('createInvoice start', [
+ 'invoiceUrl' => $invoiceUrl,
+ 'data' => $requestData
+ ]);
$invoice = $this->getApiHelper()->request(
$invoiceUrl,
diff --git a/DEV.md b/DEV.md
index a89201f..844eb64 100644
--- a/DEV.md
+++ b/DEV.md
@@ -81,6 +81,7 @@
3. Go to `Xendit` and input the public and private key
3. Setup custom callback url to receive payment notification
1. Modify `magento2/etc/env.php` to `'MAGE_MODE' => 'developer'` instead of `default`
+ 1. Another way is to run `php bin/magento deploy:mode:set developer`
2. Install a tunneling tool like [ngrok](https://ngrok.com/): `brew install ngrok`
3. Start ngrok to tunnel your local Magento: `ngrok http https://magento24.local`
4. Copy the HTTPS ngrok URL (e.g., `https://abc123.ngrok.io`)
@@ -101,6 +102,20 @@
## TroubleShoot
+### Error during setup default website
+```
+In WebsiteRepository.php line 159:
+
+ The default website isn't defined. Set the web
+ site and try again.
+```
+- this probably happens if u recreate the docker container
+
+#### Fix
+- delete all cache and env generated by previous setup
+```
+docker exec web bash -c "cd app && rm -rf app/etc/env.php app/etc/config.php var/cache/* var/page_cache/* var/session/* var/di/* var/generation/* var/view_preprocessed/* pub/static/* generated/*"
+```
## Appendix
diff --git a/Helper/ApiRequest.php b/Helper/ApiRequest.php
index d9fd314..3f4ae98 100644
--- a/Helper/ApiRequest.php
+++ b/Helper/ApiRequest.php
@@ -74,6 +74,13 @@ public function request(
$customHeaders = []
) {
try {
+ // Log request details
+ $this->xenditLogger->info('API Request', [
+ 'url' => $url,
+ 'method' => $method,
+ 'request_body' => $requestData ? json_encode($requestData) : null
+ ]);
+
$headers = $this->getHeaders($isPublicRequest, $preferredMethod, $customHeaders);
$this->magentoCurl->setHeaders($headers);
$this->magentoCurl->setTimeout(30);
@@ -92,7 +99,15 @@ public function request(
);
}
- return json_decode($this->magentoCurl->getBody(), true);
+ $response = json_decode($this->magentoCurl->getBody(), true);
+
+ // Log response details
+ $this->xenditLogger->info('API Response', [
+ 'url' => $url,
+ 'status_code' => $this->magentoCurl->getStatus()
+ ]);
+
+ return $response;
} catch (\Exception $e) {
throw new \Magento\Framework\Exception\LocalizedException(
new Phrase($e->getMessage())
diff --git a/Helper/Data.php b/Helper/Data.php
index 8742e96..f2a6921 100644
--- a/Helper/Data.php
+++ b/Helper/Data.php
@@ -9,6 +9,7 @@
use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Framework\App\Helper\AbstractHelper;
use Magento\Framework\App\Helper\Context;
+use Magento\Framework\App\State as AppState;
use Magento\Framework\DB\Transaction as DbTransaction;
use Magento\Framework\Exception\NoSuchEntityException;
use Magento\Framework\Filesystem\Driver\File;
@@ -77,6 +78,11 @@ class Data extends AbstractHelper
*/
private $dateTimeFactory;
+ /**
+ * @var AppState
+ */
+ private $appState;
+
/**
* @var ScopeConfigInterface
*/
@@ -150,7 +156,8 @@ public function __construct(
OrderNotifier $orderNotifier,
AssetRepository $assetRepository,
CategoryRepository $categoryRepository,
- \Xendit\M2Invoice\Helper\PhoneNumberFormat $phoneNumberFormatHelper
+ \Xendit\M2Invoice\Helper\PhoneNumberFormat $phoneNumberFormatHelper,
+ AppState $appState
) {
$this->storeManager = $storeManager;
$this->xendit = $xendit;
@@ -168,6 +175,7 @@ public function __construct(
$this->assetRepository = $assetRepository;
$this->categoryRepository = $categoryRepository;
$this->phoneNumberFormatHelper = $phoneNumberFormatHelper;
+ $this->appState = $appState;
parent::__construct($context);
}
diff --git a/docker-magento/docker-compose.yml b/docker-magento/docker-compose.yml
index e09447b..b365372 100644
--- a/docker-magento/docker-compose.yml
+++ b/docker-magento/docker-compose.yml
@@ -32,8 +32,6 @@ services:
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=magento
- volumes:
- - db-data:/var/lib/mysql
phpmyadmin:
container_name: phpmyadmin
restart: always
diff --git a/etc/adminhtml/system.xml b/etc/adminhtml/system.xml
index 0fbb058..c9235d0 100644
--- a/etc/adminhtml/system.xml
+++ b/etc/adminhtml/system.xml
@@ -131,6 +131,14 @@
Xendit\M2Invoice\Block\Adminhtml\System\Config\DeveloperModeField
+
+
+
+
+
+ Xendit\M2Invoice\Block\Adminhtml\System\Config\DeveloperModeField
+