Forum

Thread tagged as: Problem, Error, Shop

Fatal Error for Perch Shop

Hi,

I'm currently setting up a shop and am getting a blank screen when the add to cart button is being clicked. My error log shows the following '[Mon Nov 12 15:46:07.317332 2018] [fcgid:warn] [pid 27994] [client 91.103.188.194:59738] mod_fcgid: stderr: PHP Fatal error: Call to a member function get_prices() on boolean in /home/linweb23/a/arthur.web-design.wales/user/htdocs/admin/addons/apps/perch_shop/lib/PerchShop_Cart.class.php on line 723, referer: https://arthur.web-design.wales/course.php?s=agent

Here are my diagnostics:


Perch: 3.1.3 Production mode: Production (100) Installed apps: content (3.1.3), assets (3.1.3), categories (3.1.3), perch_blog (5.6.1), perch_forms (1.12), perch_shop_orders (1.2.6), perch_shop_products (1.2.6), perch_shop (1.2.6), perch_members (1.6.4) DB driver: PDO DB tables: perch3_blog_authors (1), perch3_blog_comments (0), perch3_blog_index (25), perch3_blog_posts (1), perch3_blog_posts_to_tags (0), perch3_blog_sections (1), perch3_blog_tags (0), perch3_blog_webmention_queue (0), perch3_blogs (1), perch3_categories (0), perch3_category_counts (0), perch3_category_sets (2), perch3_content_index (189), perch3_content_items (41), perch3_content_regions (15), perch3_forms (1), perch3_forms_responses (1), perch3_menu_items (14), perch3_navigation (0), perch3_navigation_pages (0), perch3_page_templates (0), perch3_pages (7), perch3_resource_log (54), perch3_resource_tags (0), perch3_resources (14), perch3_resources_to_tags (0), perch3_settings (38), perch3_shop_addresses (0), perch3_shop_admin_index (32), perch3_shop_brands (1), perch3_shop_cart (1), perch3_shop_cart_data (1), perch3_shop_cart_items (3), perch3_shop_countries (250), perch3_shop_currencies (152), perch3_shop_customers (0), perch3_shop_emails (1), perch3_shop_index (144), perch3_shop_option_values (0), perch3_shop_options (0), perch3_shop_order_items (0), perch3_shop_order_promotions (0), perch3_shop_order_statuses (9), perch3_shop_orders (0), perch3_shop_orders_meta (1), perch3_shop_product_files (0), perch3_shop_product_option_values (0), perch3_shop_product_options (0), perch3_shop_product_tags (0), perch3_shop_products (3), perch3_shop_promotions (0), perch3_shop_sales (0), perch3_shop_search (3), perch3_shop_shipping_zone_countries (0), perch3_shop_shipping_zones (1), perch3_shop_shippings (1), perch3_shop_tax_exhibits (0), perch3_shop_tax_group_rates (1), perch3_shop_tax_groups (1), perch3_shop_tax_locations (1), perch3_shop_tax_rates (1), perch3_shop_variants (0), perch3_user_passwords (0), perch3_user_privileges (80), perch3_user_role_privileges (2), perch3_user_roles (2), perch3_users (1) Users: 1 App runtimes: <?php $apps_list = [ 'perch_blog', 'perch_forms', 'perch_members', 'perch_shop' ]; Scheduled tasks for perch_blog: delete_spam_comments (1440 mins), publish_posts (1 mins), process_webmentions (1 mins) Editor plug-ins: H1: 44a5c94721e58b540b7649cf3da15f6e L1: f484b7bda06f1b0f78238491a7d9344e F1: 3b606135b33e6a102526838f4152a807 headerColour: #ffffff content_singlePageEdit: 1 helpURL: siteURL: / hideBranding: 1 content_collapseList: 1 lang: en-gb installedAt: 3.1.3 update_3.1.3: done latest_version: on_sale_version: 3.1.3 headerScheme: light perch_shop_price_tax_mode: exc perch_shop_site_url: https://www.dawsonstrainingwales.co.uk perch_shop_product_url: /shop/products/{slug} perch_shop_invoice_number_format: Invoice%d perch_blog_site_name: perch_blog_post_url: news-post.php?s={postSlug} perch_blog_slug_format: %Y-%m-%d-{postTitle} perch_blog_akismet_key: perch_blog_max_spam_days: 0 perch_members_login_page: /members/login.php?r={returnURL} dashboard: 0 sidebar_back_link: 0 hide_pwd_reset: 0 keyboardShortcuts: 1 content_hideNonEditableRegions: 0 content_frontend_edit: 0 content_skip_region_list: 0 assets_restrict_buckets: 0 perch_blog_comment_notify: 0 perch_blog_webmention_tx: 0 perch_blog_webmention_rx: 0 logoPath: /assets/daw-logo.png perch_blog_update: 5.6 perch_shop_update: 1.2.6 perch_shop_default_currency: 47 perch_shop_reporting_currency: 47 PERCH_DEVELOPMENT: 10 PERCH_STAGING: 50 PERCH_PRODUCTION: 100 PERCH_DB_USERNAME: trainingdawsons PERCH_DB_SERVER: 213.171.200.92 PERCH_DB_DATABASE: dawsonstraining PERCH_DB_PREFIX: perch3_ PERCH_TZ: UTC PERCH_EMAIL_FROM: jade@picseli.co.uk PERCH_EMAIL_FROM_NAME: Jade Marling PERCH_LOGINPATH: /admin PERCH_PATH: /home/linweb23/a/arthur.web-design.wales/user/htdocs/admin PERCH_CORE: /home/linweb23/a/arthur.web-design.wales/user/htdocs/admin/core PERCH_RESFILEPATH: /home/linweb23/a/arthur.web-design.wales/user/htdocs/assets PERCH_RESPATH: /assets PERCH_HTML5: 1 PERCH_RUNWAY: PERCH_ERROR_MODE: DIE PERCH_DATE_LONG: %d %B %Y PERCH_DATE_SHORT: %d %b %Y PERCH_TIME_SHORT: %H:%M PERCH_TIME_LONG: %H:%M:%S PERCH_RUNWAY_ROUTED: PERCH_STRONG_PASSWORDS: PERCH_ASSET_VERSION: 6738d5d5f5664f7c5e34 PERCH_DEBUG: PERCH_PREVIEW_ARG: preview PERCH_TEMPLATE_PATH: /home/linweb23/a/arthur.web-design.wales/user/htdocs/admin/templates PERCH_TEMPLATE_FILTERS: PERCH_DEFAULT_DOC: index.php PERCH_DEFAULT_EXT: .php PERCH_PRODUCTION_MODE: 100 PERCH_XHTML_MARKUP: PERCH_RWD: 1 PERCH_HTML_ENTITIES: PERCH_SSL: PERCH_STRIPSLASHES: PERCH_PROGRESSIVE_FLUSH: 1 PERCH_PARANOID: PERCH_FORCE_SECURE_COOKIES: PERCH_DEFAULT_BUCKET: default PERCH_TRANSLATION_ASSIST: PERCH_PASSWORD_MIN_LENGTH: 6 PERCH_MAX_FAILED_LOGINS: 10 PERCH_AUTH_LOCKOUT_DURATION: 1 HOUR PERCH_VERIFY_UPLOADS: PERCH_PRIV_ASSIST: PERCH_CUSTOM_EDITOR_CONFIGS: PERCH_ENABLE_EXIF: 1 PERCH_AUTH_PLUGIN: PERCH_DB_CHARSET: utf8 PERCH_DB_PORT: PERCH_DB_SOCKET: PERCH_SHOP_VERSION: 1.2.6 PERCH_APPS_EDITOR_PLUGIN: markitup PERCH_APPS_EDITOR_MARKUP_LANGUAGE: markdown Hosting settings PHP: 5.6.38 Zend: 2.6.0 OS: Linux SAPI: cgi-fcgi Safe mode: not detected MySQL client: 5.5.60-MariaDB MySQL server: 5.6.42-log Free disk space: 204.16 GB Extensions: Core, date, ereg, libxml, openssl, pcre, sqlite3, zlib, bz2, calendar, ctype, curl, hash, fileinfo, filter, ftp, gettext, gmp, SPL, iconv, intl, pcntl, session, standard, posix, readline, Reflection, Phar, shmop, SimpleXML, sockets, mbstring, sysvmsg, sysvsem, sysvshm, tokenizer, wddx, xml, cgi-fcgi, bcmath, dba, dom, gd, imap, json, ldap, exif, mcrypt, mssql, mysql, mysqli, odbc, PDO, pdo_dblib, pdo_mysql, PDO_ODBC, pdo_pgsql, pdo_sqlite, pgsql, pspell, snmp, soap, tidy, xmlreader, xmlrpc, xmlwriter, xsl, zip, mhash, ionCube Loader, Zend OPcache GD: Yes ImageMagick: No PHP max upload size: 20M PHP max form post size: 20M PHP memory limit: 64M Total max uploadable file size: 20M Resource folder writeable: Yes Session timeout: 24 minutes Native JSON: Yes Filter functions: Yes Transliteration functions: Yes PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin PWD: /var/www/fcgi PHP_FCGI_MAX_REQUESTS: 100 ORIG_SCRIPT_NAME: /fcgi-bin/php56-cgi ORIG_PATH_TRANSLATED: /home/linweb23/a/arthur.web-design.wales/user/htdocs/admin/core/settings/diagnostics/index.php ORIG_PATH_INFO: /admin/core/settings/diagnostics/index.php ORIG_SCRIPT_FILENAME: /var/www/fcgi/php56-cgi SCRIPT_NAME: /admin/core/settings/diagnostics/index.php REQUEST_URI: /admin/core/settings/diagnostics/?extended QUERY_STRING: extended REQUEST_METHOD: GET SERVER_PROTOCOL: HTTP/1.0 GATEWAY_INTERFACE: CGI/1.1 REDIRECT_URL: /admin/core/settings/diagnostics/index.php REDIRECT_QUERY_STRING: extended REMOTE_PORT: 43962 SCRIPT_FILENAME: /home/linweb23/a/arthur.web-design.wales/user/htdocs/admin/core/settings/diagnostics/index.php SERVER_ADMIN: support@fasthosts.com CONTEXT_DOCUMENT_ROOT: /var/www/fcgi/ CONTEXT_PREFIX: /fcgi-bin/ REQUEST_SCHEME: http DOCUMENT_ROOT: /home/linweb23/a/arthur.web-design.wales/user/htdocs REMOTE_ADDR: 91.103.188.194 SERVER_PORT: 80 SERVER_ADDR: 127.0.0.1 SERVER_NAME: arthur.web-design.wales SERVER_SOFTWARE: Apache HTTP_UPGRADE_INSECURE_REQUESTS: 1 HTTP_COOKIE: _ga=GA1.2.1589248101.1537449823; PHPSESSID=vq8p5qle5nejsmengd0cil74v1; cmsa=1 HTTP_REFERER: https://arthur.web-design.wales/admin/core/settings/diagnostics/ HTTP_ACCEPT_ENCODING: gzip, deflate HTTP_ACCEPT_LANGUAGE: en-GB,en;q=0.5 HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 HTTP_USER_AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0 HTTP_CONNECTION: close HTTP_X_FORWARDED_FOR: 91.103.188.194 HTTP_X_REAL_IP: 91.103.188.194 HTTP_HOST: arthur.web-design.wales UNIQUE_ID: W@mg9SQ9Vf-6Ekn4surXxgAAAA0 on: 127.0.0.1 REDIRECT_STATUS: 200 REDIRECT_HANDLER: application/x-httpd-php56 REDIRECT_UNIQUE_ID: W@mg9SQ9Vf-6Ekn4surXxgAAAA0 REDIRECT_on: 127.0.0.1 FCGI_ROLE: RESPONDER PHP_SELF: /admin/core/settings/diagnostics/index.php REQUEST_TIME_FLOAT: 1542037749.194 REQUEST_TIME: 1542037749

