sorry, I was out of reach of a connexion for several days and now I've
only one minute ..
here what I've got

On Fri, Jun 12, 2009 at 6:09 AM, Hannes Calitz<[email protected]> wrote:
> Either I am understanding the entire process completely wrong, or yes it
> does, as displayed in the highlighted line here:
> http://paste.plone.org/28458
>
> 2009/6/11 Lucie Lejard <[email protected]>
>>
>> well, does the interface IFlatRateSettings have an attribute called
>> flatrate_option ?
>> --
>> S i x  F e e t  U p ,  I n c .  |  http://www.sixfeetup.com
>> Phone: +1 (317) 861-5948 x605
>> ANNOUNCING the first Plone Immersive Training Experience | Sept. 10-11-12,
>> 2009
>> http://www.sixfeetup.com/immerse
>>
>>
>>
>> On Thu, Jun 11, 2009 at 1:17 AM, hannesc<[email protected]> wrote:
>> >
>> > OK, so I got the admin part working. Now just to get the actual
>> > shipping calculated.
>> >
>> > When checking out, I get the following error:
>> >
>> > Traceback (innermost last):
>> >  Module ZPublisher.Publish, line 119, in publish
>> >  Module ZPublisher.mapply, line 88, in mapply
>> >  Module ZPublisher.Publish, line 42, in call_object
>> >  Module Products.PloneGetPaid.browser.checkout, line 353, in __call__
>> >  Module getpaid.wizard._wizard, line 38, in __call__
>> >  Module getpaid.wizard._wizard, line 28, in update
>> >  Module getpaid.wizard._wizard, line 263, in update
>> >  Module Products.PloneGetPaid.browser.checkout, line 743, in update
>> >  Module Products.PloneGetPaid.browser.checkout, line 729, in
>> > setupShippingOptions
>> >  Module getpaid.flatrateshipping2.rates, line 33, in getRates
>> > AttributeError: 'InterfaceClass' object has no attribute
>> > 'flatrate_option'
>> >
>> > I had a look at the files, and I can't quite figure out what is wrong:
>> >
>> >  getpaid.flatrateshipping2.rates looks as follows:
>> > http://paste.plone.org/28429
>> >
>> > The highlighted line is where the problem occurs. I went and had a
>> > look, but *sigh* I don't know what the heck is wrong.
>> >
>> >  getpaid.flatrateshipping2.interfaces looks as follows:
>> > http://paste.plone.org/28430
>> >
>> > There is probably a simple solution to my problem, but I don't know
>> > what it is. Anyone have any ideas?
>> >
>> > Thanks
>> > Hannes
>> >
>> > On Jun 10, 7:26 am, Matt Barkau <[email protected]> wrote:
>> >> +1
>> >> Also, can anyone explain the syntax of context.context, in
>> >> vocabularies.py
>> >> ?:
>> >> def ShippingMethods( context ):
>> >>     adapters = component.getAdapters( (context.context,),
>> >> interfaces.IShippingMethod )
>> >> Thanks!
>> >>
>> >> On Mon, Jun 8, 2009 at 12:03 AM, hannesc <[email protected]> wrote:
>> >>
>> >> > Thanks for the feedback. Is there anyway that either of you might
>> >> > post
>> >> > your working copy somewhere for me to have a look at? I am struggling
>> >> > to get it working, and my client is in a bit of a rush. O.o
>> >>
>> >> > Thanks :)
>> >>
>> >> > On Jun 5, 12:21 pm, danielle davout <[email protected]>
>> >> > wrote:
>> >> > > as Juan Carlos did :)
>> >>
>> >> > > On Fri, Jun 5, 2009 at 11:12 AM, danielle
>> >>
>> >> > > davout<[email protected]> wrote:
>> >> > > > For me, today and as far as I "know" :
>> >> > > > FlatRateShippping doesn't work out of the box fault of the
>> >> > > > missing
>> >> > > > admin plugin, but if  one follows the example of getpaid.ups as
>> >> > > > Hannesc (or I did ) to make it, it is functional :
>> >> > > > a selection of the shipping methods is proposed to the client via
>> >> > > > a
>> >> > form,
>> >> > > > the shipping_cost of the order is computed (once a  order is
>> >> > > > created =
>> >> > > > self.createTransientOrder())
>> >> > > > the problem is that getpaid.core.cart.CartItemTotals object has
>> >> > > > not
>> >> > > > the right interface IShippableOrder when
>> >> > > > the Shipping Price is wanted in the form cart-listing.....
>> >>
>> >> > > > On Fri, Jun 5, 2009 at 10:23 AM, Hannes Calitz<[email protected]>
>> >> > wrote:
>> >> > > >> What I require is some way of just charging a flat fee for any
>> >> > > >> order
>> >> > to be
>> >> > > >> shipped to anyone. As the client will only be shipping locally,
>> >> > > >> he
>> >> > decided
>> >> > > >> to just charge a single amount for every order.
>> >>
>> >> > > >> Flat Rate shipping seemed like the solution, but alas, it
>> >> > > >> doesn't
>> >> > work. :(
>> >>
>> >> > > >> 2009/6/5 danielle davout <[email protected]>
>> >>
>> >> > > >>> Do you make a difference between shipment and shipping ?
>> >> > > >>> shipping being related to a cart (as a collection of items to
>> >> > > >>> be
>> >> > > >>> shipped to anybody, anywhere), shipment to an order (labelled
>> >> > > >>> goods
>> >> > to
>> >> > > >>> be received somewhere by somebody that would be charged for);
>> >> > > >>> indeed
>> >> > > >>> how can you price a shipment if you don't know the destination
>> >> > > >>> of the
>> >> > > >>> goods (if the client did not give the necessary informations in
>> >> > > >>> "completing a bit" an order?)
>> >> > > >>> Why in cart.py shipping and shipment are mixed ?
>> >> > > >>>   def getShippingCost( self ):
>> >> > > >>>        if not interfaces.IShipment.providedBy( self ):
>> >> > > >>>            return 0
>> >> > > >>>        return decimal.Decimal( str( self.shipping_cost ) )
>> >> > > >>> I'm really confused...
>> >> > > >>> 2009/6/4 Juan Carlos Coruña <[email protected]>:
>> >> > > >>> > I had the same problem and didn't found the solution. some
>> >> > > >>> > people
>> >> > > >>> > already
>> >> > > >>> > reported this.
>> >>
>> >> > > >>> > I tried to add a plugin to getpaid.flatrateshipping in order
>> >> > > >>> > to get
>> >> > the
>> >> > > >>> > config panel, without success.
>> >>
>> >> > > >>> > Finally, I decided to go with IShippingRateService (look at
>> >> > getpaid.ups
>> >> > > >>> > for
>> >> > > >>> > an example) instead of IShippingMethod.
>> >>
>> >> > > >>> > 2009/6/4 hannesc <[email protected]>
>> >>
>> >> > > >>> >> So with the payment processor I was working on, finally
>> >> > > >>> >> completed,
>> >> > I
>> >> > > >>> >> moved over to the shipping. I want to use flat rate shipping
>> >> > > >>> >> for
>> >> > now.
>> >> > > >>> >> When I install it however, there is no way of setting the
>> >> > > >>> >> values
>> >> > for
>> >> > > >>> >> it, and even when I purchase a shippable object, the
>> >> > > >>> >> shipping is
>> >> > still
>> >> > > >>> >> 0 on checkout.
>> >>
>> >> > > >>> >> I started looking around, and I found that the Flat Rate
>> >> > > >>> >> Shipping
>> >> > has
>> >> > > >>> >> no config page.
>> >>
>> >> > > >>> >> My question is this: Has anyone successfully used flat rate
>> >> > shipping
>> >> > > >>> >> on GetPaid, and if so, how?
>> >>
>> >> > > >>> >> Thanks guys
>> > >
>> >
>>
>>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"getpaid-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/getpaid-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

from urllib2 import Request, urlopen, URLError
import logging
import elementtree.ElementTree as etree

from zope import interface, schema, component
from zope.app.container.contained import Contained
from persistent import Persistent
from zope.app.interface import queryType, providedBy

from Products.CMFCore.utils import getToolByName

from getpaid.core.interfaces import IShippableLineItem, IStoreSettings, 
IShippingMethodRate, IOriginRouter,IStore
from spirlux.sandbox.interfaces import IMyShippingRateService
import interfaces
from getpaid.flatrateshipping.flatrate import FlatRateShippingAdapter


log = logging.getLogger("spirlux.sandbox")
class MyResponse:
    """An object representing a response from me...mimic ups ... will contain 
status/error info and possibly a list of 
shipments"""
    shipments = []
    error = None


class MyShippingRateService ( Persistent, Contained ):
    """
    cf rates.py ups
    """
    interface.implements(interfaces.IMyShippingRateService, 
interfaces.MySettings)

    def __init__( self ):
        # initialize defaults from schema
        for name, field in schema.getFields( interfaces.MySettings ).items():
            field.set( self, field.query( self, field.default ) )
        super( MyShippingRateService, self).__init__()


    def getRates( self, order ):
        """
        given an order object, return a set of shipping method rate objects
        for available shipping options, on error raises an exception.
        """
        # ick.. get a hold of the store
        # this is a little gross, we need some access to context
        context = component.queryUtility( IStore )
        if context is None:
            from Products.CMFCore.utils import getToolByName
            ob = None
            for i in order.shopping_cart.values():
                if IShippableLineItem.providedBy( i ):
                    ob = i.resolve()
            if ob is None:
                raise AttributeError("can't get store, TODO - please switch 
processors settings to utility adapters")
            context = getToolByName( ob, 'portal_url').getPortalObject()


        FRSRA = FlatRateShippingAdapter(context)
        FRSRA.settings.flatrate_option = "Percentage"

        print FRSRA.settings        
        # <getpaid.core.options.FlatRateShippingSettings object at 0xc95a40c>
        print list(providedBy(FRSRA.settings))
        #[<InterfaceClass 
getpaid.flatrateshipping.interfaces.IFlatRateShippingSettings>, <InterfaceClass 
        # getpaid.core.interfaces.IPersistentOptions>]

        shipments = []  # only one for me 
        shipment = ShippingMethodRate() # ShippingMethodRate a definir 
separement
        shipment.service_code = "01"
        shipment.service = "next-day-air"
        shipment.currency = "Euro"

        shipment.cost = FRSRA.getCost(order) # 

        shipments.append( shipment ) 
        my_response = MyResponse()
        my_response.shipments = shipments 
        return my_response

    def getMethodName(self, method_id ):
        """
        given a shipping method id, return the name of the method name
        """
        term = interfaces.MY_SERVICES.getTerm( method_id )
        return term.title

    def getTrackingUrl( self, track_number ):
        """
        given a track number this should return, if available for this service
        a url that can be used to track the shipment
        """
        return None


class ShippingMethodRate( object ):
    """A Shipment Option and Price"""
    interface.implements( IShippingMethodRate )

    service_code = ""
    service = ""
    currency = ""
    cost = 10

    def __repr__( self ):
        return  "<My Shipping Method %s>"%(str(self.__dict__))



Reply via email to