def add_to_cart(self, **kwargs): """Add Article to cart""" shopping_site = IShoppingSite(self.context) cart = shopping_site.cart() if cart is None: session = self.getSessionData(create=True) session.set("collective.cart.core", {}) else: session = self.getSessionData(create=False) articles = IShoppingSite(self.context).cart_articles() if not articles: articles = SessionArticles() uuid = IUUID(self.context) if uuid in articles: items = articles[uuid] self._update_existing_cart_article(items, **kwargs) else: items = { "id": uuid, "title": self.context.Title(), "description": self.context.Description(), "url": self.context.absolute_url(), } items.update(kwargs) articles[uuid] = items shopping_site.update_cart("articles", articles)
def test_update_cart(self): adapter = IShoppingSite(self.portal) adapter.update_cart('name', 'NAME') self.assertIsNone(adapter.getSessionData(create=False)) session = adapter.getSessionData(create=True) session.set('collective.cart.core', {}) adapter.update_cart('name', 'NAME') self.assertEqual(session.get('collective.cart.core'), {'name': 'NAME'})