Here are the cart.html template:

<div class="wrapper cols2-nav-right">   
    <div class="primary-content">

<perch:if id="product_count" match="gt" value="0">
    <h1>Your cart (<perch:shop id="item_count" />)</h1>
    <perch:form id="cart" app="perch_shop">

        <perch:input type="submit" value="Update" hidden="true" aria-hidden="true" />

        <table class="cart">
            <tr>
                <th></th>
                <th>Code</th>
                <th>Item</th>
                <th>Quantity</th>
                <th>Price</th>
                <th>Total</th>
            </tr>
            <perch:cartitems>
                <tr>
                    <td><perch:cartitem id="image" type="image" width="80" height="80" density="1.6" crop="true" output="tag" /></td>
                    <td><perch:cartitem id="sku" /></td>
                    <td>
                        <b><perch:cartitem id="title" /></b>
                        <p><i><perch:cartitem id="variant_desc" /></i></p>
                        <div class="desc">
                            <perch:cartitem id="description" type="textarea" markdown="true" />
                        </div>
                        <button type="submit" class="remove_cart" name="del:<perch:cartitem id="identifier" />" value="1">
                            Remove from cart
                        </button>
                    </td>
                    <td><perch:input id="qty:<perch:cartitem id="identifier" />" value="<perch:cartitem id="quantity" />" type="number" min="0" /></td>
                    <td class="money"><perch:cartitem id="price_without_tax" /></td>
                    <td class="money"><perch:cartitem id="total_without_tax_formatted" /></td>
                </tr>
            </perch:cartitems>

            <perch:if id="total_discounts" match="gt" value="0.00">
                <tr class="total">
                    <th colspan="5">
                        Discount (<perch:shop id="discount_code" />)
                    </th>
                    <td class="money">
                        <perch:shop id="total_discounts_formatted" />
                    </td>
                </tr>
                <tr class="total">
                    <th colspan="5">
                        Total
                    </th>
                    <td class="money">
                        <perch:shop id="total_items_discounted_formatted" />
                    </td>
                </tr>
            <perch:else />
                <tr class="total">
                    <th colspan="5">
                        Total
                    </th>
                    <td class="money">
                        <perch:shop id="total_items_formatted" />
                    </td>
                </tr>
            </perch:if>
            <tr class="total">
                <th colspan="5">
                    Tax
                </th>
                <td class="money">
                    <perch:shop id="total_tax_formatted" />
                </td>
            </tr>
            <tr class="total">
                <th colspan="5">
                    Grand total
                </th>
                <td class="money">
                    <perch:shop id="grand_total_formatted" />
                </td>
            </tr>
        </table>

        <div class="discount">
            <perch:label for="discount">
                Discount code
                <perch:input type="text" id="discount_code" />
            </perch:label>
        </div>

        <perch:input type="submit" value="Update" />

    </perch:form>

    <p>
        <a href="checkout">Checkout now</a>
    </p>

