retail-cosmos / trx-mall-upload-sales-data-api
This is a Laravel package providing the functionality to upload sales data to the TRX mall via APIs
Fund package maintenance!
Retail-Cosmos
Installs: 6 896
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 1
Open Issues: 0
Requires
- php: ^8.3
- guzzlehttp/guzzle: ^7.8
- illuminate/contracts: ^11.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- larastan/larastan: ^2.0.1
- laravel/pint: ^1.0
- nunomaduro/collision: ^8.1
- orchestra/testbench: ^9.5
- pestphp/pest: ^2.20
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
README
The TRX Mall Upload Sales Data API is a Laravel package to upload sales data to TRX Mall via API.
Installation
- Install the package via composer:
composer require retail-cosmos/trx-mall-upload-sales-data-api
- Publish the config file:
php artisan vendor:publish --tag="trx-mall-upload-sales-data-api-config"
- Read the config file options and set
.env
variables accordingly.
Usage
- You need to add code in your Laravel app to share the sales data with the package. A service class needs to be added for the same. We provide an option to generate the class with a single command:
php artisan vendor:publish --tag="trx-mall-upload-sales-data-api-service"
-
A new class is added at
app/Services/TrxMallUploadSalesDataApiService.php
. It contains a couple of methods to return the stores and sales data as per the requirements. You may make those methods dynamic by changing the code. You may check this stub file anytime for future reference. -
Add a scheduler in your Laravel project to call the command
trx:send-sales
daily at midnight. It sends the sales for the previous day for each store as returned from the application.
$schedule->command('trx:send-sales')->daily();
Notes
- The sales command sends the sales for the previous day for each store by default. If you wish to send sales for a specific date/store, you may pass the following options to the command:
--date
- Date in the Y-m-d (2024-12-31) format to send sales for a specific date.--store_identifier
- To send a sales for a specific store only. check the stub file for the store identifier.
Example:
php artisan trx:send-sales --date=2024-11-31 --store_identifier=store1
- If you have set respective .env variables, this package sends notification emails after successful/failed attempt to send sales data to TRX. If you want to customize the notification email, you can publish the view by running the following command:
php artisan vendor:publish --tag="trx-mall-upload-sales-data-api-view"
- The package calculates 'Batch ID' for the sales data based on the
TRX_MALL_DATE_OF_FIRST_SALES_UPLOAD
in the.env
file. It finds the difference between the date specified forTRX_MALL_DATE_OF_FIRST_SALES_UPLOAD
and the date for which you are attempting to send the sales data and adds one(1) to it. For example, if theTRX_MALL_DATE_OF_FIRST_SALES_UPLOAD
is set to2024-01-10
and you are attempting to send the sales data for2024-01-20
then the batch ID will be '11'.
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.