Deutsch Demo shop Store

Tom's buyback form shows the camera before it is shipped

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.

The job

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.

Where the built-in tools stop

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.

This is what the form looks like

Your camera
Condition *
  • like new
  • signs of use
  • faulty
What is faulty?only for "faulty"
The display flickers in the cold.
Shutter count
18400
Asking price (€)
450
Included
  • Original packaging
  • Invoice
  • Battery and charger
  • Strap
Photo of the front *

Choose an imagejpg, png up to 8 MB

Photo of the back

Choose an imagejpg, png up to 8 MB

Photo of the serial number

Choose an imagejpg, png up to 8 MB

I would like to trade in the camera when buying a new one.

For which product?only when ticked
K7 system camera, body
First and last name *
Sven Kraus
Email and phone *
sven@example.com

The model is not in the form: it comes from the product whose tab the form sits in.

What matters here

your-shop.example/admin
FormsCancelSave
FormStructureElement
Elements
#NameTypeWidth
1Your cameraGroup--
1.1ConditionSingle choice (radio)1/1 - full row
1.2What is faulty?Multi-line text (textarea)1/1 - full row
1.3Row 3Row--
1.3.1Shutter countNumber (number)1/2
1.3.2Asking price (€)Number (number)1/2
1.4IncludedMultiple choice (checkboxes)1/1 - full row
1.5Row 5Row--
1.5.1Photo of the frontImage upload (file)1/3
1.5.2Photo of the backImage upload (file)1/3
1.5.3Photo of the serial numberImage upload (file)1/3
1.6Trade-inCheckbox (checkbox)1/1 - full row
1.7For which product?Single-line text (text)1/1 - full row
1.8Row 8Row--
1.8.1First and last nameFirst name + Last name1/2
1.8.2Email and phoneEmail address + Phone number1/2

Create top-level element

  • The model comes from the product

    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.

  • Condition as a choice, faults with a follow-up

    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.

  • Trade-in with a tick

    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.

  • Where it sits

    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.

    The three routes to the page

  • What comes back

    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.

    History, context and CSV

How to set it up

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.

your-shop.example/admin
FormsCancelSave
FormStructureElement
Base data
Buyback request
Active
Confirmation
Success message (green)
Thank you! We will look at the photos and send you an offer within two working days.
Email notification
buyback@your-shop.example
Active
  1. 01

    The "Email notification" to the buyback desk

    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.

    TechnicalemailStatus, emailRecipient

    Herebuyback@your-shop.example

  2. 02

    "Dynamic product group" as the assignment

    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.

    TechnicalassignmentType: product_stream

    HereBuyback possible

  3. 03

    "Position" set to "Own tab"

    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.

    TechnicalproductDetailPosition

    HereOwn tab

  4. 04

    "Minimum" and "Maximum" on the shutter count

    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.

    Technicalmin, max, step

    Here0 · 1000000 · 1

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".

All settings in the manual

Questions about the buyback form

Do I need a plugin for buyback requests?

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.

How does the request know the model?

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.

How many photos are possible?

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.

Does the form calculate a buyback price?

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.

Does a trade-in work too?

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.

And models that are not in the shop?

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.