|
Home > Archive > Commerce Server General > February 2004 > Shipping Methods and whatnot
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Shipping Methods and whatnot
|
|
| Ryan Ross 2004-02-07, 9:35 am |
| I posted a while back, people suggested looking at MinMax ship. Interesting,
but not quite what I am looking for.
Here's the setup: I am running CS 2002 on a Win2k3 servers
(Webserver/Commerce Server frontend, SQL/AD backend). Retail2002 code base.
I am trying to integrate some UPS code (Rates & Services) into this site. I
am trying to find where all the current shipping methods are kept...that is
when a user gets to the checkout page, instead of just the built in methods
(MinMax, Ship by Weight, Ship by Quantity, etc.)
I want to add the options that the UPS server sends to the site. Is there a
dataset, table, something (temporary structure) where these methods are
held? I mean, when someone chooses a a product...say a book for $30, 5lbs in
weight...Commerce server, by this point, has chosen all the correct methods
(Ship by Weight = 5, Ship by Price = 30, Ship by Quantity = 1). Are these
options held in some structure (again, temporary), where I can use the
..addRow method or whatever to add in the options that UPS sends me
(realtime, XML) to add to the existing structure?
Additionally, if anyone knows if adding in extra data at this point will
mess up later pipelines, code, etc.? I mean, is there a point after this
page (Checkout) where CS will try to lookup a shipping method, and instead
of using a regular method '{09832458039458304958304}', it would freak out on
'UPS Next Day'?
I am trying to make this site as realtime as possible, so the data
generated after this page may not be correct (it would be ok for an hour or
so, probably not after a few days, NOT worth storing in the database).
Anyone have any ideas? Microsoft people? Just the name of the structure,
anything.
Thank you and good night,
Ryan Ross
| |
| Erik Mavrinac [MSFT] 2004-02-07, 9:36 am |
| The shipping calculation modes of MinMaxShip (calculate by subtotal, quantity, or weight) are hard-coded into the business logic of the MinMaxShipping
component. There is no configuration input to add further keys or settings by which to group shipments. For a case like this you'll need to take a look at
writing your own business logic, in the form of a shipping-method-specific pipeline component.
You'll want to take a close look at the multiple-shipping architecture used in CS's Total pipeline, particularly the documentation on it. You can add your own
shipping methods to the master table (the ShippingConfig table in the commerce database) used by the ShippingMethodRouter component to determine
which shipping method handler to instantiate to handle a particular shipping method ID specified in a shipment instance attached to an order form. By
default this table starts out empty unless you are using a sample solution site. You can create your own unique shipping method ID (a unique GUID)
corresponding to the UPS shipping method you are creating, and insert a row into the ShippingConfig table linking to a COM ProgID of a shipping method
handler. On execution of the Total pipeline, the ShippingMethodRouter will enumerate the set of shipping method IDs in each order form, instantiate the
ProgID of the corresponding component, and pass order information to it for processing.
The component to which the ProgID corresponds is a shipping-specific standard Orders COM pipeline component. (There is information in the CS
documentation and SDK for how to write your own component.) This component would handle setting up shipping keys needed by your application/site to
handle UPS' information for calculating shipping costs, and to store for display purposes. As with any other dictionary keys, temporary information that does
not need to be stored with the order would use dictionary key names starting with underscore; items that should be preserved, e.g. to display as part of a
completed order summary, would be placed under keys that do not start with underscore.
As for having later pipeline invocations be messed up with respect to the new shipping method, that's not normally the case since you run the Total pipeline
only prior to checkout, so that the calculated shipping information in the order remains the same after that. Your primary concern would be in ensuring that
dictionary key names you use will not conflict with other pipeline components or site code; a good way to prevent such collisions is to use a prefix for the
key names that makes them specific to you, e.g. "my_" or "UPS_" or something like that.
Erik
--------------------
From: "Ryan Ross" <ryanr@nni.com>
Subject: Shipping Methods and whatnot
Date: Fri, 2 Jan 2004 02:39:46 -0500
I posted a while back, people suggested looking at MinMax ship. Interesting,
but not quite what I am looking for.
Here's the setup: I am running CS 2002 on a Win2k3 servers
(Webserver/Commerce Server frontend, SQL/AD backend). Retail2002 code base.
I am trying to integrate some UPS code (Rates & Services) into this site. I
am trying to find where all the current shipping methods are kept...that is
when a user gets to the checkout page, instead of just the built in methods
(MinMax, Ship by Weight, Ship by Quantity, etc.)
I want to add the options that the UPS server sends to the site. Is there a
dataset, table, something (temporary structure) where these methods are
held? I mean, when someone chooses a a product...say a book for $30, 5lbs in
weight...Commerce server, by this point, has chosen all the correct methods
(Ship by Weight = 5, Ship by Price = 30, Ship by Quantity = 1). Are these
options held in some structure (again, temporary), where I can use the
.addRow method or whatever to add in the options that UPS sends me
(realtime, XML) to add to the existing structure?
Additionally, if anyone knows if adding in extra data at this point will
mess up later pipelines, code, etc.? I mean, is there a point after this
page (Checkout) where CS will try to lookup a shipping method, and instead
of using a regular method '{09832458039458304958304}', it would freak out on
'UPS Next Day'?
I am trying to make this site as realtime as possible, so the data
generated after this page may not be correct (it would be ok for an hour or
so, probably not after a few days, NOT worth storing in the database).
Anyone have any ideas? Microsoft people? Just the name of the structure,
anything.
Thank you and good night,
Ryan Ross
--
This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm
Note: For the benefit of the community-at-large, all responses to this message are best directed to the newsgroup/thread from which they originated.
| |
| Ryan Ross 2004-02-07, 9:36 am |
| Right, will do. One other question, and exactly on the ball with
multiple-shipping. What do I do so that the shipping selector automatically
defaults to multiple-shipping? The addresses will probably be the same, but
the shipping options will not.
Thanks,
Ryan
"Erik Mavrinac [MSFT]" <Erik_Mavrinac@online.microsoft.com> wrote in message
news:J7qTAwj1DHA.2712@cpmsftngxa07.phx.gbl...
> The shipping calculation modes of MinMaxShip (calculate by subtotal,
quantity, or weight) are hard-coded into the business logic of the
MinMaxShipping
> component. There is no configuration input to add further keys or settings
by which to group shipments. For a case like this you'll need to take a look
at
> writing your own business logic, in the form of a shipping-method-specific
pipeline component.
>
> You'll want to take a close look at the multiple-shipping architecture
used in CS's Total pipeline, particularly the documentation on it. You can
add your own
> shipping methods to the master table (the ShippingConfig table in the
commerce database) used by the ShippingMethodRouter component to determine
> which shipping method handler to instantiate to handle a particular
shipping method ID specified in a shipment instance attached to an order
form. By
> default this table starts out empty unless you are using a sample solution
site. You can create your own unique shipping method ID (a unique GUID)
> corresponding to the UPS shipping method you are creating, and insert a
row into the ShippingConfig table linking to a COM ProgID of a shipping
method
> handler. On execution of the Total pipeline, the ShippingMethodRouter will
enumerate the set of shipping method IDs in each order form, instantiate the
> ProgID of the corresponding component, and pass order information to it
for processing.
>
> The component to which the ProgID corresponds is a shipping-specific
standard Orders COM pipeline component. (There is information in the CS
> documentation and SDK for how to write your own component.) This component
would handle setting up shipping keys needed by your application/site to
> handle UPS' information for calculating shipping costs, and to store for
display purposes. As with any other dictionary keys, temporary information
that does
> not need to be stored with the order would use dictionary key names
starting with underscore; items that should be preserved, e.g. to display as
part of a
> completed order summary, would be placed under keys that do not start with
underscore.
>
> As for having later pipeline invocations be messed up with respect to the
new shipping method, that's not normally the case since you run the Total
pipeline
> only prior to checkout, so that the calculated shipping information in the
order remains the same after that. Your primary concern would be in ensuring
that
> dictionary key names you use will not conflict with other pipeline
components or site code; a good way to prevent such collisions is to use a
prefix for the
> key names that makes them specific to you, e.g. "my_" or "UPS_" or
something like that.
>
> Erik
>
>
>
> --------------------
> From: "Ryan Ross" <ryanr@nni.com>
> Subject: Shipping Methods and whatnot
> Date: Fri, 2 Jan 2004 02:39:46 -0500
>
> I posted a while back, people suggested looking at MinMax ship.
Interesting,
> but not quite what I am looking for.
>
> Here's the setup: I am running CS 2002 on a Win2k3 servers
> (Webserver/Commerce Server frontend, SQL/AD backend). Retail2002 code
base.
> I am trying to integrate some UPS code (Rates & Services) into this site.
I
> am trying to find where all the current shipping methods are kept...that
is
> when a user gets to the checkout page, instead of just the built in
methods
> (MinMax, Ship by Weight, Ship by Quantity, etc.)
>
> I want to add the options that the UPS server sends to the site. Is there
a
> dataset, table, something (temporary structure) where these methods are
> held? I mean, when someone chooses a a product...say a book for $30, 5lbs
in
> weight...Commerce server, by this point, has chosen all the correct
methods
> (Ship by Weight = 5, Ship by Price = 30, Ship by Quantity = 1). Are these
> options held in some structure (again, temporary), where I can use the
> .addRow method or whatever to add in the options that UPS sends me
> (realtime, XML) to add to the existing structure?
>
> Additionally, if anyone knows if adding in extra data at this point will
> mess up later pipelines, code, etc.? I mean, is there a point after this
> page (Checkout) where CS will try to lookup a shipping method, and instead
> of using a regular method '{09832458039458304958304}', it would freak out
on
> 'UPS Next Day'?
>
> I am trying to make this site as realtime as possible, so the data
> generated after this page may not be correct (it would be ok for an hour
or
> so, probably not after a few days, NOT worth storing in the database).
>
> Anyone have any ideas? Microsoft people? Just the name of the structure,
> anything.
>
> Thank you and good night,
>
> Ryan Ross
>
>
>
>
>
> --
>
> This posting is provided "AS IS" with no warranties, and confers no
rights. Use of included script samples are subject to the terms specified at
> http://www.microsoft.com/info/cpyright.htm
>
> Note: For the benefit of the community-at-large, all responses to this
message are best directed to the newsgroup/thread from which they
originated.
| |
| Erik Mavrinac [MSFT] 2004-02-07, 9:37 am |
| Not sure what you mean here. The multiple shipping system pipeline components always try to resolve multiple shipments - if there is only one shipment the
component only loops once to handle that shipment. If you mean is there a way to inform the components that the address field for all shipments in an order
are going to the same address, without having to set the address IDs in your site code - you need to set the correct address information for each shipment.
Erik
--------------------
From: "Ryan Ross" <ryanr@nni.com>
Newsgroups: microsoft.public.commerceserver.general
Subject: Re: Shipping Methods and whatnot
Date: Sat, 10 Jan 2004 00:51:40 -0500
Organization: Posted via Supernews, http://www.supernews.com
Message-ID: <vvv4np7fju2v6f@corp.supernews.com>
References: <vva82rmnb03u8d@corp.supernews.com> <J7qTAwj1DHA.2712@cpmsftngxa07.phx.gbl>
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
X-Complaints-To: abuse@supernews.com
Lines: 134
Path: cpmsftngxa07.phx.gbl!cpmsftngxa10.phx.gbl!TK2MSFTNGXA05.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfeed00.sul.t-online.de!t-online.de!
newsfeed.icl.net!newsfeed.fjserv.net!proxad.net!news.tele.dk!news.tele.dk!small.news.tele.dk!sn-xit-02!sn-xit-01!sn-post-01!supernews.com!
corp.supernews.com!not-for-mail
Xref: cpmsftngxa07.phx.gbl microsoft.public.commerceserver.general:12933
X-Tomcat-NG: microsoft.public.commerceserver.general
Right, will do. One other question, and exactly on the ball with
multiple-shipping. What do I do so that the shipping selector automatically
defaults to multiple-shipping? The addresses will probably be the same, but
the shipping options will not.
Thanks,
Ryan
"Erik Mavrinac [MSFT]" <Erik_Mavrinac@online.microsoft.com> wrote in message
news:J7qTAwj1DHA.2712@cpmsftngxa07.phx.gbl...
> The shipping calculation modes of MinMaxShip (calculate by subtotal,
quantity, or weight) are hard-coded into the business logic of the
MinMaxShipping
> component. There is no configuration input to add further keys or settings
by which to group shipments. For a case like this you'll need to take a look
at
> writing your own business logic, in the form of a shipping-method-specific
pipeline component.
>
> You'll want to take a close look at the multiple-shipping architecture
used in CS's Total pipeline, particularly the documentation on it. You can
add your own
> shipping methods to the master table (the ShippingConfig table in the
commerce database) used by the ShippingMethodRouter component to determine
> which shipping method handler to instantiate to handle a particular
shipping method ID specified in a shipment instance attached to an order
form. By
> default this table starts out empty unless you are using a sample solution
site. You can create your own unique shipping method ID (a unique GUID)
> corresponding to the UPS shipping method you are creating, and insert a
row into the ShippingConfig table linking to a COM ProgID of a shipping
method
> handler. On execution of the Total pipeline, the ShippingMethodRouter will
enumerate the set of shipping method IDs in each order form, instantiate the
> ProgID of the corresponding component, and pass order information to it
for processing.
>
> The component to which the ProgID corresponds is a shipping-specific
standard Orders COM pipeline component. (There is information in the CS
> documentation and SDK for how to write your own component.) This component
would handle setting up shipping keys needed by your application/site to
> handle UPS' information for calculating shipping costs, and to store for
display purposes. As with any other dictionary keys, temporary information
that does
> not need to be stored with the order would use dictionary key names
starting with underscore; items that should be preserved, e.g. to display as
part of a
> completed order summary, would be placed under keys that do not start with
underscore.
>
> As for having later pipeline invocations be messed up with respect to the
new shipping method, that's not normally the case since you run the Total
pipeline
> only prior to checkout, so that the calculated shipping information in the
order remains the same after that. Your primary concern would be in ensuring
that
> dictionary key names you use will not conflict with other pipeline
components or site code; a good way to prevent such collisions is to use a
prefix for the
> key names that makes them specific to you, e.g. "my_" or "UPS_" or
something like that.
>
> Erik
>
>
>
> --------------------
> From: "Ryan Ross" <ryanr@nni.com>
> Subject: Shipping Methods and whatnot
> Date: Fri, 2 Jan 2004 02:39:46 -0500
>
> I posted a while back, people suggested looking at MinMax ship.
Interesting,
> but not quite what I am looking for.
>
> Here's the setup: I am running CS 2002 on a Win2k3 servers
> (Webserver/Commerce Server frontend, SQL/AD backend). Retail2002 code
base.
> I am trying to integrate some UPS code (Rates & Services) into this site.
I
> am trying to find where all the current shipping methods are kept...that
is
> when a user gets to the checkout page, instead of just the built in
methods
> (MinMax, Ship by Weight, Ship by Quantity, etc.)
>
> I want to add the options that the UPS server sends to the site. Is there
a
> dataset, table, something (temporary structure) where these methods are
> held? I mean, when someone chooses a a product...say a book for $30, 5lbs
in
> weight...Commerce server, by this point, has chosen all the correct
methods
> (Ship by Weight = 5, Ship by Price = 30, Ship by Quantity = 1). Are these
> options held in some structure (again, temporary), where I can use the
> .addRow method or whatever to add in the options that UPS sends me
> (realtime, XML) to add to the existing structure?
>
> Additionally, if anyone knows if adding in extra data at this point will
> mess up later pipelines, code, etc.? I mean, is there a point after this
> page (Checkout) where CS will try to lookup a shipping method, and instead
> of using a regular method '{09832458039458304958304}', it would freak out
on
> 'UPS Next Day'?
>
> I am trying to make this site as realtime as possible, so the data
> generated after this page may not be correct (it would be ok for an hour
or
> so, probably not after a few days, NOT worth storing in the database).
>
> Anyone have any ideas? Microsoft people? Just the name of the structure,
> anything.
>
> Thank you and good night,
>
> Ryan Ross
>
>
>
>
>
> --
>
> This posting is provided "AS IS" with no warranties, and confers no
rights. Use of included script samples are subject to the terms specified at
> http://www.microsoft.com/info/cpyright.htm
>
> Note: For the benefit of the community-at-large, all responses to this
message are best directed to the newsgroup/thread from which they
originated.
--
This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm
Note: For the benefit of the community-at-large, all responses to this message are best directed to the newsgroup/thread from which they originated.
|
|
|
|
|