Log in as Manager::

    >>> browser.login(TEST_USER_NAME, TEST_USER_PASSWORD)

Add Shop::

    >>> browser.open('/++add++collective.cart.shopping.Shop')
    >>> browser.getControl(name="form.widgets.IDublinCore.title").value = 'Shöp'
    >>> browser.getControl(name="form.widgets.IDublinCore.description").value = 'Descriptiön of Shöp.'
    >>> browser.getControl(name="form.buttons.save").click()

Add Article Container::

    >>> browser.open('/shop/++add++collective.cart.shopping.ArticleContainer')
    >>> browser.getControl(name="form.widgets.IDublinCore.title").value = 'Ärticle Cöntäiner'
    >>> browser.getControl(name="form.widgets.IDublinCore.description").value = 'Descriptiön of Äarticle Cöntäiner.'
    >>> browser.getControl(name="form.buttons.save").click()

Add Article1::

    >>> browser.open('/shop/article-container/++add++collective.cart.core.Article')
    >>> browser.getControl(name="form.widgets.IDublinCore.title").value = 'Ärticle1'
    >>> browser.getControl(name="form.widgets.IDublinCore.description").value = 'Descriptiön of Ärticle1'
    >>> browser.getControl(name="form.widgets.ISKU.sku").value = 'SKU1'
    >>> browser.getControl(name="form.widgets.IDiscount.price").value = '24.60'
    >>> browser.getControl(name="form.widgets.ISize.weight").value = '100.0'
    >>> browser.getControl(name="form.buttons.save").click()
    >>> print browser.bycss('#add-to-cart')
    --- 1 ---
    <section id="add-to-cart"><p class="sold-out">Sold Out</p>
    </section>
    >>> print browser.bycss('#add-subarticle-to-cart')

Add Stock to Ärticle1::

    >>> browser.open('/shop/article-container/article1/++add++collective.cart.stock.Stock')
    >>> browser.getControl(name="form.widgets.IBasic.title").value = 'Stöck1'
    >>> browser.getControl(name="form.widgets.IBasic.description").value = 'Descriptiön of Stöck1'
    >>> browser.getControl(name="form.widgets.stock").value = '100'
    >>> browser.getControl( name="form.widgets.IStockPrice.price").value = '4.00'
    >>> browser.getControl(name="form.buttons.save").click()

Go to Ärticle1::

    >>> browser.open('/shop/article-container/article1')
    >>> print browser.bycss('#add-to-cart')
    --- 1 ---
    <section id="add-to-cart"><form method="post" action="http://nohost/plone/shop/article-container/article1">
    <section id="money"><section id="price" class="gross">24.60 &#8364;</section><section id="vat">Including VAT: 23.00 %</section></section><section id="quantity"><label>Quantity</label>
    <input min="1" name="quantity" required="required" type="number" value="1" max="100" maxlength="3" size="3"><span id="pcs">pcs</span>
    </section><section id="stock">Stock: 100 pcs</section><button class="shopping-button update" name="form.buttons.AddToCart" type="submit" value="...">Add To Cart</button>
    </form>
    </section>
    >>> print browser.bycss('#add-subarticle-to-cart')

