Shopp Plugin and Multi-DB

I want to offer a shopping cart for my WPMU users, and after much research, including this post on the WPMUDev forums, I decided to buy/install the Shopp plugin.

The install went OK, except I found out it doesn't work with Multi-DB. The 'Shopp' menu, which is supposed to show up on the left (after comments) on plugin activation doesn't show. (Screenshot)

I verified this by disabling Multi-DB, and re-activating the plugin. It worked.

So, I re-activated Multi-DB, and did some more research. The Shopp plugin runs all its pages through /wp-admin/admin.php, like this:

/wp-admin/admin.php?page=shopp-orders
/wp-admin/admin.php?page=shopp-customers
/wp-admin/admin.php?page=shopp-settings

I thought perhaps the issue was only with the menu, so I tried to manually type in the URL (www.my-wpmu-site.com/wp-admin/admin.php?page=shopp-settings). The page didn't show up; instead it redirected me to my default blog dashboard.

Can anyone help troubleshoot this issue? With Shopp emerging as the clear winner for simple WP shopping cart integration, it seems this would be a great value add for WPMUDev.

Note: I also opened a thread on the Shopp forums here.

  • nickd32

    Andrew, I emailed you the .zip file to play with.

    There are some errors I found in the PHP logs. One that seems to repeat over and over again is this:

    [21-Aug-2009 12:48:01] WordPress database error You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order ASC' at line 1 for query SELECT t.*, tt.* FROM wp_9_terms AS t INNER JOIN wp_9_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('category') AND tt.count > 0 ORDER BY order ASC made by get_terms
    [21-Aug-2009 12:48:01] WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order ASC' at line 1]
    SELECT t.*, tt.* FROM wp_9_terms AS t INNER JOIN wp_9_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('category') AND tt.count > 0 ORDER BY order ASC

    Also, I'm seeing this one a lot:
    [21-Aug-2009 12:54:00] WordPress database error You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 for query UPDATE wp_1_posts SET guid='' WHERE ID= made by include
    [21-Aug-2009 12:54:00] WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1]
    UPDATE wp_1_posts SET guid='' WHERE ID=

    [21-Aug-2009 12:54:00] WordPress database error Table 'wpmu_d.wp_1_posts' doesn't exist for query INSERT wp_1_posts SET post_title='Cart',
    post_name='cart',
    post_content='[cart]',
    post_parent='0',
    post_author='1',
    post_status='publish',
    post_type='page',
    post_date=now(),
    post_date_gmt=utc_timestamp(),
    post_modified=now(),
    post_modified_gmt=utc_timestamp(),
    comment_status='closed',
    ping_status='closed',
    post_excerpt='',
    to_ping='',
    pinged='',
    post_content_filtered='',
    menu_order=0 made by include
    [21-Aug-2009 12:54:00] WordPress database error: [Table 'wpmu_d.wp_1_posts' doesn't exist]
    INSERT wp_1_posts SET post_title='Cart',
    post_name='cart',
    post_content='[cart]',
    post_parent='0',
    post_author='1',
    post_status='publish',
    post_type='page',
    post_date=now(),
    post_date_gmt=utc_timestamp(),
    post_modified=now(),
    post_modified_gmt=utc_timestamp(),
    comment_status='closed',
    ping_status='closed',
    post_excerpt='',
    to_ping='',
    pinged='',
    post_content_filtered='',
    menu_order=0

  • nickd32

    Good catch. I confirmed that wp_1_xxxx is indeed in wpmu_c

    I also checked, and all 16 Shopp tables got created correctly in wpmu_c

    No idea why it would check in wpmu_d. Wait... I seem to recall that several 'global' tables and plugin tables (like 'wp_18_ak_twitter', for example) originally got created in wpmu_d by default and I had to manually move them to the global DB.

    I think it is checking wpmu_d by default. As if it's not getting the message about the md5 hash.

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.