<perch:else />
<h1>Your cart</h1>

<p>Your cart is empty.</p>
</perch:if>





</div>
</div>





<style>
.cart {
    width: 100%;
    border-collapse: collapse;
}

.cart th {
    font-weight: 600;
}

.cart td,
.cart th {
    border: 1px solid #efefef;
    vertical-align: top;
    padding: 3px;
}

.cart .total,
.cart .money {
    text-align: right;
}

.discount {
    max-width: 300px;
}

.desc {
    font-size: small;
}

b {
    font-weight: 600;
    color: rgba(0, 0, 0, 0.6);
}

i {
    font-style: italic;
    font-size: small;
    color: rgba(0, 0, 0, 0.6);
}

.remove_cart {
    background: none;
    border: 0;
    padding: 0;
    margin: 0;
    text-decoration: underline;
}

input[type=number] {
    width: 35px;
}
</style>

Here is the product.html template:

<perch:shop id="sku" type="text" label="SKU" required="true" order="1" />
<perch:shop id="title" type="text" label="Title" required="true" order="2" />
<perch:shop id="slug" type="slug" editable="true" indelible="true" label="Slug" for="title sku" order="10" divider-before="Meta data" />
<perch:shop id="description" type="textarea" label="Description" editor="markitup" order="3" markdown="true" size="s" />
<perch:shop id="image" type="image" label="Main product image" order="4" width="800" />
<perch:shop id="image" type="image" width="80" height="80" density="1.6" crop="true" />
<perch:shop id="status" type="shop_status" label="Status" />

