Yahoo Store Development
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
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>
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).
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.
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).
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.
In an RTML Template the “AND” operator looks like:
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.
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.
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).
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.
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
In an RTML Template the “>” operator looks like:
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”.
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.
1) To add “Bookmark & Share” button to store pages, go to www.Addthis.com first and receive the code from there.
There is the example of such a code:
<!– AddThis Button BEGIN –>
<!– AddThis Button END –>
Note: If you want to get the sharing statistics, you have to register on addthis.com.
2) Create a global variable -share-code (med-text) and place and paste the code into it. See more details here: http://www.alphastoredesign.com/blog/2010/03/11/how-to-add-global-or-local-properties ).
3) Open a list of store Templates. Then find custom Item-order template.
Click on it and open.
Find the RTML expression:
WHEN OR @price @sale-price
Click on WHEN.
Click the “New” button and create a TEXT operator. Then click the “Paste After”. After this click the “EDIT” button and set the value of TEXT operator to @-share-code
After these simple procedures the “Add This” button will appear on every item page near the “Add to Cart” button.
Within Yahoo Store RTML Template, this operator is showing as:
The operator takes color value and returns its blue component of RGB (red green blue) color model in numeric value between 0 and 255.
WITH= variable blue value BLUE @background-color WITH= variable red value RED @background-color WITH= variable green value GREEN @background-color BODY background-color COLOR red red - 20 green green - 20 blue blue - 20
At this example, we took Red Green and Blue color components from the global variable @background-color. Then, we are using these components to make the body background darker.
Within Yahoo Store RTML Template, this operator is showing as:
The purpose of this operator is to take an argument and convert it to a string.
Let us pretend, that one of our test item has “Saving on Quantity” price value, defined as: 30 5 125 10 200. Where: 1 item price is $30, 5 items price is $125 and 10 items price is $200.
At this case the property @price returns numerical array (30 5 125 10 200), while AS-STRING @price returns text string – 30 5 125 10 200