Copy link to clipboard
Copied
So, my client is hosting a competition, which requires a person to register themselves with specific information. They wish to also allow for payment through the online store for the entry fees.
I have and idea for the process, but the way the online store and web forms function, I can't see them connecting in a sensible way.
What I would like:
Person adds an entry fee to the cart. Checks out. On checkout, the item displays a webform to be completed with pertinent information for the registration, and gets submitted in one operation.
What it looks like now:
Person fills out a registration form. Autoresponder sends email to visit the on-line store page to add the entry fee's into a cart. Then they fill out information and payment. Two emails are generated. One for the registration, and another for the payment. Then the office has to match up the payments with registrations (making it twice the work).
Is there any way to do what I want, or are we going to have to settle for twice the work load?
If you want a custom string to come through for specific products then you use the capture details;
https://screencasteu.worldsecuresystems.com/Mihai/2015-01-20_13.57.54.png
{tag_capturedetails, customMessage}
Put that in your product layout and style the rendered field. It is only one field, if you want to have some sort of matrix of checkboxes or something else, use this as a hidden data field to populate based on the selections.
Copy link to clipboard
Copied
Sure thing, just add custom fields to the order and collect the data you need when they are checking out.
Copy link to clipboard
Copied
A friend of mine who saw .aspx said, there's a way to grab the data from the previous form as a reference ID. So...
In the auto-responder Email, you could send the caseID as an html id that you could maybe use Liquid to grab the data from the table, which has the form data submitted?
Is this correct? Can you actually do this with catalyst? Is there a way to 'query' the database in such a way, as to grab the CaseID.FirstName for example and add it into the form?
Copy link to clipboard
Copied
You are really confusing the issue, BC has this functionality already pre-built in. I'm sure there is a tone of videos you could search for to show you how to add custom fields to an order / checkout. I really shouldn't have to google that for you
Also as others will point out, BC is a SaaS that runs on .net (at time of writing), we don't have access to the backend or any .net functions that anyone familiar with .aspx might expect.
Copy link to clipboard
Copied
The custom fields are exactly the question... I know I can add things like... Dropdown Lists, Checkbox Lists and Radio Lists. But I want to add Text Fields as Attributes. So that when they order it, it gets attached to that item. It has no 'value' just a comment or something, where they can put say... Driver name, Make / Model and such.
There doesn't seem to be an option for that in the attributes section, and I am wondering if I can add the Custom (String) elements from a webform or something similar, to the item in any way.
Wanted to add, that woocommerce allows you to do this.
I looked at the developer section: Product attributes | Business Catalyst Support
And even there, it shows the fieldTypeId which only has 3 options, so it looks like you can't. Is there any way to modify this and add one? Some kind of addon / plugin. Even if I have to write it, I just have absolutely no idea how I would do it. It looks like it's Adobe's API itself, so probably can't change it, and would need BC to add it themselves as a standard option.
Copy link to clipboard
Copied
If you want a custom string to come through for specific products then you use the capture details;
https://screencasteu.worldsecuresystems.com/Mihai/2015-01-20_13.57.54.png
{tag_capturedetails, customMessage}
Put that in your product layout and style the rendered field. It is only one field, if you want to have some sort of matrix of checkboxes or something else, use this as a hidden data field to populate based on the selections.
Copy link to clipboard
Copied
This is the most accurate response. I didn't know that existed.
Now, if only it would work on the "Small" layout ;s
It's in the feature wish list from almost a year ago. Here's hoping. I don't know what I'm going to do now, since I am completely bypassing the large layout 100%. Not sure how else I can do it...
Copy link to clipboard
Copied
My solution so others can do the same or similar.
Under Site Manager > Module Templates > Online Shop Layouts -> Individual Product - Large
added the following below the description and before the add to cart button.
{tag_capturedetails,Additional Information}
Added the following script:
<script type="text/javascript">
var href = window.location.href;
if(href.indexOf("king-of-the-hill-entry-fee") >= 0) {
$('#catProdInstructions_11033137').attr('value','Driver Name:\nSled #:\nSled CC:\nSled Make/Model/Year:');
}
if(href.indexOf("uphill-drag-class-entry-fee") > 1) {
$('#catProdInstructions_11033136').attr('value','Driver Name:\nSled Year:\nSled Make/Model:\nEngine Mods:\nSled #:');
}
</script>
This looks for the Text Area that is entered in the capturedetails tag, generated by the API. It will enter some text into the textarea so that the user knows what I am asking.
The uphill-drag-class-entry-fee being > 1 is because the catalog title ended up being "uphill-drag-class-entry-fees" and the url looks like: "uphill-drag-class-entry-fees/uphill-drag-class-entry-fee"
So as long as there is more than one match, then I know I am on that specific product, and not just the 'catalog' itself.
The result, is a product entry, with the text added as the 'item name', which works for me in this case. So it looks like this:
King of the Hill Entry Fee (Driver Name: Someone Sled #: 1 Sled CC: 600 Sled Make/Model/Year: 93)
It has been almost a full year since Adobe has had the capturedetails tag added to wishlist for the "small" layout template. If they do this, then I won't have to have this in the large, I can just have it in the main page and add the product to a specific page instead of applying it globally like it is now. I would be able to have scripts that do specific things on specific pages, and have unique information regardless of the product. Just reference it by whatever ID it assigns it. (Which I believe is the product ID anyway).