Edit Ärtilce1 and enable discount::

    >>> browser.open('/shop/article-container/article1/edit')
    >>> browser.getControl(name="form.widgets.IDiscount.discount_enabled:list").value = True
    >>> browser.getControl(name="form.widgets.IDiscount.discount_price").value = '12.30'
    >>> browser.getControl(name="form.widgets.IDiscount.discount_end-day").value = str(today.day)
    >>> browser.getControl(name="form.widgets.IDiscount.discount_end-month").value = [str(today.month)]
    >>> browser.getControl(name="form.widgets.IDiscount.discount_end-year").value = str(today.year)
    >>> browser.getControl(name="form.buttons.save").click()
    >>> print browser.bycss('#add-to-cart')
    --- 1 ---
    <section id="add-to-cart"><form method="post" action="http://nohost/plone/shop/article-container/article1">
    <section id="money"><section id="price" class="gross">12.30 &#8364;</section><section id="vat">Including VAT: 23.00 %</section></section><section id="discount"><p id="discount-message">(Discount valid till ...)</p>
    <p id="normal-price">Normal Price: 24.60 &#8364;</p>
    </section><section id="quantity"><label>Quantity</label>
    <input min="1" name="quantity" required="required" type="number" value="1" max="100" maxlength="3" size="3"><span id="pcs">pcs</span>
    </section><section id="stock">Stock: 100 pcs</section><button class="shopping-button update" name="form.buttons.AddToCart" type="submit" value="...">Add To Cart</button>
    </form>
    </section>
    >>> print browser.bycss('#add-subarticle-to-cart')

Edit Ärticle1 to use subarticle::

    >>> browser.open('/shop/article-container/article1/edit')
    >>> browser.getControl(name="form.widgets.use_subarticle:list").value = ['on']
    >>> browser.getControl(name="form.buttons.save").click()
    >>> print browser.bycss('#add-to-cart')
    >>> print browser.bycss('#add-subarticle-to-cart')
    --- 1 ---
    <section id="add-subarticle-to-cart"><p class="sold-out">Sold Out</p>
    </section>

Add Ärticle11 under Ärticle1::

    >>> browser.open('/shop/article-container/article1/++add++collective.cart.core.Article')
    >>> browser.getControl(name="form.widgets.IDublinCore.title").value = 'Ärticle11'
    >>> browser.getControl(name="form.widgets.IDublinCore.description").value = 'Descriptiön of Ärticle11.'
    >>> browser.getControl(name="form.widgets.ISKU.sku").value = 'SKU11'
    >>> browser.getControl(name="form.widgets.IDiscount.price").value = '24.60'
    >>> browser.getControl(name="form.widgets.ISize.weight").value = '200.0'
    >>> browser.getControl(name="form.buttons.save").click()
    >>> print browser.bycss('#add-to-cart')
    --- 1 ---
    <section id="add-to-cart"><p class="sold-out">Sold Out</p>
    </section>
    >>> print browser.bycss('#add-subarticle-to-cart')

Go to Ärticle1::

    >>> browser.open('/shop/article-container/article1')
    >>> print browser.bycss('#add-to-cart')
    >>> print browser.bycss('#add-subarticle-to-cart')
    --- 1 ---
    <section id="add-subarticle-to-cart"><p class="sold-out">Sold Out</p>
    </section>

Edit Ärticle1 not to use subarticle::

    >>> browser.open('/shop/article-container/article1/edit')
    >>> browser.getControl(name="form.widgets.use_subarticle:list").value = []
    >>> browser.getControl(name="form.buttons.save").click()
    >>> print browser.bycss('#add-to-cart')
    --- 1 ---
    <section id="add-to-cart"><p class="sold-out">Sold Out</p>
    </section>
    >>> print browser.bycss('#add-subarticle-to-cart')

Add Stöck1 to Ärticle11::

    >>> browser.open('/shop/article-container/article1/article11/++add++collective.cart.stock.Stock')
    >>> browser.getControl(name="form.widgets.IBasic.title").value = 'Stöck1'
    >>> browser.getControl(name="form.widgets.IBasic.description").value = 'Description of Stöck1'
    >>> browser.getControl(name="form.widgets.stock").value = '100'
    >>> browser.getControl( name="form.widgets.IStockPrice.price").value = '0.0'
    >>> browser.getControl(name="form.buttons.save").click()

