Manifest Reference
manifest.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2
<manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/shopware/platform/trunk/src/Core/Framework/App/Manifest/Schema/manifest-1.0.xsd">
3
<meta>
4
<!-- This is the element for the technical name of your app and must equal the name of the folder your app is contained in -->
5
<name>MyExampleApp</name>
6
<!-- In this element, you can set a label for your app. To include translations use the `lang` attribute -->
7
<label>Label</label>
8
<label lang="de-DE">Name</label>
9
<!-- Translatable, a description of your app -->
10
<description>A description</description>
11
<description lang="de-DE">Eine Beschreibung</description>
12
​
13
<author>Your Company Ltd.</author>
14
<copyright>(c) by Your Company Ltd.</copyright>
15
<version>1.0.0</version>
16
<license>MIT</license>
17
<!-- Optional, you can set the path to an icon that should be shown for your app, the icon needs to a `png` file -->
18
<icon>icon.png</icon>
19
<!-- Optional, in this element you can link to your privacy policy -->
20
<privacy>https://your-company.com/privacy</privacy>
21
<!-- Optional, Translatable, in this element you can describe the changes the shop owner needs to apply to his shops privacy policy, e.g. because you process personal information on an external server -->
22
<privacyPolicyExtensions>
23
This app processes following personal information on servers based in the U.S.:
24
- Address information
25
- Order positions
26
- Order value
27
</privacyPolicyExtensions>
28
<privacyPolicyExtensions lang="de-DE">
29
Diese App verarbeitet folgende personenbezogene Daten auf Servern in den USA:
30
- Adress-Informationen
31
- Bestellpositionen
32
- Bestellsumme
33
</privacyPolicyExtensions>
34
</meta>
35
<!-- Optional, can be omitted if no communication between Shopware and your app is needed -->
36
<setup>
37
<!-- The URL which will be used for the registration -->
38
<registrationUrl>https://my.example.com/registration</registrationUrl>
39
<!-- Dev only, the secret that is used to sign the registration request -->
40
<secret>mysecret</secret>
41
</setup>
42
<!-- Optional, can be omitted if your shop does not need permissions -->
43
<permissions>
44
<!-- request each permission your app needs -->
45
<read>product</read>
46
<create>product</create>
47
<update>product</update>
48
​
49
<delete>order</delete>
50
</permissions>
51
<!-- Optional -->
52
<webhooks>
53
<!-- register webhooks you want to receive, keep in mind that the name needs to be unique -->
54
<webhook name="product-changed" url="https://example.com/event/product-changed" event="product.written"/>
55
</webhooks>
56
<!-- Optional, can be omitted if the administration should not be extended -->
57
<admin>
58
<!-- Register a custom module that is used as a parent menu entry for other modules -->
59
<module name="myAdminModules"
60
parent="sw-marketing"
61
position="50"
62
>
63
<label>My modules</label>
64
<label lang="de-DE">Meine Module</label>
65
</module>
66
<!-- Register a custom module (iframe), that should be loaded from the given surce -->
67
<module name="exampleModule"
68
source="https://example.com/promotion/view/promotion-module"
69
parent="app-MyExampleApp-myAdminModules"
70
>
71
<label>Example Module</label>
72
<label lang="de-DE">Beispiel Modul</label>
73
</module>
74
<!-- Register a module that is opened from the app store and your list of installed apps -->
75
<main-module source="https://example.com/main-module"/>
76
<!-- Register action buttons that should be displayed in the detail and listing pages of the administration -->
77
<!-- view is one of: "list", "detail" -->
78
<action-button action="setPromotion" entity="promotion" view="detail" url="https://example.com/promotion/set-promotion">
79
<label>set Promotion</label>
80
</action-button>
81
<action-button action="deletePromotion" entity="promotion" view="detail" url="https://example.com/promotion/delete-promotion">
82
<label>delete Promotion</label>
83
</action-button>
84
<action-button action="restockProduct" entity="product" view="list" url="https://example.com/restock">
85
<label>restock</label>
86
</action-button>
87
</admin>
88
<!-- Optional -->
89
<custom-fields>
90
<!-- register each custom field set you may want to add -->
91
<custom-field-set>
92
<!-- the technical name of the custom field set, needs to be unique, therefor use your vendor prefix -->
93
<name>swag_example_set</name>
94
<!-- Translatable, the label of the field set -->
95
<label>Example Set</label>
96
<label lang="de-DE">Beispiel-Set</label>
97
<!-- define the entities to which your field set should be assigned -->
98
<related-entities>
99
<order/>
100
</related-entities>
101
<!-- define the fields in your set -->
102
<fields>
103
<!-- the element type, defines the type of the field -->
104
<!-- the name needs to be unique, therefore use your vendor prefix -->
105
<text name="swag_code">
106
<!-- Translatable, the label of the field -->
107
<label>Example field</label>
108
<!-- Optional, Default = 1, order your fields by specifying the position -->
109
<position>1</position>
110
<!-- Optional, Default = false, mark a field as required -->
111
<required>false</required>
112
<!-- Optional, Translatable, the help text for the field -->
113
<help-text>Example field</help-text>
114
</text>
115
<float name="swag_test_float_field">
116
<label>Test float field</label>
117
<label lang="de-DE">Test-Kommazahlenfeld</label>
118
<help-text>This is an float field.</help-text>
119
<position>2</position>
120
<!-- some elements allow more configuration, like placeholder, main and max values etc. -->
121
<!-- Your IDE should give you pretty good autocompletion support to explore the configuration for a given type -->
122
<placeholder>Enter an float...</placeholder>
123
<min>0.5</min>
124
<max>1.6</max>
125
<steps>0.2</steps>
126
</float>
127
</fields>
128
</custom-field-set>
129
</custom-fields>
130
<payments>
131
<payment-method>
132
<!-- The identifier of the payment method (and the app name) should not change. Otherwise a separate method is created. -->
133
<identifier>myAsynchronousPayment</identifier>
134
<!-- Translatable, a name of your payment method -->
135
<name>Asynchronous payment</name>
136
<name lang="de-DE">Asynchrone Zahlung</name>
137
<!-- Optional, Translatable, a description of your payment method -->
138
<description>This payment method requires forwarding to payment provider.</description>
139
<description lang="de-DE">Diese Zahlungsmethode erfordert eine Weiterleitung zu einem Zahlungsanbieter.</description>
140
<!-- Optional for synchronous payments, required for asynchronous payments. -->
141
<pay-url>https://payment.app/async/pay</pay-url>
142
<!-- Optional, without the payment method becomes synchronous. -->
143
<finalize-url>https://payment.app/async/finalize</finalize-url>
144
<!-- Optional, you can set the path relative to the manifest.xml to an icon that should be shown for your payment app -->
145
<icon>Resources/paymentLogo.png</icon>
146
</payment-method>
147
</payments>
148
</manifest>
Copied!
Last modified 3mo ago
Copy link