Initial commit: Vendor Sales Report Magento 2 module

This commit is contained in:
shopkeeperdev
2025-11-03 17:20:07 -05:00
commit fc2838d68a
25 changed files with 1839 additions and 0 deletions

12
etc/adminhtml/menu.xml Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Backend:etc/menu.xsd">
<menu>
<add id="Shopkeeper_VendorSalesReport::report"
title="Vendor Sales Report"
module="Shopkeeper_VendorSalesReport"
sortOrder="999"
parent="Magento_Reports::report_salesroot"
action="vendorsalesreport/report/index"
resource="Shopkeeper_VendorSalesReport::report"/>
</menu>
</config>

8
etc/adminhtml/routes.xml Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="admin">
<route id="vendorsalesreport" frontName="vendorsalesreport">
<module name="Shopkeeper_VendorSalesReport"/>
</route>
</router>
</config>

55
etc/adminhtml/system.xml Normal file
View File

@@ -0,0 +1,55 @@
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
<system>
<tab id="shopkeeper" translate="label" sortOrder="300">
<label>Shopkeeper</label>
</tab>
<section id="vendorsalesreport" translate="label" type="text" sortOrder="100" showInDefault="1" showInWebsite="0" showInStore="0">
<label>Vendor Sales Report</label>
<tab>shopkeeper</tab>
<resource>Shopkeeper_VendorSalesReport::config</resource>
<group id="general" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="0" showInStore="0">
<label>General Settings</label>
<field id="enabled" translate="label comment" type="select" sortOrder="10" showInDefault="1" showInWebsite="0" showInStore="0">
<label>Enable Automated Monthly Report</label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
<comment>When enabled, report will be generated automatically on the 1st of each month</comment>
</field>
<field id="order_status" translate="label comment" type="multiselect" sortOrder="20" showInDefault="1" showInWebsite="0" showInStore="0">
<label>Order Status Filter</label>
<source_model>Magento\Sales\Model\Config\Source\Order\Status</source_model>
<comment>Select which order statuses to include in the report</comment>
</field>
</group>
<group id="email" translate="label" type="text" sortOrder="20" showInDefault="1" showInWebsite="0" showInStore="0">
<label>Email Settings</label>
<field id="enabled" translate="label comment" type="select" sortOrder="10" showInDefault="1" showInWebsite="0" showInStore="0">
<label>Enable Email</label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
<comment>Send automated report via email</comment>
</field>
<field id="recipients" translate="label comment" type="text" sortOrder="20" showInDefault="1" showInWebsite="0" showInStore="0">
<label>Email Recipients</label>
<comment>Comma-separated email addresses (e.g., vendor@example.com, admin@example.com)</comment>
<depends>
<field id="enabled">1</field>
</depends>
</field>
<field id="subject" translate="label comment" type="text" sortOrder="30" showInDefault="1" showInWebsite="0" showInStore="0">
<label>Email Subject</label>
<comment>Subject line for automated report emails. Use {{month}} and {{year}} for dynamic values.</comment>
<depends>
<field id="enabled">1</field>
</depends>
</field>
<field id="sender" translate="label" type="select" sortOrder="40" showInDefault="1" showInWebsite="0" showInStore="0">
<label>Email Sender</label>
<source_model>Magento\Config\Model\Config\Source\Email\Identity</source_model>
<depends>
<field id="enabled">1</field>
</depends>
</field>
</group>
</section>
</system>
</config>