Posts by ellimondo

    Make sure you've set single use per user only on the promotion.

    You also may need to restart the browser / empty the cache. Codes are pretty aggressively cached.

    Alternatively (not tested) you could try adding a function call on payment to set the discount code to null.

    e..g perch_shop_set_discount_code('');

    You can force any misbehaving updates by going to /admin/core/update/?force=update but that won't create any missing files.

    Check if your /admin/core/runway/apps/apps.php file is missing. You can also replace the entire core folder but do a backup first and better still test it locally first!


    Can you tell us what the error message is when you try to log in?

    Turn on display errors for PHP so that you get some feedback from the webserver.

    Issues to start with:

    Don't run 7.4 yet as there are outstanding issues. 7.3 is recommended.

    Make sure you are running Perch in the root of your web server installation. If not, then you need to move it to the root or create a virtual directory. I don't know XAMMP I'm afraid but you'll find tons on it on other forums.

    Hope this moves you along a bit.


    There are quite a few ways to check if a discount has been set. I'd suggest you enable <perch:showall> on your cart page and see which ID suits you to test on.

    I've not tried it but there is an ID called discount_code so you could test for that I guess.

    I've implemented it so that if the user has set a discount code then you can check if there's a discount applied to the cart.

    Something like:

    1. <perch:if id="total_discounts" match="gt" value="0.00">
    2.              Voucher applied (<perch:shop id="discount_code">) - <perch:shop id="total_discounts_with_tax_formatted">
    3. </perch:if>

    Yep, it is a lot, but that's essentially the case with any e-commerce system. For example, Shopify allows you to manage variants from one single page but it's still creating variants from a bunch of options at the end of the day.

    Managing a lot of products is not easy in Perch Shop.

    Do both the filters need to be matched to pass the test, or just one of them? Try adding 'match' => 'or' between the filters if it's just one.

    Also have you tried the option ''filter-mode' => 'ungrouped', as this can help with sticky multiple filters.


    It doesn't really work that way. Your generated variants would create what is essentially new "sub" products, with the ability to assign a price to each one.

    So you would have:

    • Standard product £10

    Then assign prices to the generated variants from the selected options e.g.

    • Standard red product £13.50
    • Large red product £16


    NB This is my experience of building shop and I am sure there are other ways of achieving this.

    Perch options are simple lists of product features such as colours, size etc.

    You then generate those into variants for each product. So a door product might have several options: e.g. door knobs, hinges and lock.

    You can assign single or multiple options to a single product.

    The options then get merged into product variants when you click the generate variants button in the product edit screen.

    That's where your images and prices would go – i.e. into the product variant template.

    Variants give you control over prices so that you can display them on the product detail page.

    You can activate variants in your product function call using the option 'variants' => true, and then display them using the <perch:variants></perch:variants> tag pair.

    I hope this helps get you started.

    The documentation for Shop is very scant so you might want to join the Slack group as you'll probably get faster responses from the community.


    This sounds like a Bootstrap layout question rather than specific Perch question. You might have more success on another forum but in any case we'd need to see some code and a screenshot / live link to help you further.


    I've had a look at the live site for you and it appears that there are three forms: A general one and two restaurant ones. These two restaurant forms have hidden fields that will fill out the restaurant placeholders in the response. The main contact form doesn't have that field. If they are all posting to the same form inside Perch then you are going to just get that empty placeholder code if anyone posts to the general form.

    You need to either create a new instance of a form for the general form and take out that restaurant placeholder in the copy, or write some conditionals into the form so that you don't get any empty placeholders in the response.

    You can't use the control panel to sort this out. You will need to look at the template files. The form template file will probably be in /perch/template/forms/.

    Hope this helps,


    Off the top of my head here so apologies for not showing code but could you use the 'each' option containing a collection function that calls a single related collection item with the related id using 'event._id'?

    You can then return the id from that collection into the perch_custom_content function results and pick it up from there.


    Sure, the pagination should go inside the blog/post_in_column.html template. You'd want to move your template to there at the end in between <perch:after></perch:after> tags so it renders after the count setting in the function is reached.

    You will also want to count lower to something like 5 or 10 so that you get pagination kicking in - basically it will split your posts into pages containing that many posts. 60 is way too much.

    The default sample in the app is thus but you can adapt it to whatever you want - including a template (if that is what you want) using the <perch:template path="blah"> tags.

    Hope this helps!