Go to Ärticle1::

    >>> browser.open('/shop/article-container/article1')
    >>> print browser.bycss('#add-to-cart')
    --- 1 ---
    <section id="add-to-cart"><form method="post" action="http://nohost/plone/shop/article-container/article1">
    <input id="quantity" min="1" name="quantity" required="required" value="1" type="number" max="100" maxlength="3" size="3">
    &#160;&#215;&#160;
    <span class="gross">24.60 &#8364;</span>
    <section id="vat">Including VAT: 23.00 %</section><section id="stock">Stock: 100 pcs</section><section class="buttons"><button class="shopping-button update" name="form.buttons.AddToCart" type="submit" value="...">Add To Cart</button>
    </section></form>
    </section>
    >>> print browser.bycss('#add-subarticle-to-cart')

Edit Ärticle1 to use subarticle::

    >>> browser.open('/shop/article-container/article1/edit')
    >>> browser.getControl(name="form.widgets.use_subarticle:list").value = ['on']
    >>> browser.getControl(name="form.buttons.save").click()
    >>> print browser.bycss('#add-to-cart')
    >>> print browser.bycss('#add-subarticle-to-cart')
    --- 1 ---
    <section id="add-subarticle-to-cart"><form method="post" action="http://nohost/plone/shop/article-container/article1">
    <select id="subarticle" name="subarticle"><option value="...">
    &#196;rticle11
    24.60 &#8364;
    </option></select><section id="vat">Including VAT: 23.00 %</section><section id="quantity"><label>Quantity</label>
    <input min="1" name="quantity" required="required" value="1" type="number" maxlength="3" size="3"><span id="pcs">pcs</span>
    </section><button class="shopping-button update" type="submit" name="form.buttons.AddToCart" value="form.buttons.AddToCart">Add To Cart</button>
    </form>
    </section>

Go to Ärticle11 and enable discount::

    >>> browser.open('/shop/article-container/article1/article11/edit')
    >>> browser.getControl(name="form.widgets.IDiscount.discount_enabled:list").value = True
    >>> browser.getControl(name="form.widgets.IDiscount.discount_price").value = '6.15'
    >>> browser.getControl(name="form.widgets.IDiscount.discount_end-day").value = str(today.day)
    >>> browser.getControl(name="form.widgets.IDiscount.discount_end-month").value = [str(today.month)]
    >>> browser.getControl(name="form.widgets.IDiscount.discount_end-year").value = str(today.year)
    >>> browser.getControl(name="form.buttons.save").click()

Go to Ärticle1::

    >>> browser.open('/shop/article-container/article1')
    >>> print browser.bycss('#add-subarticle-to-cart')
    --- 1 ---
    <section id="add-subarticle-to-cart"><form method="post" action="http://nohost/plone/shop/article-container/article1">
    <select id="subarticle" name="subarticle"><option value="...">
    &#196;rticle11
    6.15 &#8364;
    </option></select><section id="vat">Including VAT: 23.00 %</section><section id="quantity"><label>Quantity</label>
    <input min="1" name="quantity" required="required" value="1" type="number" maxlength="3" size="3"><span id="pcs">pcs</span>
    </section><button class="shopping-button update" type="submit" name="form.buttons.AddToCart" value="form.buttons.AddToCart">Add To Cart</button>
    </form>
    </section>

Edit Ärticle1 not to use subarticle::

    >>> browser.open('/shop/article-container/article1/edit')
    >>> browser.getControl(name="form.widgets.use_subarticle:list").value = []
    >>> browser.getControl(name="form.buttons.save").click()
    >>> print browser.bycss('#article11')
    --- 1 ---
    <tr id="article11"><td class="image">
    <a href="http://nohost/plone/shop/article-container/article1/article11" title="&#196;rticle1 &#196;rticle11">
    <img alt="Descripti&#246;n of &#196;rticle11." src="http://nohost/plone/fallback.png" title="&#196;rticle1 &#196;rticle11"></a>
    </td>
    <td class="name">
    <h3>
    <a href="http://nohost/plone/shop/article-container/article1/article11">&#196;rticle1 &#196;rticle11</a>
    </h3>
    <p>Descripti&#246;n of &#196;rticle11.</p>
    </td>
    <td class="price-and-quantity">
    <section id="add-to-cart"><form method="post" action="http://nohost/plone/shop/article-container/article1">
    <input id="quantity" min="1" name="quantity" required="required" value="1" type="number" max="100" maxlength="3" size="3">
    &#160;&#215;&#160;
    <span class="gross">6.15 &#8364;</span>
    <section id="vat">Including VAT: 23.00 %</section><section id="discount"><p id="discount-message">(Discount valid till ...)</p>
    <p id="normal-price">Normal Price: 24.60 &#8364;</p>
    </section><section id="stock">Stock: 100 pcs</section><section class="buttons"><button class="shopping-button update" name="form.buttons.AddToCart" type="submit" value="...">Add To Cart</button>
    </section></form>
    </section></td>
    </tr>

