The situation
Buyback requests used to arrive by email: "I still have a camera, what will you pay?" No model, no condition, no picture. Tom asked for photos, the shutter count and the accessories, and days went by before an offer.
Tom sells new and used cameras. Whoever wants to sell their old one, or trade it in when buying a new one, first sends him a request with photos, and the form already knows which model it is.
Buyback requests used to arrive by email: "I still have a camera, what will you pay?" No model, no condition, no picture. Tom asked for photos, the shutter count and the accessories, and days went by before an offer.
Shopware's contact form takes no photos and does not know which model is meant. And a condition written as free text cannot be compared with any other.
The model is not in the form: it comes from the product whose tab the form sits in.
Create top-level element
The form sits in the "Request" tab of the models Tom buys back. The submission carries product number and product name as its context; nobody types the model, and nobody mistypes it.
The single choice "Condition" has three values: like new, signs of use, faulty. With "faulty", a condition reveals the field "What is faulty?"; whoever offers a working camera never sees it.
The checkbox "I would like to trade in the camera when buying a new one." is the source of the field "For which product?". That way the same request says what the old camera is to be set against.
Product assignment through the dynamic product group "Buyback possible", position "Own tab": on the product pages of these models, the "Request" tab sits next to "Description" and "Reviews", with the form open inside it.
Context "product" with product number and product name, plus condition, shutter count, accessories, asking price and three links to the photos. Tom then writes the offer himself.
In the "Form" tab the confirmation says when the offer will come. The email with the photos goes to buyback@your-shop.example, where Tom writes the offers.
Under "Context" the email names the product with number and name, below it every entry and the links to the three photos. That is enough to write the offer without opening the administration.
Under Integration > Products the assignment points to the dynamic product group "Buyback possible". When a model joins the group, it gets the tab; Tom does not have to maintain a list of individual products.
In the "Product detail page" card of the configuration, "Position" is set to "Own tab". The position applies to all product forms of the sales channel; in the tab the form is always open.
The shutter count is a number field from 0 to 1000000 with a step of 1. A decimal or a value above the limit does not get through, neither in the browser nor on the server.
Three photos at 8 MB each: at most 24 MB per request. The export has 14 fixed columns and 12 for the fields, 26 in all; the product number sits under "Kontext-Referenz", the product name under "Kontext-Daten".
For photos and the link to the model, yes. Shopware's contact form has no upload and knows no product. With the plugin you put the form into a tab of its own on the products you buy back.
From the product page it is sent from. The submission carries product number and product name as its context, and the history can be filtered by the product number.
One per image upload field, so as many as the form has fields. Here there are three with their own labels, and only the front is mandatory.
No, it collects the details. Condition, shutter count, accessories and asking price stand side by side as columns of their own; you send the offer to the email address in the request.
As a detail in the same request, yes: the tick reveals the field for the new product, and both sit in one row of the history. The amounts are set against each other at the purchase.
For those you put a second form with a field for make and model as a block on a "Buyback" page. There the request arrives without a context.