function testNoMemberOrder() { //TODO: test configuration that deines non-member orders //adjust configuration to allow non member orders OrderForm::set_user_membership_optional(true); OrderForm::set_force_membership(false); $socks = $this->objFromFixture('Product', 'socks'); $this->get(ShoppingCart::add_item_link($socks->ID)); //add a different product $cart = ShoppingCart::current_order(); $this->placeOrder('Donald', 'Duck', '*****@*****.**', '4 The Strand', null, 'Melbourne', null, 'AU'); $order = DataObject::get_by_id('Order', $cart->ID); $this->assertNotNull($order, 'Order exists'); if ($order) { $this->assertEquals($order->Status, 'Unpaid', 'status is now "unpaid"'); $this->assertEquals($order->MemberID, 0, 'No associated member'); $this->assertEquals($order->Total(), 8, 'grand total'); $this->assertEquals($order->TotalOutstanding(), 8, 'total outstanding'); $this->assertEquals($order->TotalPaid(), 0, 'total outstanding'); $this->assertEquals($order->FirstName, 'Donald', 'order first name'); $this->assertEquals($order->Surname, 'Duck', 'order surname'); $this->assertEquals($order->Email, '*****@*****.**', 'order email'); $this->assertEquals($order->Address, '4 The Strand'); $this->assertNull($order->AddressLine2, 'order address2'); $this->assertEquals($order->City, 'Melbourne', 'order city'); $this->assertNull($order->PostalCode, 'order postcode'); $this->assertEquals($order->Country, 'AU', 'order country'); } ShoppingCart::clear(); //cleanup }
EcommerceCurrency::setDecimalDelimiter('.'); EcommerceCurrency::setThousandDelimiter(''); Object::useCustomClass('SS_Datetime', 'I18nDatetime', true); // * * * SHOPPING CART, ORDER, MODIFIERS Order::set_email(null); Order::set_receipt_subject("Shop Sale Information #%d"); Order::set_modifiers(array(), true); Order::set_table_overview_fields(array('ID' => 'Order No', 'Created' => 'Created', 'FirstName' => 'First Name', 'Surname' => 'Surname', 'Total' => 'Total', 'Status' => 'Status')); Order::set_maximum_ignorable_sales_payments_difference(0.01); Order::set_order_id_start_number(0); Order::set_cancel_before_payment(true); Order::set_cancel_before_processing(false); Order::set_cancel_before_sending(false); Order::set_cancel_after_sending(false); OrderForm::set_user_membership_optional(false); OrderForm::set_force_membership(true); OrderManipulation::set_allow_cancelling(false); OrderManipulation::set_allow_paying(false); // * * * PRODUCTS ProductsAndGroupsModelAdmin::set_managed_models(array("Product", "ProductGroup", "ProductVariation", "ProductAttributeType")); Product_Image::set_thumbnail_size(140, 100); Product_Image::set_content_image_width(200); Product_Image::set_large_image_width(200); ProductGroup::set_include_child_groups(true); ProductGroup::set_must_have_price(true); ProductGroup::set_sort_options(array('Title' => 'Alphabetical', 'Price' => 'Lowest Price')); // * * * CHECKOUT ExpiryDateField::set_short_months(true); OrderFormWithoutShippingAddress::set_fixed_country_code(null); OrderFormWithoutShippingAddress::set_postal_code_url("http://www.nzpost.co.nz/Cultures/en-NZ/OnlineTools/PostCodeFinder"); OrderFormWithoutShippingAddress::set_postal_code_label("find postcode");
Order::set_email("*****@*****.**"); Order::set_receipt_subject("Thank you for your order at www.myshop.com - Order #%d"); Order::set_modifiers(array("FlatTaxModifier", "SimpleShippingModifier")); Order::set_table_overview_fields(array('Total' => 'Total', 'Status' => 'Status')); // Order::set_maximum_ignorable_sales_payments_difference(0.001); //sometimes there are small discrepancies in total (for various reasons)- here you can set the max allowed differences Order::set_order_id_start_number(1234567); //sets a start number for order ID, so that they do not start at one. Order::set_cancel_before_payment(false); Order::set_cancel_before_processing(false); Order::set_cancel_before_sending(false); Order::set_cancel_after_sending(false); OrderForm::set_user_membership_optional(); //optional for user to become a member OrderForm::set_force_membership(); //all users must become members if true, or won't become members if false OrderManipulation::set_allow_cancelling(); //shows a cancel button on the order page OrderManipulation::set_allow_paying(); //shows a payment form // * * * PRODUCTS ProductsAndGroupsModelAdmin::set_managed_models(array("Product", "ProductGroup", "ProductVariation")); Product_Image::set_thumbnail_size(140, 100); Product_Image::set_content_image_width(200); Product_Image::set_large_image_width(200); ProductGroup::set_include_child_groups(true); ProductGroup::set_must_have_price(true); ProductGroup::set_sort_options(array('Title' => 'Alphabetical', 'Price' => 'Lowest Price')); // * * * CHECKOUT ExpiryDateField::set_short_months(true);