<perch:shop id="brand" type="shop_brand" label="Brand" allowempty="true" />

<perch:categories id="category" set="products" label="Category">
    <perch:category id="catTitle" />
</perch:categories>

<perch:shop id="catalog_only" type="shop_catalog_only" label="Catalog only" />
<perch:shop id="price" type="shop_currency_value" label="Price" divider-before="Pricing" size="s" min="0" step="any" />
<perch:shop id="sale_price" type="shop_currency_value" label="Sale price" size="s" min="0" step="any" />
<perch:shop id="trade_price" type="shop_currency_value" label="Trade price" size="s" min="0" step="any" runway="true" />
<perch:shop id="on_sale" type="checkbox" value="1" label="Use sale price" />
<perch:shop id="tax_group" type="shop_tax_group" label="Tax group" required="true" />


<perch:shop id="stock_status" type="shop_stock_status" label="Stock status" divider-before="Stock" required="true" />
<perch:shop id="stock_level" type="number" label="Stock level" size="s" />
<perch:shop id="stock_location" type="shop_stock_location" label="Count stock" />
<perch:shop id="max_in_cart" type="number" label="Max quantity in cart" size="s" />

<perch:shop id="requires_shipping" type="shop_requires_shipping" label="Requires shipping" divider-before="Shipping" />
<perch:shop id="weight" type="number" label="Shipping weight" size="s" />
<perch:shop id="width" type="number" label="Width" size="s" />
<perch:shop id="height" type="number" label="Height" size="s" />
<perch:shop id="depth" type="number" label="Depth" size="s" />

<perch:form id="add_to_cart" app="perch_shop" action="/cart.php">
    <perch:input id="product" type="hidden" env-autofill="false" value="<perch:shop id="productID" type="hidden" env-autofill="false" />" />
    <perch:input type="submit" value="Add to cart" />
</perch:form>
Jade Marling

Jade Marling 0 points

  • 2 years ago
Drew McLellan

Drew McLellan 2638 points
Perch Support

On your product page (with the add to cart button), view source and let me know what the product hidden input looks like.

I had similar issues when I was starting to use Perch shop... in fact, one was on exactly that same line (723). It always came down to not having done the initial setup correctly, or sometimes it got messed up somehow. So I suggest you try double checking that you've gone through all the steps here: https://docs.grabaperch.com/addons/shop/installation/