Well, I figured out my problem with a lot of searching and
experimentation.  I apologize in advance if I don't explain it
correctly.

Once I fully understood the Satchmo Product/Configurable Product/
Product Variation relationship, everything worked out fine.  My
problem was that I was creating a Product, then creating a
Configurable product, then applying the single product variation to
the "master" product.  Once I understood that a second product
instance was required (actually, one for each product variation, e.g,
Large-Blue, Medium-Blue, Large-White, etc.) that would be the
"configured" product, everything worked.  It also explained the "no
reverse match" problem since it was trying to match itself, and why
the "create_all_variations" worked but the "create_variation" wasn't
working.

So, although it's been covered elsewhere, it never hurts to repeat the
process in different words in case someone else is struggling with
this issue.

1. Create a Product (the parent product)
2. Make that Product (the parent product) Configurable by creating and
adding Option Group(s) to it.
3. Create a Product(s) (the child product(s)) for every combination
you want to create
4. Create a ProductVariation(s) for each child product, using
parent=Configurable Product and product=child product
4. Add the specific product variation(OptionItem, e.g, Large:Blue,
Medium:White, etc.) to the ProductVariation record

If I've misstated anything, please jump in and correct it.

Thanks,
Jim

On Oct 12, 10:44 pm, JimR <[EMAIL PROTECTED]> wrote:
> I'm trying to add a single product variation to a configurable
> product.  I've tried it both with my product load script as well as
> manually.  I add an Option Group (Color).  I then add an Option Item
> (Medium Cherry).  I successfully add the product, then create the
> configurable product, then add a single variation.  Everything is fine
> until I try to access the product either through my store or through
> the admin interface.  I can add the entire Option Group and I do not
> have a problem.  I can delete the product variation and the problem
> disappears.  I get the following traceback:
>
> RuntimeError: maximum recursion depth exceeded in cmp
> Traceback (most recent call last):
>   File "C:\Python25\Lib\site-packages\satchmo\configuration
> \values.py", line 256, in _value
>     val = self.setting.value
>   File "C:\Python25\Lib\site-packages\satchmo\configuration
> \values.py", line 250, in _setting
>     return find_setting(self.group.key, self.key)
>   File "C:\Python25\Lib\site-packages\satchmo\configuration
> \models.py", line 46, in find_setting
>     setting = Setting.objects.get(site__id__exact=siteid,
> key__exact=key, group__exact=group)
>   File "C:\Python25\Lib\site-packages\django\django\db\models
> \manager.py", line 93, in get
>     return self.get_query_set().get(*args, **kwargs)
>   File "C:\Python25\Lib\site-packages\django\django\db\models
> \query.py", line 297, in get
>     clone = self.filter(*args, **kwargs)
>   File "C:\Python25\Lib\site-packages\django\django\db\models
> \query.py", line 483, in filter
>     return self._filter_or_exclude(False, *args, **kwargs)
>   File "C:\Python25\Lib\site-packages\django\django\db\models
> \query.py", line 497, in _filter_or_exclude
>     clone = self._clone()
>   File "C:\Python25\Lib\site-packages\django\django\db\models
> \query.py", line 595, in _clone
>     query = self.query.clone()
>   File "C:\Python25\Lib\site-packages\django\django\db\models\sql
> \query.py", line 175, in clone
>     obj.where = deepcopy(self.where)
>   File "C:\Python25\lib\copy.py", line 173, in deepcopy
>     y = copier(memo)
>   File "C:\Python25\Lib\site-packages\django\django\utils\tree.py",
> line 61, in __deepcopy__
>     obj.children = deepcopy(self.children, memodict)
>   File "C:\Python25\lib\copy.py", line 162, in deepcopy
>     y = copier(x, memo)
>   File "C:\Python25\lib\copy.py", line 227, in _deepcopy_list
>     y.append(deepcopy(a, memo))
>   File "C:\Python25\lib\copy.py", line 162, in deepcopy
>     y = copier(x, memo)
>   File "C:\Python25\lib\copy.py", line 234, in _deepcopy_tuple
>     y.append(deepcopy(a, memo))
>   File "C:\Python25\lib\copy.py", line 162, in deepcopy
>     y = copier(x, memo)
>   File "C:\Python25\lib\copy.py", line 227, in _deepcopy_list
>     y.append(deepcopy(a, memo))
>   File "C:\Python25\lib\copy.py", line 192, in deepcopy
>     _keep_alive(x, memo) # Make sure x lives at least as long as d
>   File "C:\Python25\lib\copy.py", line 271, in _keep_alive
>     memo[id(memo)].append(x)
>
> Any help would be greatly appreciated.
>
> Thanks,
> Jim
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Satchmo users" 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/satchmo-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to