Appointments+ & Marketpress

Hi,

I have a kind of complicated issue involving Appoitments+ & Marketpress integration that I'm struggling to solve. Hoping you can provide some suggestions or insight and appreciative of any help you can give.

The site in question is a site for an owner operated service business that provides training to both local and remote clients. The site needs to allow users to book either an in person or teleconferenced training session with a single service provider, and pay for that session up front (We're using Stripe for payment processing) the issues we're running into are:

The service provider offers a variety of services at different price points and we're using Marketpress to list Appointments+ appointments and products. Variations of certain types of appointments (Some times for in person appointments are only available to people in certain geographic regions) need to be available only at certain times, though all bookings need to go the same service provider. Is the best way to do this to have each region as it's own service? Though if so, how do we show the different regions as the same "Product" in the Marketpress listing? I would like to only have one product for each service where the user selects their region fro a drop-down and then is shown a calendar that only has the correct available times for that service and region.

Second, for regions outside our core area an additional travel fee needs to be added to their booking fee. Is it possible to add a selectable field that can be added to a booking at the time it's made for this fee?

Next up, when listing the various Appointments+ services on the Marketpress store page, the Appointments+ page text is displayed, but doesn't look great. Can I use custom excerpts to replace this text? Also, how can I modify the order in which the products are displayed? Do I have to do this manually be inputting each product through a the single product shortcode in the desired order?

Sorry for so many questions. Not sure if you can help with all of them but any guidance you could provide would be much appreciated.

Cheers,

-Ryan

  • Hakan

    Hi,

    Your application is a bit complicated and giving real world examples is a good idea for such cases so that we can understand what you actually need. Because mostly there are definition differences. For example this:

    I would like to only have one product for each service where the user selects their region fro a drop-down and then is shown a calendar that only has the correct available times for that service and region.

    What I understand that you may not actually need a product per service, otherwise you cannot have a dropdown for service selection: If you have a product page for each service, you cannot select another service on that page, because on that product page the service would have already been selected.

    Regarding the other questions:

    Variations of certain types of appointments (Some times for in person appointments are only available to people in certain geographic regions) need to be available only at certain times, though all bookings need to go the same service provider.

    There may be other solutions by adding your custom functions using hooks, but a simple solution may be by defining services properly.

    Let me give an example:
    - Assume that you have 3 services: Basic, Standard, Advanced
    - Assume that you have 2 regions (or variations): English, French

    Then define services like:
    Basic English - $10
    Basic French - $20
    Standard English - $30
    Standard French - $40
    Advanced English - $50
    Advanced French - $60

    Use only services drop down.

    You can use dummy service providers to limit a service to be available at a time. For this example define 6 dummies and assign each of them to a single service. For example you can say basic English only available on Mondays, etc.

    I am not sure if this is practical for your case. If not, please elaborate your application.

    Second, for regions outside our core area an additional travel fee needs to be added to their booking fee. Is it possible to add a selectable field that can be added to a booking at the time it's made for this fee?

    The above solution cares for additional fees.

    Next up, when listing the various Appointments+ services on the Marketpress store page, the Appointments+ page text is displayed, but doesn't look great.

    Probably this can be done by changing css. Can you give a link?

    Also, how can I modify the order in which the products are displayed?

    Please see description of [mp_list_products] shortcode on Store Settings>Shortcodes tab.

    Cheers,
    Hakan

  • junction

    Hi,

    Thanks for your great response Hakan. WPMUDEV premium membership is proving to be well worth if for the support alone!

    From what you're saying I still think I would like to have a product per service, as otherwise we won't have an opportunity to present site visitors with the features/benefits of each service without them having to click through to a separate page from our main "Our services" section in order to read a description of the service. I'd think that putting to many clicks between the user and a booking would likely decrease our conversion rate.

    Your point about defining services is along the lines of what I'd been thinking of doing as that way I could create a seperate service for each of the regions that my client serves.

    Is there a way then that if I create a bunch of separate services to have those services listed in a drop down on a single product page? Here's how I'd envision it working practically.

    Our client provides sleep training consultations to parents. One of her services is an an in-person session with her clients in Vancouver (Our location). She is only available to service different regions during specific times of the day due to the travel time required to reach different areas of the city. So would it work to do the following?

    Create a separate "in person training" service for each of regions she serves, then have a single product page for "in person training" that the user can select their region (which would be one of the services) from a drop down? If so what's the best way to do this so the product page has the drop down?

    As for the styling issue with the descriptions of the product/service on the products page the site is at http://hushadev.junctioncs.ca/our-services/

    What's my best option to fix how the product information is displaying?

    Thanks!

    -Ryan

  • Hakan

    Here is a set up for your case:

    1)
    - Define your services and note their ID's, e.g. In-person session (let's say ID is 2), Other service (let's say ID is 3)
    - Set capacity as 1 for each of them. This will make one provider available at any time, which is what we want.
    - Set base service prices as you wish.

    2)
    - Create users as many as you need with display names the same as region, e.g. Vancouver, Victoria. You can use fake emails, as we will not need them.
    - Assign your users as service providers. Select them as "dummy"
    - Assign them to all of your services, or to those you wish. For example you can select Vancouver "serves" only for in-person session, which means in-person session is only available for Vancouver.
    -Set additional prices as you wish, e.g. Vancouver no additional price, Victoria 100CAD.

    3)
    -Set their working hours as you wish. You can select Victoria "works" only on Wednesdays and Fridays, Vancouver is available every day.
    -Connect dummy service providers to admin so that all emails arrive to her (use "Assign Dummy service providers to" setting)

    4) Create one product page for each service (see Note).

    5)
    Edit product pages so that:
    - Remove services dropdown shortcode

    - Modify service providers drop down shortcode:

    [app_service_providers title="Select a region" autorefresh="1"]

    - Modify monthly or weekly schedule shortcode like this:

    [app_schedule service="2"]

    Replace 2 with your real service ID.
    Repeat this for every product (=service) page.

    6)
    As you don't want "no preference" (which is actually region), add these codes to functions.php of your current theme:

    function disable_no_preference( $script ) {
    $add = "$('.app_select_workers option[value=0]').attr('disabled','disabled');";
    return $add.$script;
    }
    add_filter( 'app_footer_scripts', 'disable_no_preference');

    Please test and and see if that is what you want.

    Note: You can select to use either one service per product page, or all services in one product page. For the latter one (which is the default page created by A+), skip step 5. Selected n number of services on one product page is also possible, but you cannot use services drop down for this purpose, you need to add one schedule shortcode for each service. So if you have 3 services on one page, you will have 3 separate schedules.

    Regarding styling, I don't see any issues there. If you want to change fonts, colors, etc, using Google Chrome, right click on the element you want to style, select "Inspect element", note its class name and add to your style.css whatever css you want. For example, this makes product content text bold:

    .mp_product_content {font-weight:bold;}

    If you want to add custom excerpt, edit product page and enter custom text in the "Excerpt" field. Also see this:
    http://codex.wordpress.org/Excerpt

    Cheers,
    Hakan

  • junction

    Hi Hakan,

    Thanks for another great response. I really appreciate all your help here.

    I totally get what you've suggested here and am implementing your recommendations. I've created users and dummy service providers for each of the sub regions the business serves and have assigned working hours to each service provider in line with the times the consultant can be each in region though when I add the short codes to the product pages and you've described the drop down menu to select the service provider lists the correct number of listings, but all as the Primary Service provider (the business owner). The title also didn't change.

    Here's the page - http://hushadev.junctioncs.ca/shop/services/hushababy-full-service-consultation/

    Do you have any ideas as to why the drop down isn't displaying the correct regions as it should and why the title isn't changing in line with the modification that was made?

    Thanks for your help.

    -Ryan

  • Hakan

    why the title isn't changing in line with the modification that was made?

    I wrote wrong parameter. Sorry. It should be like this:

    [app_service_providers select="Select a region" autorefresh="1"]

    Do you have any ideas as to why the drop down isn't displaying the correct regions as it should

    Enter the region name in first name field for your "user" and select it in "Display name publicly as" setting on WordPress user profile page.

  • junction

    Thanks again Hakan, that's exactly what I needed.

    I've added the shortcodes as you've suggested, and I'm testing it and now when I select and appointment and confirm the details I'm not being taken to the payment processing stage of the checkout. We're using Stripe as our payment processor and I have the testing API setup correctly as far as I can tell.

    What do I need to do to have the confirm appointment button automatically take the user to the next stage of their checkout process?

    Thanks,

    -Ryan

  • Hakan

    Hi,

    confirm the details I'm not being taken to the payment processing stage of the checkout.

    That is about MarketPress preferences. You'd rather review MarketPress documentation for such questions, but for this particular one:

    - If you use "Add to cart" button (which is the default), client stays on the product page and he can add as many appointments to the "cart" as he wishes and when he is finished he "checkout"s clicking the checkout page.

    - If you use "Buy now" button, client is directly sent to payment processing as he clicks the button.

    So if you will not allow multiple appointments to be added to the cart, visit Products>Store Settings>Presentation page and change "Checkout Button Type" as "Buy Now" for "Single Product Settings".

    Cheers,
    Hakan

  • junction

    Hi Hakan,

    The pages themselves are marketpress product pages with the appointments+ shortcodes for the region selector and calendar on them (Along with some other content). The shortcodes I'm using are:

    [app_service_providers select="<h2>Step 1 - Select Your Location</h2>" autorefresh="1"]
    <h2>Step 2 - Select A Time</h2>
    [app_schedule service="1"]
    [app_pagination]
    [app_confirmation]
    <h2>Step 3 - Pay For Your Order</h2>
    [mp_buy_button product_id="1" context="single"]

    The [mp_buy_button] code isn't showing the button though and the confirm appointments button leaves the user on the same page. What I'd like is for the confirm appointments page to take the user to the next page in the checkout process. How can I do this?

    A sample page can be seen at http://hushadev.junctioncs.ca/shop/services/hushababy-full-service-consultation-2/

    Thanks!

    -Ryan

  • Hakan

    Can you change jQuery version to 1.8.3 which is the version compatible with WP3.5?

    <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver=3.5'></script>

    Also it is recommended to upgrade to WordPress V3.5.1.

    Also please add "app_paypal" shortcode to the page (just under app_confirmation) and remove [mp_buy_button product_id="1" context="single"] shortcode. Or simply let A+ create the page for you by "Create an Appointment Product Page" and edit just the titles and other texts.

    Set: Store Settings>Presentation>Single Product Settings>Checkout Button Type as "Buy Now button".

    Buy now button will be automatically visible after client confirms the appointment. You don't need to add its shortcode in a product page.

  • junction

    Hi Hakan,

    Thanks for your most recent update but I have a very urget issue. I recently moved the site from one folder on my server to another and changed the domain. After doing this both Markepress and Appointments+ indicated there were updates available. The Marketpress update went fine, but the appointments+ update failed and now I have lost dozens of hours of work. Is there any way to recover that work? I would be completely fucked it not.

    Thanks,

    -Ryan

  • junction

    Hi Hakan,

    Earlier when you mentioned that I should update the jQuery version, where do I go to do that? What file do I need to modify?

    I've added the app_paypal button now, but as I'm using stripe as my payment gateway I'm running into some issues there now. I've created a separate post about those issues as I'm assuming thats a Marketpress issue you wouldn't be able to provide support for.

    Thanks,

    -Ryan

  • Hakan

    Earlier when you mentioned that I should update the jQuery version, where do I go to do that? What file do I need to modify?

    It must be in your theme files, most likely in header.php or functions.php.

    I've created a separate post about those issues as I'm assuming thats a Marketpress issue you wouldn't be able to provide support for.

    You are right, it is a good idea to open a new topic in MarketPress category for that.

    Cheers,
    Hakan

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.