call us at (908).338.3992
 
About Us
Portfolio
System Additions for Store Pages
Custom Graphic Design. How It Works
/
BLOG: A few "tips" and "RTML secrets" of Yahoo store.

OUR BLOG: Yahoo Store from A to Z and RTML development "secrets".


Observation of Yahoo Floating Cart

After setting up the new Yahoo Floating Cart module on several Yahoo stores we found some PROS and CONS that we’d like to share with you.

NOTE: our observation is reflecting the recent status of this Yahoo module and could not be applied to further revisions and system updates. Also, these notes reflect our opinion only and could be used only as an informational source.

You can compare the Yahoo module we implemented at http://www.holytrinitystore.com/holy-family-icon-2762.html with our own floating cart module that we installed at www.1-800-Porcelain.com

PROS: 1) The Yahoo module includes the Floating Cart Manager which makes Cart tuning a pretty easy process. Settings include turning the Floating Cart on/off, defining Cart behavior on a page, and other options and useful functions for both versions (mini cart or floating cart).

2) The Floating cart has an attractive look and shows nice, up-to-date visual effects in a table layout

CONS: 1) The installation process is easy only for not-customized Stores (with Editor version 3.0). All other stores will experience difficulties with the Floating cart’s initial implementation. In some cases, it will require the RTML templates to be corrected and sometimes the Floating cart will not be installed at all. If your store templates generate the old page DOCTYPE, then unfortunately the Floating Cart layout will be messed up and unable to be corrected.

You could check the DOCTYPE of your store’s pages by looking at the first line of the page source before any other tags:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html><head><title>

This is an OLD doctype, which produces the compatibility problems with many present-day applications, including the Yahoo Floating Cart

The new doctype that goes with new RTML templates looks like this:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
<html><head><title>

2) The Yahoo Floating Cart only supports drop down select boxes to show product options, but does not support “Radio” buttons. It also does not support the “add-to-Cart” check boxes combined with an “Order” button (e.g. for accessories and main product)

3) The Yahoo Floating cart is hard to customize with its layout. Not all the classes are included in available CSS file forediting. For instance, the backgrounds (color or images) could be edited, but the width of the table is causing difficulty to change.

4) The Yahoo Floating cart table has a fixed position on a page (non-movable)

All these limitations are not affecting our Floating cart module which could be installed at any type of store. It supports all types of special modules (“Quick Shop”, “Free Gift on Shopping Cart”, Product options via Radio boxes, etc). Our module is fully customizable and displays the content of your store’s shopping cart precisely. Please call or e-mail us for more details and information.

RTML Operator “AS-LIST”

In an RTML template the newly created operator looks like:

AS-LIST type nil
        class nil
        id nil
        style nil
        title nil

This operator insert <ul>….</ul> or <ol>….</ol> lists html tags into the page code. The type of tag depends on the attribute type value, either :оrdered or :unordered

EXAMPLE

AS-LIST type :оrdered
  ITEM 
    TEXT "First Notation"
  ITEM
    TEXT "Second Notation"

The HTML code will be generated as:

<ol><li>First Notation</li><li>Second Notation</li></ol>

The Contents Page: more useful functions.

As you already may know (from the Yahoo User Guide), the Contents Tree page is located in the Advanced Toolbar ( a button called “Contents”), and it includes important advanced store functions:

1) The Contents page is the fastest way to access the store’s RTML Templates (by clicking the “Templates” button).

RTML Templates button

2) The Contents page displays the store structure visually (the store’s Content Tree).

All page IDs listed under the link INDEX are considered as “structured”, or included in the store structure.

Below the structured page IDs there is a white gap (white spot), which separates the “Structured” area from the “Basement”, a special location that holds non-structured pages.

Yahoo store contents area

Not all pages need to be structured (i.e. special system pages norder, nsearch, ind, etc.), but don’t forget to keep this area maintained on a regular basis. Keep in mind that unstructured pages are not visible in the store Menu table and will not leave behind a “breadcrumbs” link trail.

To “structure” a section page, simply list it within the Content property of the home page (Index). Only list a main section pages to avoid a “Number of Menu Links limitation” reminder.

The “+” sign is located next to a bolded section page link, and opens up to reveal other ID’s (“child” IDs). The section page is a “Parent” for all the pages listed within.

