diff --git a/Model/Config/Source/State.php b/Model/Config/Source/State.php index 7ca30a4..a1235b4 100644 --- a/Model/Config/Source/State.php +++ b/Model/Config/Source/State.php @@ -35,8 +35,8 @@ public function toOptionArray() $options = []; foreach ($collection as $item) { $options[] = [ - 'value' => __($item->getData('label')) . Status::STATUS_STATE_SEPARATOR . $item->getState(), - 'label' => $item->getState() + 'value' => $item->getStatus() . Status::STATUS_STATE_SEPARATOR . $item->getState(), + 'label' => __($item->getLabel()) ]; } diff --git a/Model/OrderImporter/Creator.php b/Model/OrderImporter/Creator.php index a3ac45d..f200d48 100644 --- a/Model/OrderImporter/Creator.php +++ b/Model/OrderImporter/Creator.php @@ -323,11 +323,9 @@ protected function processStatus(OrderInterface $order, CheckoutFormInterface $c { $status = $this->status->get($checkoutForm); - if ($status[Status::STATE_KEY] != Order::STATE_NEW) { - $order - ->setStatus($status[Status::STATUS_KEY]) - ->setState($status[Status::STATE_KEY]); - } + $order + ->setStatus($status[Status::STATUS_KEY]) + ->setState($status[Status::STATE_KEY]); if ($status[Status::PAID_KEY]) { $this->invoice->create($order); diff --git a/Model/OrderImporter/Status.php b/Model/OrderImporter/Status.php index 9b2c55f..b04eed0 100644 --- a/Model/OrderImporter/Status.php +++ b/Model/OrderImporter/Status.php @@ -14,7 +14,7 @@ class Status const PENDING_STATUS = 'pending'; const PROCESSING_STATUS = 'processing'; const OVERPAYMENT_STATUS_CONFIG_KEY = 'allegro/order/overpayment_status'; - const UNDERPAYMENT_STATUS_CONFIG_KEY = 'allegro/order/overpayment_status'; + const UNDERPAYMENT_STATUS_CONFIG_KEY = 'allegro/order/underpayment_status'; const STATUS_KEY = 'status'; const STATE_KEY = 'state'; const PAID_KEY = 'paid'; @@ -40,7 +40,7 @@ public function __construct(ScopeConfigInterface $scopeConfig) public function get(CheckoutFormInterface $checkoutForm) { $paidAmountValue = $checkoutForm->getPayment()->getPaidAmount()->getAmount(); - if ($paidAmountValue == 0.) { + if ($paidAmountValue == 0) { return $this->arrayResponse(self::PENDING_STATUS, Order::STATE_NEW); } diff --git a/README.md b/README.md index 4301de5..767426c 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,13 @@ produktu i przesyła go do Allegro w celu aktualizacji. ![stock_inventory_synchronization](README/stockInventorySynchronizationDiagram.png) -Synchronizację stanów magazynowych można włączać lub wyłączać w konfiguracji wtyczki. +Synchronizację stanów magazynowych można włączyć w konfiguracji wtyczki. + +## Synchronizacja cen +Wtyczka oferuję również możliwość synchronizacji cen produktów Magento z cenami ofert na Allegro. Każdorazowa zmiana ceny produktu jest przesyłana do odpowiedniej oferty na Allegro. Można ustawić, aby ceny były wyższe na Allegro niż w Magento o odpowiedni procent (procent jest jednakowy dla każdej oferty). + +Synchronizację cen można włączyć w konfiguracji wtyczki. +![price_policy_configuration](README/allegroPricePolicyConfiguration.png) ## Integracja zamówień Po nawiązaniu połączenia sklepu z aplikacją Allegro możemy włączyć w konfiguracji import zamówień. @@ -146,7 +152,7 @@ Za pomocą wtyczki możemy wystawiać produkty z Magento na Allegro. Aby to zrob 2. Dodać informacje o [zwrotach](https://allegro.pl/dla-sprzedajacych/warunki-oferty-zwroty-a124GwdXZFA), [reklamacji](https://allegro.pl/dla-sprzedajacych/warunki-oferty-reklamacje-vKgeWL5GnHA) oraz [gwarancji](https://allegro.pl/dla-sprzedajacych/warunki-oferty-gwarancje-9dXYn0VeXHM) na Allegro (wymagane tylko dla konta firmowego) 3. Uzupełnić informacje o loklizacji (Sklepy->Konfiguracja->Allegro->Konfiguracja->Pochodzenie) ![origin_configuration](README/originConfiguration.png) -4. (opcjonalnie) Wybrać atrybuty produktów, z których ma być pobierany kod EAN oraz opis (Sklepy->Konfiguracja->Allegro->Konfiguracja->Tworzenie oferty) +4. (opcjonalnie) Wybrać atrybuty produktów, z których mają być pobierane kod EAN, opis oraz cena (Sklepy->Konfiguracja->Allegro->Konfiguracja->Tworzenie oferty) ![ean_select](README/allegroOfferCreateConfiguration.png) Po wprowadzeniu wymaganych danych można zacząć wystawiać oferty z poziomu Magento. diff --git a/README/allegroOfferCreateConfiguration.png b/README/allegroOfferCreateConfiguration.png index 96ed6c8..6268d4a 100644 Binary files a/README/allegroOfferCreateConfiguration.png and b/README/allegroOfferCreateConfiguration.png differ diff --git a/README/allegroOrderImporterConfiguration.png b/README/allegroOrderImporterConfiguration.png index 32c417d..3410843 100644 Binary files a/README/allegroOrderImporterConfiguration.png and b/README/allegroOrderImporterConfiguration.png differ diff --git a/README/allegroPricePolicyConfiguration.png b/README/allegroPricePolicyConfiguration.png new file mode 100644 index 0000000..39d57c6 Binary files /dev/null and b/README/allegroPricePolicyConfiguration.png differ diff --git a/Setup/Patch/Data/OrderStatuses.php b/Setup/Patch/Data/OrderStatuses.php new file mode 100644 index 0000000..86ec361 --- /dev/null +++ b/Setup/Patch/Data/OrderStatuses.php @@ -0,0 +1,79 @@ +moduleDataSetup = $moduleDataSetup; + } + + /** + * @return array + */ + public static function getDependencies() + { + return []; + } + + /** + * @return array + */ + public function getAliases() + { + return []; + } + + /** + * @return OrderStatuses|void + */ + public function apply() + { + $connection = $this->moduleDataSetup->getConnection(); + + $connection->startSetup(); + + $sosTable = $this->moduleDataSetup->getTable('sales_order_status'); + $sossTable = $this->moduleDataSetup->getTable('sales_order_status_state'); + + //Remove incorrect statuses + $connection->delete($sossTable, ['state = ?' => self::ALLEGRO_UNDERPAYMENT_STATUS]); + $connection->delete($sossTable, ['state = ?' => self::ALLEGRO_OVERPAYMENT_STATUS]); + + $data[] = ['status' => self::ALLEGRO_UNDERPAYMENT_STATUS, 'label' => 'Allegro underpayment']; + $data[] = ['status' => self::ALLEGRO_OVERPAYMENT_STATUS, 'label' => 'Allegro overpayment']; + $connection->insertArray( + $sosTable, + ['status', 'label'], + $data + ); + + $connection->insertArray( + $sossTable, + ['status', 'state', 'is_default','visible_on_front'], + [ + [self::ALLEGRO_UNDERPAYMENT_STATUS,'new', '0', '1'], + [self::ALLEGRO_OVERPAYMENT_STATUS, 'new', '0', '1'] + ] + ); + + $connection->endSetup(); + } +} diff --git a/etc/config.xml b/etc/config.xml index 4eb4f2b..6f400b6 100644 --- a/etc/config.xml +++ b/etc/config.xml @@ -16,8 +16,8 @@ 1 1 0 - Pending:allegro_overpayment - Pending:allegro_underpayment + allegro_overpayment:new + allegro_underpayment:new 0 @@ -27,6 +27,7 @@ sku + description price diff --git a/i18n/pl_PL.csv b/i18n/pl_PL.csv index 80f87e5..1d2730d 100644 --- a/i18n/pl_PL.csv +++ b/i18n/pl_PL.csv @@ -179,3 +179,5 @@ "Creation date","Data utworzenia" "Cron for cleaning old reservations enabled","Cron do czyszczenia starych rezerwacji jest włączony" "Cron deletes reservations older than 10 days","Cron usuwa rezerwacje starsze niż 10 dni" +"Allegro underpayment","Allegro niedopłata" +"Allegro overpayment","Allegro nadpłata"