Add Ärticle111 to Ärticle11::

    >>> browser.open('/shop/article-container/article1/article11/++add++collective.cart.core.Article')
    >>> browser.getControl(name="form.widgets.IDublinCore.title").value = 'Ärticle111'
    >>> browser.getControl(name="form.widgets.IDublinCore.description").value = 'Descriptiön of Ärticle111.'
    >>> browser.getControl(name="form.widgets.ISKU.sku").value = 'SKU111'
    >>> browser.getControl(name="form.widgets.IDiscount.price").value = '36.90'
    >>> browser.getControl(name="form.widgets.ISize.weight").value = '100.0'
    >>> browser.getControl(name="form.buttons.save").click()
    >>> print browser.bycss('#add-to-cart')
    --- 1 ---
    <section id="add-to-cart"><p class="sold-out">Sold Out</p>
    </section>
    >>> print browser.bycss('#add-subarticle-to-cart')

Go to Ärticle1::

    >>> browser.open('/shop/article-container/article1')
    >>> print browser.bycss('#article11')
    --- 1 ---
    <tr id="article11"><td class="image">
    <a href="http://nohost/plone/shop/article-container/article1/article11" title="&#196;rticle1 &#196;rticle11">
    <img alt="Descripti&#246;n of &#196;rticle11." src="http://nohost/plone/fallback.png" title="&#196;rticle1 &#196;rticle11"></a>
    </td>
    <td class="name">
    <h3>
    <a href="http://nohost/plone/shop/article-container/article1/article11">&#196;rticle1 &#196;rticle11</a>
    </h3>
    <p>Descripti&#246;n of &#196;rticle11.</p>
    </td>
    <td class="price-and-quantity">
    </td>
    </tr>

Edit Ärticle11 to use subarticle::

    >>> browser.open('/shop/article-container/article1/article11/edit')
    >>> browser.getControl(name="form.widgets.use_subarticle:list").value = ['on']
    >>> browser.getControl(name="form.buttons.save").click()
    >>> print browser.bycss('#add-to-cart')
    >>> print browser.bycss('#add-subarticle-to-cart')
    --- 1 ---
    <section id="add-subarticle-to-cart"><p class="sold-out">Sold Out</p>
    </section>

Go to Ärticle1::

    >>> browser.open('/shop/article-container/article1')
    >>> print browser.bycss('#article11')
    --- 1 ---
    <tr id="article11"><td class="image">
    <a href="http://nohost/plone/shop/article-container/article1/article11" title="&#196;rticle1 &#196;rticle11">
    <img alt="Descripti&#246;n of &#196;rticle11." src="http://nohost/plone/fallback.png" title="&#196;rticle1 &#196;rticle11"></a>
    </td>
    <td class="name">
    <h3>
    <a href="http://nohost/plone/shop/article-container/article1/article11">&#196;rticle1 &#196;rticle11</a>
    </h3>
    <p>Descripti&#246;n of &#196;rticle11.</p>
    </td>
    <td class="price-and-quantity">
    <section id="add-subarticle-to-cart"><p class="sold-out">Sold Out</p>
    </section></td>
    </tr>

