@context_bar@ | +
This version of the @package_name@ is a first stab at a service + contract offering a generalized interface to shipping operations + such as obtaining quotes for services and tracking shipments.
+ +Shipping goods can be a common occurrence on OpenACS
+ sites. Whether it is to ship goods sold through the
There are also many different shipping companies to choose from, + e.g. UPS, FedEx, Airborne Express, DHL and many others. Most of these + shippers have Internet based APIs for initiating shipments and + tracking parcels.
+ +Goal of the @package_name@ is to provide a single shipping + interface to OpenACS packages regardless of the actual shipping + method. Calling packages do not have to be aware of how shipments + are handled; this could be one of the aforementioned shipping + companies or an in-house solution.
+ +This version of the @package_name@ is very simple on purpose. The + complex nature of the problem combined with the multitude of + interfaces by shipping companies and the limited capabilities of the + current ACS Service Contract + API warrant a careful and deliberate approach. Future versions + will grow in capabilities while maitaining back-wards compatibility + where possible.
+ +As is, the @package_name@ provides two operations:
+ ++ ++ +RatesAndServicesSelection
+ +The RatesAndServicesSelection returns a list of services + offered by the shipper and their associated charges to ship the + given parcel from A to B. Services are identified by the shippers + service code.
+ +ServiceDescription
+ +The ServiceDescription operation returns the description of the + service level identified by the service code.
+ +
The @package_name@ only defines these operations. Concrete + functions that implement the operations of the contract have to be + written for each shipper. See the ACS Service contract for + details on writing implementations for service contracts.
+ +Note: This release has been tested with PostgreSQL + only. While the contract supports both databases I was not able to + test the Oracle version. Please report any problems you might find + in the OpenACS SDM.
+ ++ ++ +RatesAndServicesSelection
+ +The RatesAndServicesSelection operation takes 8 input arguments:
++
+ +- + +
+orig_country_iso:string
+ +The 2 letter ISO abbreviation of the country where the + shipment originates. See the countries table for a complete + list of ISO standard abbreviations. The countries table is + part of the Reference Data - Country package. E.g. 'US'.
+ +- + +
+orig_zip_code:string
+ +The zip code of the shipment's origin. E.g. '95062'.
+ +- + +
+dest_country_iso:string
+ +The 2 letter ISO abbreviation of the destination country of + the shipment. See the
+ +countries
table for a + complete list of ISO standard abbreviations. The countries + table is part of the Reference Data - Country + package. E.g. 'NL'.- + +
+dest_zip_code:string
+ +The zip code of the shipment's destination. E.g. '7812 + PC'
+ +- + +
+shipment_value:string
+ +The total value of the shipment. E.g. '49.99'.
+ +- + +
+value_currency_code:string
+ +The 3 letter abbreviation of the currency used to express + the shipment value in. See the
currencies
+ +- + +
+shipment_weight:string
+ +The total weight of the shipment. E.g. '7.8'.
+ +- + +
+weight_unit_of_measure:string
+ +The unit of measure of the shipment weight. E.g. 'lbs'.
+ +RatesAndServicesSelection returns a list of rates and services + in a single parameter: rates_and_services:string. The + rates_and_services value is a list of arrays. Each array contains + the service_code of service level and the total_charges for the + service. The following code example illustrates how the list + should be interpreted.
+ +++ ++ set rates_and_services [acs_sc_call "ShippingGateway" "RatesAndServicesSelection" \ + [list "$orig_country_iso" "$orig_zip_code" "$dest_country_iso" "$dest_zip_code" \ + "$shipment_value" "$value_currency_code" "$shipment_weight" "$weight_unit_of_measure"] \ + "$shipping_gateway"] + foreach service $rates_and_services { + array set rate_and_service $service + set total_charges $rate_and_service(total_charges) + set service_code $rate_and_service(service_code) + set service_description [acs_sc_call "ShippingGateway" "ServiceDescription" \ + "$service_code" \ + "$shipping_gateway"] + + } +
+ServiceDescription
+ +ServiceDescription has only one input argument: + service_code:string. The operation also returns a single + parameter: service_description:string. See the above code example + for an illustration of use of the ServiceDescription + operation.
+ +
The @package_name@ was designed and written by Bart Teeuwisse for Berklee College Of Music while + working as a subcontractor for furfly.net.
+ +The @package_name@ is free software; you can redistribute it + and/or modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version.
+ +The @package_name@ is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU General Public License for more details.
+ +A copy of the GNU General Public License is
+ included. If not write to the Free Software Foundation, Inc., 59
+ Temple Place, Suite 330, Boston, MA 02111-1307 USA
Index: openacs-4/packages/shipping-gateway/www/doc/index.css
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/shipping-gateway/www/doc/index.css,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/shipping-gateway/www/doc/index.css 21 May 2002 18:34:38 -0000 1.1
@@ -0,0 +1,5 @@
+p.note {
+ font-style: italic;
+ padding: 10;
+ background-color: lightgrey;
+}
Index: openacs-4/packages/shipping-gateway/www/doc/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/shipping-gateway/www/doc/index.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/shipping-gateway/www/doc/index.tcl 21 May 2002 18:34:38 -0000 1.1
@@ -0,0 +1,33 @@
+ad_page_contract {
+
+ Index to documentation of Shipping Service Contract.
+
+ @author Bart Teeuwisse Version 2, June 1991 The licenses for most software are designed to take away your
+ freedom to share and change it. By contrast, the GNU General
+ Public License is intended to guarantee your freedom to share and
+ change free software--to make sure the software is free for all
+ its users. This General Public License applies to most of the
+ Free Software Foundation's software and to any other program whose
+ authors commit to using it. (Some other Free Software Foundation
+ software is covered by the GNU Library General Public License
+ instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not
+ price. Our General Public Licenses are designed to make sure that
+ you have the freedom to distribute copies of free software (and
+ charge for this service if you wish), that you receive source code
+ or can get it if you want it, that you can change the software or
+ use pieces of it in new free programs; and that you know you can
+ do these things. To protect your rights, we need to make restrictions that forbid
+ anyone to deny you these rights or to ask you to surrender the
+ rights. These restrictions translate to certain responsibilities
+ for you if you distribute copies of the software, or if you modify
+ it. For example, if you distribute copies of such a program, whether
+ gratis or for a fee, you must give the recipients all the rights
+ that you have. You must make sure that they, too, receive or can
+ get the source code. And you must show them these terms so they
+ know their rights. We protect your rights with two steps: (1) copyright the
+ software, and (2) offer you this license which gives you legal
+ permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make
+ certain that everyone understands that there is no warranty for
+ this free software. If the software is modified by someone else
+ and passed on, we want its recipients to know that what they have
+ is not the original, so that any problems introduced by others
+ will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software
+ patents. We wish to avoid the danger that redistributors of a
+ free program will individually obtain patent licenses, in effect
+ making the program proprietary. To prevent this, we have made it
+ clear that any patent must be licensed for everyone's free use or
+ not licensed at all. The precise terms and conditions for copying, distribution and
+ modification follow. 0. This License applies to any program or other
+ work which contains a notice placed by the copyright holder saying
+ it may be distributed under the terms of this General Public
+ License. The "Program", below, refers to any such program or
+ work, and a "work based on the Program" means either the Program
+ or any derivative work under copyright law: that is to say, a work
+ containing the Program or a portion of it, either verbatim or with
+ modifications and/or translated into another language.
+ (Hereinafter, translation is included without limitation in the
+ term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are
+ not covered by this License; they are outside its scope. The act
+ of running the Program is not restricted, and the output from the
+ Program is covered only if its contents constitute a work based on
+ the Program (independent of having been made by running the
+ Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies
+ of the Program's source code as you receive it, in any medium,
+ provided that you conspicuously and appropriately publish on each
+ copy an appropriate copyright notice and disclaimer of warranty;
+ keep intact all the notices that refer to this License and to the
+ absence of any warranty; and give any other recipients of the
+ Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy,
+ and you may at your option offer warranty protection in exchange
+ for a fee. 2. You may modify your copy or copies of the
+ Program or any portion of it, thus forming a work based on the
+ Program, and copy and distribute such modifications or work under
+ the terms of Section 1 above, provided that you also meet all of
+ these conditions: a) You must cause the modified files to carry
+ prominent notices stating that you changed the files and the
+ date of any change. b) You must cause any work that you
+ distribute or publish, that in whole or in part contains or is
+ derived from the Program or any part thereof, to be licensed as
+ a whole at no charge to all third parties under the terms of
+ this License. c) If the modified program normally reads
+ commands interactively when run, you must cause it, when started
+ running for such interactive use in the most ordinary way, to
+ print or display an announcement including an appropriate
+ copyright notice and a notice that there is no warranty (or
+ else, saying that you provide a warranty) and that users may
+ redistribute the program under these conditions, and telling the
+ user how to view a copy of this License. (Exception: if the
+ Program itself is interactive but does not normally print such
+ an announcement, your work based on the Program is not required
+ to print an announcement.) These requirements apply to the modified work as a whole. If
+ identifiable sections of that work are not derived from the
+ Program, and can be reasonably considered independent and separate
+ works in themselves, then this License, and its terms, do not
+ apply to those sections when you distribute them as separate
+ works. But when you distribute the same sections as part of a
+ whole which is a work based on the Program, the distribution of
+ the whole must be on the terms of this License, whose permissions
+ for other licensees extend to the entire whole, and thus to each
+ and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or
+ contest your rights to work written entirely by you; rather, the
+ intent is to exercise the right to control the distribution of
+ derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the
+ Program with the Program (or with a work based on the Program) on
+ a volume of a storage or distribution medium does not bring the
+ other work under the scope of this License. 3. You may copy and distribute the Program (or
+ a work based on it, under Section 2) in object code or executable
+ form under the terms of Sections 1 and 2 above provided that you
+ also do one of the following: a) Accompany it with the complete
+ corresponding machine-readable source code, which must be
+ distributed under the terms of Sections 1 and 2 above on a
+ medium customarily used for software interchange; or, b) Accompany it with a written offer,
+ valid for at least three years, to give any third party, for a
+ charge no more than your cost of physically performing source
+ distribution, a complete machine-readable copy of the
+ corresponding source code, to be distributed under the terms of
+ Sections 1 and 2 above on a medium customarily used for software
+ interchange; or, c) Accompany it with the information you
+ received as to the offer to distribute corresponding source
+ code. (This alternative is allowed only for noncommercial
+ distribution and only if you received the program in object code
+ or executable form with such an offer, in accord with Subsection
+ b above.) The source code for a work means the preferred form of the work
+ for making modifications to it. For an executable work, complete
+ source code means all the source code for all modules it contains,
+ plus any associated interface definition files, plus the scripts
+ used to control compilation and installation of the executable.
+ However, as a special exception, the source code distributed need
+ not include anything that is normally distributed (in either
+ source or binary form) with the major components (compiler,
+ kernel, and so on) of the operating system on which the executable
+ runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering
+ access to copy from a designated place, then offering equivalent
+ access to copy the source code from the same place counts as
+ distribution of the source code, even though third parties are not
+ compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or
+ distribute the Program except as expressly provided under this
+ License. Any attempt otherwise to copy, modify, sublicense or
+ distribute the Program is void, and will automatically terminate
+ your rights under this License. However, parties who have
+ received copies, or rights, from you under this License will not
+ have their licenses terminated so long as such parties remain in
+ full compliance. 5. You are not required to accept this
+ License, since you have not signed it. However, nothing else
+ grants you permission to modify or distribute the Program or its
+ derivative works. These actions are prohibited by law if you do
+ not accept this License. Therefore, by modifying or distributing
+ the Program (or any work based on the Program), you indicate your
+ acceptance of this License to do so, and all its terms and
+ conditions for copying, distributing or modifying the Program or
+ works based on it. 6. Each time you redistribute the Program (or any
+ work based on the Program), the recipient automatically receives a
+ license from the original licensor to copy, distribute or modify
+ the Program subject to these terms and conditions. You may not
+ impose any further restrictions on the recipients' exercise of the
+ rights granted herein. You are not responsible for enforcing
+ compliance by third parties to this License. 7. If, as a consequence of a court judgment or
+ allegation of patent infringement or for any other reason (not
+ limited to patent issues), conditions are imposed on you (whether
+ by court order, agreement or otherwise) that contradict the
+ conditions of this License, they do not excuse you from the
+ conditions of this License. If you cannot distribute so as to
+ satisfy simultaneously your obligations under this License and any
+ other pertinent obligations, then as a consequence you may not
+ distribute the Program at all. For example, if a patent license
+ would not permit royalty-free redistribution of the Program by all
+ those who receive copies directly or indirectly through you, then
+ the only way you could satisfy both it and this License would be
+ to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable
+ under any particular circumstance, the balance of the section is
+ intended to apply and the section as a whole is intended to apply
+ in other circumstances. It is not the purpose of this section to induce you to infringe
+ any patents or other property right claims or to contest validity
+ of any such claims; this section has the sole purpose of
+ protecting the integrity of the free software distribution system,
+ which is implemented by public license practices. Many people
+ have made generous contributions to the wide range of software
+ distributed through that system in reliance on consistent
+ application of that system; it is up to the author/donor to decide
+ if he or she is willing to distribute software through any other
+ system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is
+ believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program
+ is restricted in certain countries either by patents or by
+ copyrighted interfaces, the original copyright holder who places
+ the Program under this License may add an explicit geographical
+ distribution limitation excluding those countries, so that
+ distribution is permitted only in or among countries not thus
+ excluded. In such case, this License incorporates the limitation
+ as if written in the body of this License. 9. The Free Software Foundation may publish
+ revised and/or new versions of the General Public License from
+ time to time. Such new versions will be similar in spirit to the
+ present version, but may differ in detail to address new problems
+ or concerns. Each version is given a distinguishing version number. If the
+ Program specifies a version number of this License which applies
+ to it and "any later version", you have the option of following
+ the terms and conditions either of that version or of any later
+ version published by the Free Software Foundation. If the Program
+ does not specify a version number of this License, you may choose
+ any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the
+ Program into other free programs whose distribution conditions are
+ different, write to the author to ask for permission. For
+ software which is copyrighted by the Free Software Foundation,
+ write to the Free Software Foundation; we sometimes make
+ exceptions for this. Our decision will be guided by the two goals
+ of preserving the free status of all derivatives of our free
+ software and of promoting the sharing and reuse of software
+ generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF
+ CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
+ PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN
+ WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
+ PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
+ IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE
+ RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.
+ SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+ NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW
+ OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER
+ PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED
+ ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+ SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+ USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO
+ LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED
+ BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE
+ WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS
+ BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.@title@
+
+
+
+
+
+
+ @context_bar@
+
+
+ GNU General Public License
+
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ Preamble
+
+ Terms and conditions for copying, distribution and modification
+
+
+
+
+
+
+
+
+
+