If the page ID has a small button [SHOW PARENTS] from the right side, you could click on it to reveal all parent pages of this page. It is very useful if you have a page listed in multiple categories and need to find out where they are all located.

3) The Contents page has a unique button [NEW]. This is the only place in your editor to manually create store pages with a custom page ID (for instance, keyword-related page ID) and to select a desirable page type from the list (drop-down menu).

4) The Contents page has another special area called “Siberia, which appears after you “CUT” a page.

If you remove your pages from the store structure, they will be put into the “Basement.” They could still be accessible from the published store by direct links; however, the pages that are “Cut” will be sent to “Siberia” (or the Clipboard) and could not be accessed or searched from within your on-line store.

You could use “Siberia”, for example, to store unavailable products if you are planning to use them in the future.

If you end up having a lot of items in Siberia, keep them organized:  create a page called “Unavailable Items”, cut it and then list all the Siberia IDs in the content of this page. From now on, you will only see the link “Unavailable Items” at your Clipboard.

Yahoo Store Clipboard

RTML Operator “AND”

In an RTML Template the “AND” operator looks like:

AND

The operator AND may contain operators and arguments. If any of them returns false or nil, then the operator AND returns false (nil). If all arguments return true or contain some values, the operator returns the value of last arguments.

This operator could be used in combination with the “IF”, “WHEN”, “OR” and “WITH=” operators.

EXAMPLES:

IF test AND
          @custom-free-shipping
          < value1 @ship-weight
            value2 2
   then TEXT "Free Shipping For This Item"
   else nil

In this example, we are verifying if the “Free Shipping” option could be applied for a particular item. If the property @custom-free-shipping is “ON” and the item shipping weight is less than 2 (lb), then the text “Free Shipping For This Item” will appear on the page spot.

IF test AND
          @orderable
          OR
            @sale-price
            @price
   then TEXT "This is Item"
   else nil

In this example we are checking if this is the Item page. If the orderable property is set to the value “Yes” and the sale-price or price is defined, then the text “This is the Product page” will appear on the page spot.

Custom Availability

By default, the Yahoo Store System uses pre-defined “availability” options.

In this article, we will show you how to implement a “Custom availability” text field together with a pre-defined property in your store. You should have basic RTML knowledge to use this method.

In order to define “custom availability”, open a list of store Templates. Within the Custom templates column find the template that corresponds to the Item order (this template is a copy of a default template called Item-order).

Store template Item-order

In this RTML template find the RTML expression WHEN @availability:

WHEN @availability
  DIV class "itemavailable"
    TEXT STRING-APPEND
           GRAB
             TAG tag "em"
               TEXT "Availability: "
           @availability

In this expression change the variable @availability to customavailability:

WHEN customavailability
  DIV class "itemavailable"
    TEXT STRING-APPEND
           GRAB
             TAG tag "em"
               TEXT "Availability: "
           customavailability

Create a New RTML operator WITH= and paste the above expression into it. In this operator, assign the variable value to customavailability:

WITH= variable customavailability
      value nil
  WHEN customavailability
    DIV class "itemavailable"
      TEXT STRING-APPEND
             GRAB
               TAG tag "em"
                 TEXT "Availability: "
             customavailability

Create a New RTML operator IF to check @custom-availability and @availability fields. Pass IF to WITH= operator:

WITH= variable customavailability
      value IF test NONEMPTY @custom-availability
               then @custom-availability
               else @availability
  WHEN customavailability
    DIV class "itemavailable"
      TEXT STRING-APPEND
             GRAB
               TAG tag "em"
                 TEXT "Availability: "
             customavailability

Finally, define the custom property @custom-availability (type text) in the item page or at the item type and fulfill it with its necessary value.

RTML Operator “ACCUMULATE”

In an RTML Template, the “ACCUMULATE” operator looks like:

ACCUMULATE result_var nil
           iter_var nil
           result_init nil
           sequence nil

This operator accumulates certain values in result_var. At the beginning of iteration, result_var holds the value of the result_init variable. Sequence holds the list of objects (for example: the list of items). The ACCUMULATE operator takes elements from this list and passes them into iter_var variable one by one. Then the ACCUMULATE operator evaluates the expression assigned within it and passes the result to result_var.

Let’s look at the following example:

WITH= variable maximum-price
      value ACCUMULATE result_var maxprice
                       iter_var item
                       result_init MINNUM
                       sequence @contents
              MAXIMUM
                maxprice
                WITH-OBJECT item
                  ELEMENT position 0
                          sequence OR
                                     @price
                                     @sale-#price
  WITH= variable minimum-price
        value ACCUMULATE result_var minprice
                         iter_var item
                         result_init MAXNUM
                         sequence @contents
                MINIMUM
                  minprice
                  WITH-OBJECT item
                    ELEMENT position 0
                            sequence OR
                                       @price
                                       @sale-price
    TEXT GRAB
           "price from $"
           TEXT minimum-price
           " to $"
           TEXT maximum-price

In this example, we are defining the minimum and maximum price for the products that is in the listing page’s built-in property contents. For this purpose, we are also using RTML operators MINNUM and MAXNUM. They hold the minimum and maximum numbers in the Yahoo store system. If we want to get the minimum price, then we have to determine the maximum value first in result_init , if we want to obtain the maximum item price, then we have to determine the minimum value first in result_init. Within the ACCUMULATE operator we compare item_var and item price. Then the result will passed to item_var

RTML Operator “>” [greater than]

In an RTML Template the “>” operator looks like:

> value1 nil
  value2 nil

The purpose of this operator is to compare two numbers. If the first argument is greater than the second one, then the operator returns “true”.

EXAMPLES:

TEXT IF test > value1 @custom-variable
               value2 20
        then "Your number greater than 20"
        else "Your number is less or equal to 20"

As a result, if the number defined in the custom property “custom-variable” will be greater than 20, then the text “Your number is greater than 20” will appear at the page spot, otherwise the text ” Your number is less or equal to 20” will appear.

RTML Operator “<” [less than]

In an RTML Template the “<” operator looks like:

< value1 nil
  value2 nil

The purpose of this operator is to compare two numbers. If the first argument is less than the second one, then the operator returns “true”.

This operator could be used in combination with “IF”, “FOR” and “WHEN” operators.

EXAMPLES:

WHEN < value1 @custom-variable
       value2 20
  TEXT "Your number is less than 20"

So, if the number defined in the custom property “custom-variable” will be less than 20,  then the text  “Your number is less than 20” will appear at the page spot.

Bulk upload of Icon and Inset images

If you didn’t already know, the Yahoo built-in function “Multiple Image Upload” (located at the “Control” page) does not allow you to upload Icon and Inset images.

Usually you have to go through all the pages manually and upload the icon or inset one by one, which takes up a lot of useful time.

How this process could be automated:

You can use a combination of two procedures: “Database Upload” and “Multiple Image Upload.”

1) Create an Excel .CSV spreadsheet file with two columns: ID and Icon

In each row enter the corresponding values that apply to the two columns: the page ID (where the Icon or inset should be uploaded to) and the image name (without the file extension). List as many page ID’s as you need.

Save this file in .CSV format and upload it to your store using the “Database Upload” feature. Make sure that you click the ADD button when uploading. Never click the REBUILD button, because it will wipe out your entire store content.

2) Create a ZIP archive with all the images you had listed in your .CSV file. Upload this file through Yahoo’s “Multiple Image Upload” feature.

From now on, all the pages listed in your spreadsheet will display the Icon image that you defined and uploaded.

3) Repeat these two steps for your Inset images. Instead of having an Icon column in your .CSV file, name it Inset and type in the inset image names for each corresponding page row.

You could combine the .CSV document to have the Icon and Inset columns in one file.

Pay attention: if the column Icon or Inset will have an empty cell, but the corresponded page already has these images uploaded, then the icon or inset will be erased from the page during the DB upload.

If you are interested in having more than one inset at store pages and want to have customized Inset names, visit our “Add-ons” page:  http://www.alphastoredesign.com/additions/multiple-insets.html

For more information regarding uploading .CSV data, please visit the Yahoo help page:  http://help.yahoo.com/l/us/yahoo/smallbusiness/store/edit/advanced/advanced-01.html

How to access the store RTML templates list

Use the page’s Editor toolbar:
Click [Templates] or [Page Template] to open the last visited template, then you’ll see the button [Templates] at the top toolbar.

Or Click [Contents], get into the Contents Tree page, then you’ll see the button [Templates] at the top of the page.

RTML Templates button