Add Stock to Ärticle111::

    >>> browser.open('/shop/article-container/article1/article11/article111/++add++collective.cart.stock.Stock')
    >>> browser.getControl(name="form.widgets.IBasic.title").value = 'Stöck111'
    >>> browser.getControl(name="form.widgets.IBasic.description").value = 'Description of Stöck111'
    >>> browser.getControl(name="form.widgets.stock").value = '50'
    >>> browser.getControl( name="form.widgets.IStockPrice.price").value = '0.0'
    >>> browser.getControl(name="form.buttons.save").click()

Go to Ärticle11::

    >>> browser.open('/shop/article-container/article1/article11')
    >>> print browser.bycss('#add-to-cart')
    >>> print browser.bycss('#add-subarticle-to-cart')
    --- 1 ---
    <section id="add-subarticle-to-cart"><form method="post" action="http://nohost/plone/shop/article-container/article1/article11">
    <select id="subarticle" name="subarticle"><option value="...">
    &#196;rticle111
    36.90 &#8364;
    </option></select><section id="vat">Including VAT: 23.00 %</section><section id="quantity"><label>Quantity</label>
    <input min="1" name="quantity" required="required" value="1" type="number" maxlength="2" size="2"><span id="pcs">pcs</span>
    </section><button class="shopping-button update" type="submit" name="form.buttons.AddToCart" value="form.buttons.AddToCart">Add To Cart</button>
    </form>
    </section>

Go to Ärticle1::

    >>> browser.open('/shop/article-container/article1')
    >>> print browser.bycss('#article11')
    --- 1 ---
    <tr id="article11"><td class="image">
    <a href="http://nohost/plone/shop/article-container/article1/article11" title="&#196;rticle1 &#196;rticle11">
    <img alt="Descripti&#246;n of &#196;rticle11." src="http://nohost/plone/fallback.png" title="&#196;rticle1 &#196;rticle11"></a>
    </td>
    <td class="name">
    <h3>
    <a href="http://nohost/plone/shop/article-container/article1/article11">&#196;rticle1 &#196;rticle11</a>
    </h3>
    <p>Descripti&#246;n of &#196;rticle11.</p>
    </td>
    <td class="price-and-quantity">
    <section id="add-subarticle-to-cart"><form method="post" action="http://nohost/plone/shop/article-container/article1">
    <select id="subarticle" name="subarticle"><option value="...">
    &#196;rticle111
    36.90 &#8364;
    </option></select><section id="vat">Including VAT: 23.00 %</section><section id="quantity"><input min="1" name="quantity" required="required" value="1" type="number" maxlength="2" size="2"><span id="pcs">pcs</span>
    </section><button class="shopping-button update" type="submit" name="form.buttons.AddToCart" value="form.buttons.AddToCart">Add To Cart</button>
    </form>
    </section></td>
    </tr>

Edit Ärticle11 not to use subarticle::

    >>> browser.open('/shop/article-container/article1/article11/edit')
    >>> browser.getControl(name="form.widgets.use_subarticle:list").value = []
    >>> browser.getControl(name="form.buttons.save").click()

Go to Ärticle1::

    >>> browser.open('/shop/article-container/article1')
    >>> print browser.bycss('#article11')
    --- 1 ---
    <tr id="article11"><td class="image">
    <a href="http://nohost/plone/shop/article-container/article1/article11" title="&#196;rticle1 &#196;rticle11">
    <img alt="Descripti&#246;n of &#196;rticle11." src="http://nohost/plone/fallback.png" title="&#196;rticle1 &#196;rticle11"></a>
    </td>
    <td class="name">
    <h3>
    <a href="http://nohost/plone/shop/article-container/article1/article11">&#196;rticle1 &#196;rticle11</a>
    </h3>
    <p>Descripti&#246;n of &#196;rticle11.</p>
    </td>
    <td class="price-and-quantity">
    </td>
    </tr>
