{"action":"created","issue":{"url":"https://api.github.com/repos/shoopio/shoop/issues/317","labels_url":"https://api.github.com/repos/shoopio/shoop/issues/317/labels{/name}","comments_url":"https://api.github.com/repos/shoopio/shoop/issues/317/comments","events_url":"https://api.github.com/repos/shoopio/shoop/issues/317/events","html_url":"https://github.com/shoopio/shoop/pull/317","id":127645806,"number":317,"title":"Campaign groundwork (SHOOP-2045)","user":{"login":"Pikkupomo","id":2863405,"avatar_url":"https://avatars.githubusercontent.com/u/2863405?v=3","gravatar_id":"","url":"https://api.github.com/users/Pikkupomo","html_url":"https://github.com/Pikkupomo","followers_url":"https://api.github.com/users/Pikkupomo/followers","following_url":"https://api.github.com/users/Pikkupomo/following{/other_user}","gists_url":"https://api.github.com/users/Pikkupomo/gists{/gist_id}","starred_url":"https://api.github.com/users/Pikkupomo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Pikkupomo/subscriptions","organizations_url":"https://api.github.com/users/Pikkupomo/orgs","repos_url":"https://api.github.com/users/Pikkupomo/repos","events_url":"https://api.github.com/users/Pikkupomo/events{/privacy}","received_events_url":"https://api.github.com/users/Pikkupomo/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/shoopio/shoop/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2016-01-20T10:01:54Z","updated_at":"2016-01-22T11:59:45Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/shoopio/shoop/pulls/317","html_url":"https://github.com/shoopio/shoop/pull/317","diff_url":"https://github.com/shoopio/shoop/pull/317.diff","patch_url":"https://github.com/shoopio/shoop/pull/317.patch"},"body":"Add support for upcoming campaign module.\r\n\r\n* Add `load_modules` method for provides because campaigns will require multiple modules to be loaded\r\n* Add `codes` property to `OrderSource`. This property can contain any type of code that affects `OrderSource`. The upcoming campaign module will use these codes for coupons\r\n* Publish `OrderSource.get_product_lines()` because product lines must be easily available for upcoming campaigns\r\n* Add `product_count` property to  `OrderSource`. This property is needed by upcoming campaigns. \r\n* Add `minimum_price` field to `ShopProduct`. This field will be used in upcoming campaign module to set a limit how low the product price can go.\r\n* Require `shop` and `customer` in all pricing contexts. This change was made to simplify the usage of `PricingContext`. The current implementation required all subclasses to override the `get_context_from_request` method to add `shop` and `customer` there.\r\n* Add core support for Campaign Module:\r\n** Add two modules `CatalogCampaignModule` and `BasketCampaignModule`. \r\n\r\nFew notes about the naming\r\nThe original thought behind the naming was to have `CampaignDiscountModule` and `BasketDiscountModule`. Campaigns, however, won't always be giving discounts. Consider these two campaigns: `Buy n get x free` or `buy x get 20% off the whole basket`. Both are campaigns, but definitely not discounts per se. \r\n\r\nThis PR will enable removing `discount_pricing` and adding the core for Campaigns feature"},"comment":{"url":"https://api.github.com/repos/shoopio/shoop/issues/comments/173899677","html_url":"https://github.com/shoopio/shoop/pull/317#issuecomment-173899677","issue_url":"https://api.github.com/repos/shoopio/shoop/issues/317","id":173899677,"user":{"login":"anders-jenkins","id":3727157,"avatar_url":"https://avatars.githubusercontent.com/u/3727157?v=3","gravatar_id":"","url":"https://api.github.com/users/anders-jenkins","html_url":"https://github.com/anders-jenkins","followers_url":"https://api.github.com/users/anders-jenkins/followers","following_url":"https://api.github.com/users/anders-jenkins/following{/other_user}","gists_url":"https://api.github.com/users/anders-jenkins/gists{/gist_id}","starred_url":"https://api.github.com/users/anders-jenkins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anders-jenkins/subscriptions","organizations_url":"https://api.github.com/users/anders-jenkins/orgs","repos_url":"https://api.github.com/users/anders-jenkins/repos","events_url":"https://api.github.com/users/anders-jenkins/events{/privacy}","received_events_url":"https://api.github.com/users/anders-jenkins/received_events","type":"User","site_admin":false},"created_at":"2016-01-22T11:59:45Z","updated_at":"2016-01-22T11:59:45Z","body":"\nRefer to this link for build results (access rights to CI server needed): \nhttp://spartacus.aintra:8080//job/shoop-ng-pull-requests/1504/\nTest PASSed."}}