CartRepositoryInterface.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. namespace App\Shop\Carts\Repositories\Interfaces;
  3. use Jsdecena\Baserepo\BaseRepositoryInterface;
  4. use App\Shop\Couriers\Courier;
  5. use App\Shop\Customers\Customer;
  6. use App\Shop\Products\Product;
  7. use Gloudemans\Shoppingcart\CartItem;
  8. use Illuminate\Support\Collection;
  9. interface CartRepositoryInterface extends BaseRepositoryInterface
  10. {
  11. public function addToCart(Product $product, int $int, $options = []) : CartItem;
  12. public function getCartItems() : Collection;
  13. public function removeToCart(string $rowId);
  14. public function countItems() : int;
  15. public function getSubTotal(int $decimals = 2);
  16. public function getTotal(int $decimals = 2, $shipping = 0.00);
  17. public function updateQuantityInCart(string $rowId, int $quantity) : CartItem;
  18. public function findItem(string $rowId) : CartItem;
  19. public function getTax(int $decimals = 2);
  20. public function getShippingFee(Courier $courier);
  21. public function clearCart();
  22. public function saveCart(Customer $customer, $instance = 'default');
  23. public function openCart(Customer $customer, $instance = 'default');
  24. public function getCartItemsTransformed() : Collection;
  25. }