Posts by James Harrison


    I'm wondering what the best way would be to export data from my website if I wanted to move to a new system / platform. I'm managing a Perch site with a huge database and number of pages (it's an obituary site with over 1000 profiles currently). I'm hoping to just upgrade to Perch Runway but I need to explore other options of moving the site as well.


    Good to know! I can appreciate this isn't the venue for your addon and hadn't noticed it on GitHub actually – I simply downloaded it from your site without looking at the URL.

    Thanks again for all your effort and response!

    To follow up regarding Pipit Catalog, this is a wonderful addon Hussein, well done. It solves most of the issues that have been raised, albeit in a slightly different way (not having to dig through pages of products, but relying more on filtering).

    I just have one question about the Republish feature – my clients site has over 1,000 products and after clicking republish, it crashed my nginx on local, so I'm a bit nervous of running it on production. Is there any way to just republish what is currently filtered so it can be done more manageable chunks?

    Thank you very much Hussein for providing that Pipit, I will go through it and see about implementing it! In regards to the "return to last edited item" issue, it would be lovely to have a solution for this at some point!

    I've had a number of clients ask if there is a way to make administration of products in Perch Runway's Shop app easier.

    Whenever a client needs to go and make sweeping changes on 1,000 or more products, editing is a bit of a pain based on the current functionality. Is there a way the "Listing All Products" page located at /perch/addons/apps/perch_shop_products/ can be edited (without affecting core files) or is there a way to stop it from going to page 1 after editing and saving a product on say, page 30? It would be great if it returned you back to where you were last editing from (page 30). This is a quote from a client that I've heard a number of times now:


    "When our product manager is going through to edit individual products and save, he is brought back to the first page but has to manually click through the pages to get the to one he needs as there is no shortcut (especially for the products in the middle). I also recall this being a challenge when I was going through and deleting products we didn't need. Is there a way we can make this easier and more accessible?"

    Also, is there a way to edit the table view so other fields can be added to the product list? Like images, brands or categories, just like a normal content region in Perch's view mode supports?

    Any help or suggestions would be greatly appreciated!

    Sorry for being obtuse! I'll try and clarify a bit more.

    When the value for the action is set to target an anchor (ie, action="#anchor") on the same page (no page reload) and not load a separate page, and I try to add a couple items to my cart, it will only add multiples of the first item I selected.

    For example, I try to add 3 gooseberry jams, then 2 mustards, and 1 pickled onion, and when I go to my cart, I just have 6 gooseberry jams.

    Do I need to reload the page with this action each time I add an item for it to increment the cart properly? Is there a simple solution for what I am trying to achieve?

    Thanks for sticking with me on this! I am probably just ignorant to what takes place in the form submission.

    Hello Hussein,

    The action for the product detail is going to /cart as is used on the examples. We figured the user is only really going to be looking at one product in detail at a time and redirecting to the cart doesn't seem as big an inconvenience at that point. With the list view the user may want to just grab a number of items without being transported to the cart page and having to come back and reset filters. I hope that makes sense!

    Hello there,

    I am trying to add items to a cart without leaving a list view of products and submitting a page redirect on the form action, does anyone know if this is possible or what I may need to do to get this to work properly? My add to cart form looks like this:

    1. <perch:form id="add_to_cart" app="perch_shop" action="#add_to_cart">
    2.     <perch:input id="product" type="hidden" value="<perch:shop id="productID" env-autofill="false" />" />
    3.     <perch:input id="qty" class="quantity" value="1" type="number" min="1" />
    4.     <perch:input class="add-to-cart" type="submit" value="Add to cart" />
    5. </perch:form>

    Since the action is going to an anchor on the same page, the form works if I add one product, but if I click on a separate item and add that to the cart on the same page, it only increments the original item quantity in the cart, not a new item.

    Here is the relevant page:

    If I change the action to action="/cart" it works as intended, but I am assuming I need the submit event to reload the page or something similar. Can anyone shed some light on what might be needed for this to work? My intention is to show a modal on submission, but not leave the page.

    Thank you in advance,

    I have a client that would like to remove the payment processing part of Perch Shop so that it still uses the cart and all the other Perch Shop features, but emails the order only, bypassing the payment processing component. We did it once before for another client using just Perch Runway and no Perch Shop, but it was a bit elaborate and I'm hoping to provide a simpler solution. Has anyone gone down this road before and just needed an order to be emailed and tracked in the Perch DB without requiring Stripe or another payment gateway? Maybe it's quite simple and I am just missing the boat.

    Thanks in advance!

    Thank you for the speedy reply Hussein!

    Since I am using Runway, I was hoping I could just use /products/example-product, is Runway capable of that? We tend to use Slim PHP for our normal Perch routing, so using ?s=* is not what I expected from Runway, but clean URLS - do I have to use perch_get('s') in this instance only?

    Thanks again,

    I am creating a site using Perch Runway and the Shop app, but I am having trouble using a slug with the Perch routing for products. Can someone shed some light on this for me? Here is what I am trying to do:

    My product template has this slug template tag:

    1. <perch:shop id="slug" type="slug" editable="true" indelible="true" label="Slug" for="title" order="10" divider-before="Meta data" />

    I have a master page called product.php which has the following code in it, but I don't know how to isolate that slug where I have 'slug' below (if that makes sense):

    1. <?php
    2. perch_shop_product('slug', [
    3.     'template' => 'products/product_detail.html',
    4. ]);
    5. ?>

    Naturally, that returns nothing, if I replace 'slug' with 'example-product' (which is the slug generated for that product), it loads. But I need to pull the slug value for the product into here, which is the part of the puzzle I'm missing.

    This is the page I was referencing in the docs:…ducts/perch-shop-product/

    Any help would be greatly appreciated!

    Hello Hussein,

    Thank you very much for your detailed response.

    Product Customisation does look like the best solution for sure, however based on the roadmap, I feel it probably won't be ready in time.

    Product Options may work as you outlined and although it might be cumbersome to administer, I'll give it a try first.

    I have used Cart Properties on another project, and you are correct, it would only work for a one entire order, so the user would be limited to one package of cupcakes only per order.

    Your last solution I am still thinking about, I understand the idea, just unsure of how multiple packages would be added to the cart if needed (which I am sure will be the case).

    I really appreciate your thoughts and will update this post with either a working solution or more questions and issues, if encountered!

    I am in the process of developing a Perch Shop store which sells cupcakes in packages of 6 and 12.

    This wouldn't be tricky if the cupcakes were all of the same flavour, however, the client would like to be able to have a choice for each of the 6-12 cupcake slots from their available cupcake types (products within a "cupcake" category). I am trying to think of how to manage this with Perch Shop, but I am drawing some blanks. I feel like using <perch:layout> within a shop/products/product.html template might work? Could the cart / checkout support something like this? This is probably quite simple, but I am missing a key piece.

    I see it being a list of 6 or 12 selects, each with all the available cupcake flavours as options, all added to the cart as one 6/12 pack item.

    Thanks for any suggestions!

    I have a client that would like their staff to be able to login with a username instead of an email address (like the Perch CMS login) using the Members app. Is this a possibility?

    After adding a new text input called "username" into the /members/member.html template and modifying the login_form.html template to match that same input name, I can't get Perch to recognize it. When I use <perch:showall> on the login_form.html, there isn't much to go on, so I'm not sure what I have available to me.

    Any insight would be appreciated!

    Thank you Drew, that was exactly what I needed.

    I added the following to the checkout.html page:

    1. <perch:input type="textarea" id="personal_message" label="Personal Message" cart-property="personal_msg" />

    And then included that value into the order_paid.html template:

    1. <perch:if exists="perch__personal_msg">
    2. <p><strong>Personal Message</strong><br>
    3. <perch:shop id="perch__personal_msg" /></p>
    4. </perch:if>

    One little problem I had was in modifying the order_paid.html template, I tried copying the template from perch/addons/apps/perch_shop/templates/shop/email to perch/templates/shop/email and Perch ignored any changes I made to it there. Is that a file I have to edit in place or is there a way to duplicate as a normal template that I am missing?

    Thanks again.

    Hello there,

    We have built a Perch site a while ago, using the Shop app for ordering flowers and gifts (checkout process can be seen here), and the client would like to be able to have the order include one to many message(s) attached to the flower order cart. Is it possible to have a text field input on either the cart or checkout levels? I seem to think the checkout form would support it, but not the cart (where the client would like the text message to be, as a user could be ordering more than one set of flowers in their order that needs a message attached).

    Thanks in advance!